- ベストアンサー
SHELL関数のSENDKEYについて
エクセルマクロで、下記命令を実行すると 【命令】 文章="0:00~12:00(今日)" Shell "notepad.exe", vbNormalFocus SendKeys 文章 【出力】 0:00 12:00今日 メモ帳が開き↑と表示されます 本当は↓と表示したいです。 0:00~12:00(今日) どうやら『~』は改行 『(』『)』は空白として認識されているようです。 理由、解決方法等ご存知の方がいらっしゃいましたら、ご回答お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
一部訂正 ss = Mid(文章,1 )は ss = Mid(文章, n, 1 ) です if文も if InStr("~()",ss )> 0 then といった具合にした方が良いかも ・・・
その他の回答 (1)
- redfox63
- ベストアンサー率71% (1325/1856)
一度に全部指定するのではなく 文字ごとに送ってみましょう dim n as integer, s as string for n = 1 to Len(文章) s = mid(文章,1) ' 特殊文字のコーティング if s = "(" or s = ")" or s = "~" or s = "%" or s = "+" _ or s = "^" or s = "%" or s= "{" or s = "}" then s = "{" & s & "}" end if SendKeys s, true next といった具合です ・・・ # 当方の Excel2003ですと『日』が送れませんでした # SendKeysの次の行で Debug.Print s; を実行すれば送れましたが
お礼
早速の回答ありがとうございます。 本日帰宅後に試させていただきます。 {}で囲むと言うことは、記号もコントロールキー等と同等の特殊キー扱いなのですね 全角文字なので単純に他の文字と同じ扱いだと思っていました。 ありがとうございます。
お礼
解決いたいました。 コーディング例まで出していただいてありがとうございました。