オートコレクトの弊害
Microsoft Office には、オートコレクトという機能があります。 これは、うれしいときもありますが、邪魔になるときもあります。 全部小文字アルファベットで書きたかったのに、勝手に最初の文字が大文字になってしまったり。 ここではその大文字と小文字のオートコレクト解除法を書いておきます。
Microsoft Office には、オートコレクトという機能があります。 これは、うれしいときもありますが、邪魔になるときもあります。 全部小文字アルファベットで書きたかったのに、勝手に最初の文字が大文字になってしまったり。 ここではその大文字と小文字のオートコレクト解除法を書いておきます。
Windows のショートカットを集めた本です。厚さは 約 1cm でコンパクト! 簡単に見られるところが魅力です。特に、ショートカットキーをほとんど使ったことがない人にオススメです。Microsoft Office をよく使う人にもオススメ。
内容は、大きく分けて、Windows 全般に関するもの(Internet 含む)、Outlook Express / Office Outlook に関するもの、Microsoft Office (Word, Excel, Access, PowerPoint) に関するものの3種類(全て Windows ユーザ向け)。ショートカットキーというのは、知っている人は知っている通り、ものすごくたくさんあります。この本は、そのなかから使用頻度が高いと思われるものを選んで掲載。私自身、これを見てからよく使うようになったショートカットがあったりします。
Internet は誰でも使うので、誰にでも役に立つといえばその通りなのですが、Microsoft Office を使わない人は後悔するかもしれません。なぜなら、本の半分以上が Microsoft Office についてのショートカットだからです。「結局使わなかった」となるくらいなら、他の本を買ったほうがいいのではないかと思うのです。
また、ここに載っているショートカットを覚えたからといって、仕事ができるようになると思わないでください。ショートカットというのは、今やっている仕事を短縮するために使うものであって、それ自体、なにか仕事をするものではありません。
快適なパソコンライフを送りましょう!
コントロールを引数にしたプロシージャを作るにはどうすればいいのか、 コントロールをForループに入れてやるにはどうすればいいのか。
フォームをダブルクリックした際に フォーム上の 全テキストボックスについて .Enabled
を変化させようとしました。 全てのコントロール名を書き連ねるのは大変なので、 ループ を使って複数のコントローラに対して処理を行おうと考えました。
VBA では Me.Controls("ControlName")
でコントロールを取得できます。 そこで、 .Enabled
を変更する TextBox の名前を txtTitle1
、txtTitle2
というようにしておき、次のようなループ処理を実行します。
1 2 3 |
For i = 0 to N Me.Controls("txtTitle" & CStr(i)).Enabled = False Next |
Me.Controls
で取得したコントローラについて複数行の初期化処理を行う場合は With
を使うのもいいですが、 次のように変数に代入して使うこともできます。
1 2 |
Dim cobj As Object Set cobj = Me.Controls("XXXXXX") |
変数宣言のところで As TextBox
などと書くと エラーが出ます。
これらを利用して作ったのが次のコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Option Explicit Private Const N As Integer = 8 '制御する TextBox の総数 'フォームがダブルクリックされたら、テキストボックスを編集不可にします。 Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Dim i As Integer Dim cobj As Object Dim b As Boolean b = Not txtTitle1.Enabled For i = 1 To N Set cobj = Me.Controls("txtTitle" & CStr(i)) cobj.Enabled = b Next i End Sub |
その他下記のような方法が使えそうです。
.Net では コントロール の 配列 (のようなもの) に コレクション というのがあり、 配列のように扱うことができます。 しかし VBA には コレクション クラス が用意されていません。
しかし、 Me.Controls
の引数にする String は配列にできます。
コントロールの集合を扱えるようなクラスを作ってしまうのもいいと思います。
不幸にも近くにある韓国。 この国の人の話を聞いていると、論理がデタラメで理解できないことが多い。
それもそのはず。 日本に居る以上、韓国のことがわかるはずもなく、対等の立場で話をするなんて無理だ。