![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
こんにちは、WSHを業務使おうと考えております。
まだ始めたばかりで、いろいろ調べてはみたのですが、検索方法が悪いのか解消方法が見つかりません。
以下のスクリプトにてメール作成を自動化しようとしておりますが、日本語のファイル名、件名に日本語を使うと文字化け?してしまい、思ったようにうまくいきません。
そもそもSendKeysを使っているのが悪いのでしょうか
ご教授いただけないでしょうか?よろしくお願いいたします。
set WshShell = WScript.CreateObject("WScript.Shell")
'メーラー立ち上げ'
WshShell.Run "MSIMN.EXE"
WScript.Sleep 5000
'新規メール作成'
WshShell.SendKeys "%{F}"
WshShell.SendKeys "N"
WshShell.SendKeys "M"
'ファイル添付'
WshShell.SendKeys "%{I}"
WshShell.SendKeys "A"
WshShell.SendKeys "C:\業務週報.xls"
WshShell.SendKeys "%{A}"
WshShell.SendKeys "ITODPC02@gmail.com"
WshShell.SendKeys "{TAB 2}"
WshShell.SendKeys "業務週報送信"
WshShell.SendKeys "{TAB 2}"
WshShell.SendKeys "今週の業務週報を送信します。"
WshShell.SendKeys "%{F}"
WshShell.SendKeys "{E}"
'メーラー終了'
WshShell.SendKeys "%{F4}"
No.1ベストアンサー
- 回答日時:
WSHではSendKeysは、日本語はおくれませんね。
クリップボード経由でやってみてください。
例)メモ帳に「C:\業務週報.xls」という文字を書き込む
set WshShell=wscript.createObject("Wscript.shell")
WshShell.Run("notepad")
Set oClip=New Clipboard
oClip.Text="C:\業務週報.xls"
WSHShell.SendKeys "^V~",true
Set oClip=Nothing
Class Clipboard
Private oIE, bSuccess
Private Sub Class_Initialize()
Set oIE=CreateObject("InternetExplorer.Application")
oIE.Navigate "about:blank"
Do While oIE.Busy Or oIE.Document.ReadyState <> "complete"
'WScript.Sleep 10
oIE.Sleep 10
Loop
End Sub
Private Sub Class_Terminate()
oIE.Quit
Set oIE=Nothing
End Sub
Public Default Property Get Text ' 既定プロパティ Text
Text=oIE.Document.ParentWindow.clipboardData.getData("Text")
End Property
Public Property Let Text(sData)
bSuccess=oIE.Document.ParentWindow.clipboardData.setData("Text", sData)
End Property
End Class
回答ありがとうございます。
SendKeysでは日本語は送れないのですね。
回答いただきましたスクリプトはまだまだ理解不足ですので、すぐには分からないのですが、クリップボード経由でやってみます。
ありがとうございました。
No.3
- 回答日時:
こんにちは。
同様の問題領域 (Windows 自動化) に対して適用可能なソフトウェアとして UWSC Pro がありますのでご紹介します。
QNo.4021626『VBSでファイルの自動保存』
こちらで UWSC Pro のスクリプト例を掲載しています。SENDSTR 組み込み手続きを用いて日本語ファイル名も設定可。(QNo.4021626 で言えば、SENDSTR(wid2, "test.txt") の "test.txt" を "あいう.txt" としても動作する、という意)
ご参考まで。
参考URL:http://okwave.jp/qa4021626.html, http://www.uwsc.info/
ありがとうございます。
なんとか解決することができました。
ソフトウェアにつきましては、参考にさせていただきます。
ありがとうございました。
No.2
- 回答日時:
#1の方の書いた方法は、IEのインターネットゾーンのセキュリティーを強めていると使えません。
その場合はWindowsの標準機能だとどうしても駄目です。
もしOfficeがインストールされていれば以下の方法でクリップボードを使うことが出来ます。
Set uf=CreateObject("Forms.Form.1")
Set tb=uf.Controls.Add("Forms.TextBox.1").Object
tb.Text="ペーストしたい文字列"
tb.SelStart=0
tb.SelLength=tb.TextLength
tb.Copy
Set tb=Nothing
Set uf=Nothing
で、クリップボードに文字列が入るので、そのあと、^V をSendKeysすればいいです。
SendKeysは「文字」を送るのじゃなくてあくまで「キー」を送るので日本語は駄目ですね。もし「IMEオン」の「キー」がサポートされていれば、かなくらいは可能でしょうけど、漢字は何回「変換キー」を送らないといけないかわからないのでいずれにせよ無理。
分かりやすい回答ありがとうございます。
SendKeysはあくまでキーを送るのですね。
ご教授いただきました構文でおぼろげですが、理解できました。
改めて作成してみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(恋愛相談) 友達に謝るべきですか 3 2023/06/26 11:51
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- その他(スマートフォン・携帯電話・VR) ファイル文字化け直せますか? 5 2023/03/19 11:24
- カップル・彼氏・彼女 自分が助かるが相手が傷つく。 5 2023/02/09 07:56
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- 友達・仲間 彼氏持ちの女子と下校した 1 2022/12/14 22:09
- 哲学 日本語は 言語類型として あたかも始原のごとくである 3 2022/05/29 04:41
- 友達・仲間 彼氏持ちの女子と下校したことが… 1 2022/12/13 20:44
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
ファイルの最後に文字列挿入
-
多数のサブディレクトリ内のフ...
-
VBAでワークシートを引数として...
-
.txtではなく.logの方が良いの...
-
拡張子を元に戻す
-
VBAでエクセルをtxtに変換する...
-
txtファイルが作成されない
-
Windows マシンでFTPバッチが動...
-
テキストファイルで提出とは?
-
COPYコマンドで結合すると余計...
-
コマンドプロンプトでファイル...
-
VB.NETでフォルダを圧縮
-
renameコマンドについて
-
ファイル内容の修正、行削除に...
-
Teraマクロで取得した変数を編...
-
テキスト(txt)→ワード(docx)へ...
-
javaで大量のファイルを読み込...
-
ADODB.Streamで開いたファイル...
-
Windows版のgzipについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
VBAでワークシートを引数として...
-
.txtではなく.logの方が良いの...
-
拡張子を元に戻す
-
多数のサブディレクトリ内のフ...
-
COPYコマンドで結合すると余計...
-
forfilesで検索したファイルを...
-
テキストファイルのファイル名...
-
テキストファイルで提出とは?
-
ファイルの最後に文字列挿入
-
バッチファイル 複数ファイル...
-
Windowsのバッチファイルを利用...
-
バッチファイルからVBAに引数を...
-
psqlでエラーログをとりたい
-
renameコマンドについて
-
VBAでエクセルをtxtに変換する...
-
バッチファイルで文字列削除に...
-
cshでファイルサイズ取得
-
テキスト(txt)→ワード(docx)へ...
-
ファイル内容の修正、行削除に...
おすすめ情報