
VBAのinputbox関数についての質問です
inputboxを使ってデータの入力をしたいのですが、日本語入力のONとOFFを自動的に切り替えられる記述はありませんでしょうか。
現在の記述は
sub 入力()
Dim simei As String
simei = InputBox("氏名を入力してください")
range("b5").Value = Simei
End su
のような感じです。inputboxを表示するまえに、言語バーの日本語入力がONの状態になるようにしたいのですが…。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
下記で上手く行くようなんですが、いかがですか。
入力規則でひらがなモードに設定。
連続入力を想定しました。途中終了条件を入れてません。
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は必要のようですが。
No.3
- 回答日時:
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
#2さんにも登校させていただいたのですが、入力規則を利用する方法でうまくゆきました。
皆さんのご親切のおかげです。
有難うございました。
No.1
- 回答日時:
なかなかinputboxでは難しいようですね。
私ならば、ユーザーフォームで代用します。
自分でユーザーフォームを作成し、その上にラベル、テキストボックス、ボタンを配置してinputbox風にして使いますけど…。
その方法ならば簡単に日本語のON、OFFが切り替えられます。配置したtextbox1のプロパティで、IMEModeを4(4-fmIMEModeHiragana)に設定すれば「ひらがな」モードになります。
Private Sub CommandButton1_Click()
Unload UserForm1
Range("b5").Value = TextBox1
End Sub
コマンドボタンをクリックした時に、上のようなプログラム文にすれば取り敢えずの作業はできると思います。どうしてもinputboxで作業したいのであれば、ヘルプでIMEModeあたりを調べてみてください。
あまり、参考にならなかったかもしれませんが、頑張ってください。
早速のご返事ありがとうございます。
InputBoxを使ってなんとかならないものかと…。
IMEModeをもう少し研究してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
初歩的な事だと思います。 Sub...
-
EXCEL VBA で指定した範囲に入...
-
テキストボックスの番号を使っ...
-
DataGridView 列ごとの入力制限
-
エクセルVBA テキストボックス...
-
「イ分」・・・フンという文字...
-
アクセスのマクロ
-
数字以外の入力をエラーにする...
-
jsp 入力された文字が日付かど...
-
VBA R1C1形式で変数の入力について
-
DataGridViewの桁数制限に関して
-
至急です!Excelがわかりません
-
教えて!全角文字「μ」の半角
-
Vba テキストボックスでボック...
-
Excel-VBAでInputBox+Pulldown...
-
入力フォームの値をQRコードで...
-
クロスサイト・スクリプティン...
-
VB 2005 Textbox にテンキーか...
-
inputboxの日本語入力切替について
-
ExcelVBAのユーザーフォームで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA テキストボックス...
-
初歩的な事だと思います。 Sub...
-
テキストボックスの番号を使っ...
-
数字以外の入力をエラーにする...
-
EXCEL VBA で指定した範囲に入...
-
Excel-VBAでInputBox+Pulldown...
-
教えて!全角文字「μ」の半角
-
VBAでInputBoxの再入力をさせる...
-
入力フォームの値をQRコードで...
-
アクセスのマクロ
-
エディットボックスの入力制限...
-
accessで該当するレコードがな...
-
DataGridViewの桁数制限に関して
-
HTMLで全角文字のみ入力するに...
-
TextBoxから数字が文字...
-
ExcelVBAのユーザーフォームで...
-
VBA R1C1形式で変数の入力について
-
DataGridView 列ごとの入力制限
-
excel vba でユーザーフォーム...
-
「イ分」・・・フンという文字...
おすすめ情報