Excel にメールアドレスを入力すると、青色のリンクになります。 ここでは、そのリンクをクリックしたときにタイトルなども含めてメールのひな型を作成する方法を書きます。
メールアドレスをクリックした際にできるメールに、受信者の名前を表示したいという要望を受けて調べました。
前提
使用者のパソコンには メールソフト Thunderbird がインストールされており、 メールアドレスのリンクをクリックすると Thunderbird のウインドウが開くようになっています。
方法
セルの式に “=Hyperlink("mailto:name")
” と入力します。
もし、本文やメールタイトルも設定したい場合は “=Hyperlink("mailto:name?subject=title&body=message")
” というように入力します。
式を直接入力しなくても セルを右クリックし、ハイパーリンクを選択して設定することもできますが、 セルが複数あるときは式を編集するのが早いです。
オートコレクトの弊害
Microsoft Office には、オートコレクトという機能があります。 これは、うれしいときもありますが、邪魔になるときもあります。 全部小文字アルファベットで書きたかったのに、勝手に最初の文字が大文字になってしまったり。 ここではその大文字と小文字のオートコレクト解除法を書いておきます。
続きを読む 勝手に大文字 Excel 2007 解決法 →
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
というようにしておき、次のようなループ処理を実行します。
For i = 0 to N
Me . Controls ( "txtTitle" & CStr ( i ) ) . Enabled = False
Next
Me.Controls
で取得したコントローラについて複数行の初期化処理を行う場合は With
を使うのもいいですが、 次のように変数に代入して使うこともできます。
Dim cobj As Object
Set cobj = Me . Controls ( "XXXXXX" )
変数宣言のところで As TextBox
などと書くと エラーが出ます。
これらを利用して作ったのが次のコードです。
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 は配列にできます。
コレクションクラスを作ってしまう
コントロールの集合を扱えるようなクラスを作ってしまうのもいいと思います。
投稿ナビゲーション
A Life Summary of an Gypsy