エクセル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も見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
2024年のうちにやっておきたいこと、ここで宣言しませんか?
2024年も残すところ50日を切りましたね。 ことしはどんな1年でしたか? 2024年のうちにやっておきたいこと、 よかったらここで宣言していってください!
-
【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
【お題】 ・このサンタクロースは偽物だと気付いた理由とは?
-
excelのInputBoxで日本語入力OFFにしたい
Excel(エクセル)
-
EXCEL VBA でインプットボックスを開いたときの入力モードの設定について
Excel(エクセル)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
-
4
テキストボックス(VBA)でEnterを押したときに作動するマクロ
Access(アクセス)
-
5
ExcelVBA:KeyCode「半角/全角」の定数
Visual Basic(VBA)
-
6
Excel VBA:フォーム←→セルのアクティブ切り替え
Excel(エクセル)
-
7
InputBoxでの日本語オン、オフ設定方法
Visual Basic(VBA)
-
8
全角/半角キーをSendkeys関数で使用できますか?
Visual Basic(VBA)
-
9
VBAで既に開いている別アプリケーションのオブジェクトを得る
Visual Basic(VBA)
-
10
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
11
VBAのTextBoxに半角数字のみ入力したい
Visual Basic(VBA)
-
12
InputBoxの入力値を半角数字のみと限定する方法
Excel(エクセル)
-
13
ExcelのComboboxでマウスのスクロールを有効にしたい
Excel(エクセル)
-
14
vbaから他のアプリを終了
Visual Basic(VBA)
-
15
エクセルVBAでNumLockキーの状態を確認する
Excel(エクセル)
-
16
モーダルフォームとモードレスフォーム
Visual Basic(VBA)
-
17
inputboxの日本語入力切替について
その他(プログラミング・Web制作)
-
18
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
19
ユーザーフォームをホイールでスクロールする方法(Excel2000VBA)
Excel(エクセル)
-
20
msgboxの表示位置
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
outlook express6 で半角カタカ...
-
パソコンの文字入力
-
ワードのルビの均等割りで困っ...
-
半角入力で中丸点はどうやって...
-
エクセルで10%引く場合の計算...
-
ネ + 喜 =ネ喜 ってなん...
-
漢字について質問です。
-
旧漢字
-
☆画面中に縦スクロールバー付き...
-
キーボードで四角1を打つには...
-
「芳」という字の旧漢字を出すには
-
外字有無ってなんですか? また...
-
PとLが重なった記号
-
「角」と言う字の真ん中が突き...
-
漢字が出ません。
-
Excel上でどれが外字か調べたい
-
51以降の数字を囲い文字(〇)...
-
次の漢字の旧字をどうやったら...
-
21以上の数字を○で囲む方法
-
A4のPDFが1ページあって、それ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナの由来、必要性は?
-
半角入力で中丸点はどうやって...
-
エクセルVBAでIME入力モードの制御
-
Switchで半角カタカナを入力したい
-
パナソニックのレッツノートを...
-
iPhoneでひらがな半角入力でき...
-
outlook express6 で半角カタカ...
-
半角カタカナを使うこと
-
個人情報入力時の名前の読みが...
-
半角のカタカナを打つには?
-
エクセルでカタカナをひらがな...
-
Excel:全角カタカナを入力時に...
-
ワードのルビの均等割りで困っ...
-
ひらがなに設定してるのに、よ...
-
エクセル-ひらがなから半角カナへ
-
ATOKの入力切り替えをショート...
-
いつの間にか フリック入力が、...
-
機種依存文字ではあるが、別に...
-
Excelユーザーフォーム(テキス...
-
アクセスのフリガナ自動入力が...
おすすめ情報