
エクセルVBAでIME入力モードの制御について教えてください。
Sub IMEの現在の状態()
状態 = IMEStatus()
MsgBox 状態 & "です", vbInformation, "IMEの現在の状態"
End Sub
これでIMEStatus関数の戻り値が
1 オンの状態
2 オフの状態
4 全角ひらがな入力モード
5 全角カタカナ入力モード
6 半角カタカナ入力モード
7 全角英数入力モード
8 半角英数入力モード
であることがわかりましたが、逆にIMEの状態を設定するにはどのように記述すればいいのでしょうか?
たとえば、Sheets("AAA").Range("B1:B20")は「半角英数入力モード」にする場合。
DialogSheets("GGG")のダイアローグを呼び出したとき、その中のEditboxes("HHH")には「全角ひらがな入力モード」。
などです。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
えーっと・・・基礎はないけど実践だけで何とかやってるというレベルなんですねぇ。
まぁ私も似たようなもんなんですが。VBAの本など読まれることをお勧めしますよ。貴方の場合、全くの初心者が読むよりは遥かに得られるものがあるかと思います。
で
IMEモードの切り替えがマクロに記録されない点については、IMEの管轄はエクセルではないためです。まぁそれでもコードから直接操作することは可能なんですが。
前回のマクロはデータ>入力規則からした作業をマクロで記録しただけです。細かく解説すると
特定のセル(Range("A1")とか)に
入力規則(Validation)を
追加する(Add)
という意味合いなんですよ。
で「Editboxes」というのはおそらくTEXTBOXの一種ですよね。その上に入力規則を追加しようとしても反映されないのは当然で、セルにはValidationというプロパティが用意されていますが、TEXTBOXにはありません。
但しTEXTBOXはIMEmodeのプロパティを直接持っていますから
TEXTBOX.IMEmode=1
というような感じで設定できます。
しかしおそらくですが、組み込みダイアログはその辺の自由度がありませんので、Editboxesのプロパティが操作できない、というか元からIMEmodeを持ってないのじゃないのかなと。
ですので最初からフォームで作れと何度も言ってる訳なんですが。今更95時代の遺産を使うのもなんですし。
なんどもありがとうございます。
Sub IME_ひらがな2()
DialogSheets("Dialog1").EditBoxes("テストエディット").IMEMode = 4
DialogSheets("Dialog1").Show
End Sub
とやりましたがだめでした。「実行時エラー438 オブジェクトはこのメソッドまたはプロパティをサポートしていません」だそうです。
> 最初からフォームで作れと何度も言ってる訳なんですが。
> 今更95時代の遺産を使うのもなんですし。
ほんとにそうですね。でも残念ながらEXCEL97以降のユーザーフォームはよくわからないので使ったことがないのです。勉強しなくちゃいけませんね。
ありがとうございました。
No.2
- 回答日時:
1番ですけど。
変更を記録してくれないとはどういう意味なんでしょうか。どういう手順でやられているんでしょうかね。
Sub Macro1()
With Selection.Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
:=xlBetween :=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.IMEMode = xlIMEModeKatakanaHalf
.ShowInput = True
.ShowError = True
End With
End Sub
普通にやったらこうなりましたよ。
でちょっと修正
Sub IME_settei()
With Sheets("Sheet1").Range("A1:A10").Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator :=xlBetween
.IMEMode = xlIMEModeAlpha
End With
End Sub
・Validationまで分かっていたなら後はヘルプ読んだほうが早いです。
・組み込みダイアログのプロパティの設定が出来ないのなら新しいフォームを作るというのは無理なのでしょうか。
ありがとうございます。
シートの選択した部分への設定はこれでうまく行きました!
>変更を記録してくれないとはどういう意味なんでしょうか
ツール→マクロ→新しいマクロの記録、でIMEをいじってもその操作はモジュールシートに出てこないのです。
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2003/9/20 ユーザー名 : XXXX,YYY
'
'
Range("F1:G4").Select
End Sub
って感じです。
>・Validationまで分かっていたなら後はヘルプ読んだほうが早いです。
いや、ぜんぜんわかっていないのです。ただコピペしただけ(笑)
>・組み込みダイアログのプロパティの設定が出来ないのなら新しいフォームを作るというのは無理なのでしょうか。
Application.Dialogs(xlDialogOpen).Show などの組み込みダイアローグではなく、シートタブクリック→右クリック→挿入、でだせるMS EXCEL5.0ダイアローグなのです。
挿入したダイアローグシートにエディットボックスを貼り付け、
Sub IME_ひらがな()
With DialogSheets("Dialog1").EditBoxes("テストエディット").Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator:=xlBetween
.IMEMode = xlIMEModeHiragana
End With
DialogSheets("Dialog1").Show
End Sub
とやってみましたがエラーで駄目でした。
No.1
- 回答日時:
IMEModeプロパティを使います。
ヘルプによればシート上のそれを設定するには、入力規則を設定するやりかたしかないようです。
例文はマクロの自動記録でつくってみれば一発でわかるでしょう。
DialogSheetsは触ったことないのでわかりませんが(一昔前の組み込みダイアログですか?)Editboxesのプロパティで設定とかできないんでしょうかね? できないのなら素直に新たなフォームを作ったほうが早いんじゃないかなと。
この回答への補足
さっそくありがとうございます。
マクロの自動記録はもちろんやってみましたが、IME入力モードの変更を記録してくれません。
Sub IMEひらがな設定()
Sheets("Sheet1").Range("A1:A10").Validation.IMEMode = xlIMEModeHiragana
End Sub
いろいろ検索して、上記もやってみましたがエラーでした。
DialogSheetsは MS EXCEL 5.0ダイアローグです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Mac OS Macにおける全角・半角の切り替え(自動のそれの停止) 2 2022/09/13 16:42
- ノートパソコン ”IMEが無効です” というメッセージが出ます! 4 2023/05/02 09:56
- マウス・キーボード キーボード(半角/全角 漢字)のキーから 入力モード 2 2022/11/23 09:58
- iOS これは日本語入力の大発明ですか? 7 2022/12/21 07:17
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Windows 10 なぜか全角カタカナ入力になってしまう (USキーボード、「Alt」 + 「`」) 1 2022/06/29 13:22
- 地図・道路 クロネコヤマトのメンバーズで番地変更できません 例えば私の家の番地が12-3とかなんですが、そしたら 2 2022/07/10 19:29
- その他(データベース) c言語の問題です。これを踏まえてコーディングしたいのでおしえていただきたいです。 3 2023/08/03 09:27
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Excel(エクセル) EXCELでの文字・数字入力の基本について教えてください。 2 2023/05/29 23:17
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
もし10億円当たったら何に使いますか?
みなさんの10億円プランが知りたいです!
-
テレビやラジオに出たことがある人、いますか?
テレビやラジオに取材されたり、ゲスト出演したことある方いますか?
-
集中するためにやっていること
家で仕事をしているのですが、布団をはじめ誘惑だらけでなかなか集中できません。
-
excelのInputBoxで日本語入力OFFにしたい
Excel(エクセル)
-
EXCEL VBA でインプットボックスを開いたときの入力モードの設定について
Excel(エクセル)
-
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
-
4
エクセルVBAでNumLockキーの状態を確認する
Excel(エクセル)
-
5
全角/半角キーをSendkeys関数で使用できますか?
Visual Basic(VBA)
-
6
【Excel】 VBAでIMEの操作はできますか?
Excel(エクセル)
-
7
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
8
VBAのTextBoxに半角数字のみ入力したい
Visual Basic(VBA)
-
9
起動中のアプリ、ソフトの取得
Visual Basic(VBA)
-
10
VBAで既に開いている別アプリケーションのオブジェクトを得る
Visual Basic(VBA)
-
11
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
12
InputBoxの入力値を半角数字のみと限定する方法
Excel(エクセル)
-
13
ExcelVBAでスペースキー操作したい
Excel(エクセル)
-
14
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
15
テキストボックス(VBA)でEnterを押したときに作動するマクロ
Access(アクセス)
-
16
CapsLockを特定の部分だけオンにする
Excel(エクセル)
-
17
エクセルVBAでオートフィルター最上行を取得するには
Excel(エクセル)
-
18
ExcelVBA:KeyCode「半角/全角」の定数
Visual Basic(VBA)
-
19
フォントの大きさ
Visual Basic(VBA)
-
20
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パナソニックのレッツノートを...
-
エクセルでカタカナをひらがな...
-
ひらがなに設定してるのに、よ...
-
個人情報入力時の名前の読みが...
-
Switchで半角カタカナを入力したい
-
半角カタカナを使うこと
-
半角入力で中丸点はどうやって...
-
漢字が出ません。
-
☆画面中に縦スクロールバー付き...
-
エクセルで10%引く場合の計算...
-
「芳」という字の旧漢字を出すには
-
キーボードで四角1を打つには...
-
「角」と言う字の真ん中が突き...
-
漢字について質問です。
-
51以降の数字を囲い文字(〇)...
-
旧漢字
-
ネ + 喜 =ネ喜 ってなん...
-
次の漢字の旧字をどうやったら...
-
A4のPDFが1ページあって、それ...
-
Excel上でどれが外字か調べたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角入力で中丸点はどうやって...
-
半角カタカナの由来、必要性は?
-
パナソニックのレッツノートを...
-
iPhoneでひらがな半角入力でき...
-
エクセルVBAでIME入力モードの制御
-
Switchで半角カタカナを入力したい
-
半角カタカナを使うこと
-
個人情報入力時の名前の読みが...
-
outlook express6 で半角カタカ...
-
エクセルでカタカナをひらがな...
-
いつの間にか フリック入力が、...
-
エクセル-ひらがなから半角カナへ
-
ATOKの入力切り替えをショート...
-
Excel:全角カタカナを入力時に...
-
エクセル 入力規則について
-
アクセスのフリガナ自動入力が...
-
outlook 半角→全角に切替できない
-
半角カタカナ
-
iPadでの半角文字の入力
-
AUの携帯でメールで半角カタ...
おすすめ情報