エクセルで開いた「インプットボックス」に初めから「日本語入力を設定」を自動化するVBAを紹介します。

どんな不便がありますか。



インプットボックスを開いた時の初期設定は半角英数ですので、都度日本語入力に設定する手間があります。



ちょっとしたことのように思うけど、その手間が無いと便利なのですか。



日本語が入力出来ると思い込んでタイピングする
↓
英数入力であることに気がつく
↓
バックスペースで入力した文字を消す
↓
日本語入力に設定する
さて、どうですか?



これはありえることだし、毎回となるとストレスですね。



これから紹介するVBAではインプットボックスを開くたびに日本語入力に設定し直す手数が省略できます。


インプットボックスを日本語入力設定で開くVBA
Sub インプットボックスを開く()
Dim Name As String
With Workbooks.Add
With ActiveCell.Validation
.Add Type:=xlValidateInputOnly
.IMEMode = xlIMEModeOn
End With
Name = InputBox(“メッセージ”, “ウインドウのタイトル”, “初期値”)
.Close SaveChanges:=False
End With
End Sub
解説
新しいワークブックを開かなくてもこのマクロは有効に動きますが、マクロ実行時、アクティブセルの設定によりAdd Typeでエラーになる場合があります。
また、意図せずアクティブセルの設定が変わってしまいますので、新しいブックを開いて閉じるという方法をお薦めします。
新しいワークブックを開かずに行うVBA
Sub インプットボックスを開く()
Dim Name As String
With ActiveCell.Validation
.Delete ’書式設定を削除
.Add Type:=xlValidateInputOnly
.IMEMode = xlIMEModeOn
End With
Name = InputBox(“メッセージ”, “ウインドウのタイトル”, “初期値”)
End Sub
コメント