dポイントプレゼントキャンペーン実施中!

VBAのinputbox関数についての質問です
inputboxを使ってデータの入力をしたいのですが、日本語入力のONとOFFを自動的に切り替えられる記述はありませんでしょうか。
現在の記述は
sub 入力()
Dim simei As String
simei = InputBox("氏名を入力してください")
range("b5").Value = Simei
End su
のような感じです。inputboxを表示するまえに、言語バーの日本語入力がONの状態になるようにしたいのですが…。よろしくお願いします。

A 回答 (3件)

下記で上手く行くようなんですが、いかがですか。


入力規則でひらがなモードに設定。
連続入力を想定しました。途中終了条件を入れてません。
ValidationはRangeオブジェクトに対してのオブジェクト
らしいので下記になります。
Sub 入力1()
Dim simei As String
Worksheets("sheet1").Select
For i = 1 To 10
Cells(i, "A").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateInputOnly
.IMEMode = xlIMEModeHiragana
End With
simei = InputBox("氏名を入力してください")
Cells(i, "A").Value = simei
Next i
End Sub
http://www2.moug.net/cgi-bin/technic.cgi?exvba+T …参照
.Deleteは必要のようですが。
    • good
    • 0
この回答へのお礼

回答いただいた通り実行してみました。
思い通りの結果が得られました。
これで次の行程に進めます。
本当に有難うございました。

お礼日時:2003/08/10 21:28

INPUTBOXはIMEモードでいうと「コントロールなし」にあたります。


なので、INPUTBOXを呼び出す前に設定されたIMEモードに依存します。
ですので、#2さんのようにRangeオブジェクトで
IMEモードを設定してそれを利用するか
Windows APIを使う(下記URL参照)といった手順が考えられます。
ちなみに#2さんのを素直に質問のコードに反映させると
下記になります。

sub 入力()
Dim simei As String

Range("a1").Select '←どこのrangeでもいいです。IMEmodeの設定を利用するだけですので。
With Selection.Validation
.Delete
.Add Type:=xlValidateInputOnly
.IMEMode = xlIMEModeHiragana
End With

simei = InputBox("氏名を入力してください")
range("b5").Value = Simei
End su

参考URL:http://www.ruriplus.com/msaccess/tch/tch_042.html
    • good
    • 0
この回答へのお礼

#2さんにも登校させていただいたのですが、入力規則を利用する方法でうまくゆきました。
皆さんのご親切のおかげです。
有難うございました。

お礼日時:2003/08/10 21:29

なかなかinputboxでは難しいようですね。



私ならば、ユーザーフォームで代用します。
自分でユーザーフォームを作成し、その上にラベル、テキストボックス、ボタンを配置してinputbox風にして使いますけど…。

その方法ならば簡単に日本語のON、OFFが切り替えられます。配置したtextbox1のプロパティで、IMEModeを4(4-fmIMEModeHiragana)に設定すれば「ひらがな」モードになります。

Private Sub CommandButton1_Click()
Unload UserForm1
Range("b5").Value = TextBox1
End Sub

コマンドボタンをクリックした時に、上のようなプログラム文にすれば取り敢えずの作業はできると思います。どうしてもinputboxで作業したいのであれば、ヘルプでIMEModeあたりを調べてみてください。

あまり、参考にならなかったかもしれませんが、頑張ってください。
    • good
    • 0
この回答へのお礼

早速のご返事ありがとうございます。
InputBoxを使ってなんとかならないものかと…。
IMEModeをもう少し研究してみます。

お礼日時:2003/08/10 21:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!