
エクセルVBAでPDFを作成したい<http://oshiete.goo.ne.jp/qa/8318460.html >
の派生質問になります。
エクセル2000 Windows7の環境下で
CubePDFというアプリケーションをVBAで操作しています。
出力ファイルに保存したいファイル名をいれるのですが、
ひらがなカタカナ漢字などの2バイト文字がパス名にあると
うまくコピペできません。
例)
↓で保存したい
~~\Desktop\新しいフォルダー\12345.pdf
↓アプリケーション内
出力ファイル
~~\Desktop\V6{tH_[\12345.pdf
↓メッセージ
×CubePDF エラー
パスの一部が見つかりません。
パス名が1バイト文字なら問題ありません。
どのように指示をすれば良いのでしょうか?><;
調べたのですが、
Unicode?Shift_JIS に自動で対応してくれない?B付きの関数?URL形式でエンコード?
等々、初心者には???の連続で。。。
VBAはA1セルにあるパス名(ファイル名)でPDFを作成保存するVBAです。
Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Declare Function SetForegroundWindow Lib "user32" _
(ByVal hwnd As Long) As Long
Sub PDF作成()
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, ActivePrinter:="CubePDF on Ne05:"
'↑ActivePrinter:="ここを変える" マクロの記録などで確認 <プリンタの設定>
Do
cuHw = FindWindow(vbNullString, "CubePDF 1.0.0RC4 (x86)")
Loop While cuHw = 0
'↑CubeBDFのウインドーが開いたかどうかを確認(この段階ではまだアクティブになるまで若干間がある)
SetForegroundWindow cuHw
'↑CubeBDFのウィンドーをアクティブ化
Dim Fname As String
Fname = Range("A1") 'ファイル名を取得
PresentPrinter = Application.ActivePrinter
With CreateObject("Wscript.Shell") '保存先の所まで移動して名前をつける
.SendKeys "{TAB}"
.SendKeys "{TAB}"
.SendKeys "{TAB}"
.SendKeys "{TAB}"
.SendKeys "{TAB}"
.SendKeys Fname
.SendKeys "{ENTER}"
End With
Application.ActivePrinter = PresentPrinter
End Sub
質問内容に不明な点がありましたら、補足説明させていただきますので、
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
CubePDFは使っていないので動作検証はしていませんが、
これでいかがでしょうか?
With CreateObject("Wscript.Shell") '保存先の所まで移動して名前をつける
.SendKeys "{TAB}"
.SendKeys "{TAB}"
.SendKeys "{TAB}"
.SendKeys "{TAB}"
.SendKeys "{TAB}"
.Run "%COMSPEC% /c echo " & Fname & "| clip", 0, True 'クリップボードにFnameをコピー
.SendKeys "^v" '貼り付け
.SendKeys "{ENTER}"
End With
ありがとうございます!!!解決いたしました!^^
これで作業時間が圧倒的に短縮されますっ!
細かくお教えいただきまして、本当にありがとうございました!
~最終的な記述~
Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Declare Function SetForegroundWindow Lib "user32" _
(ByVal hwnd As Long) As Long
Sub PDF作成()
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, ActivePrinter:="CubePDF on Ne05:"
'↑ActivePrinter:="ここを変える" マクロの記録などで確認 <プリンタの設定>
Do
cuHw = FindWindow(vbNullString, "CubePDF 1.0.0RC4 (x86)")
Loop While cuHw = 0
'↑CubeBDFのウインドーが開いたかどうかを確認(この段階ではまだアクティブになるまで若干間がある)
SetForegroundWindow cuHw
'↑CubeBDFのウィンドーをアクティブ化
Dim Fname As String
Fname = Range("A1") 'ファイル名を取得
PresentPrinter = Application.ActivePrinter
With CreateObject("Wscript.Shell") '保存先の所まで移動して名前をつける
.SendKeys "{TAB}"
.SendKeys "{TAB}"
.SendKeys "{TAB}"
.SendKeys "{TAB}"
.SendKeys "{TAB}"
.Run "%COMSPEC% /c echo " & Fname & "| clip", 0, True 'クリップボードにFnameをコピー
.SendKeys "^v" '貼り付け
.SendKeys "{ENTER}"
End With
Application.ActivePrinter = PresentPrinter
End Sub
No.1
- 回答日時:
SendKeysで日本語は送れません。
クリップボードを経由して貼り付ける方法を試してみてください。
ありがとうございます^^
すみません。。。Copyすればいいと思うのですが、
どの部分でcopy等々すればいいのでしょうか?><;
CUBEが立ち上がるとクリップボードが消えてしまったりして
切り替えがうまいこといきませんTT
恐らくこのあたりの内容じゃないかとは思っているのですが。。。
http://oshiete.goo.ne.jp/qa/4639824.html
お教えいただけないでしょうか><
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) 【マクロ】フォルダAからダBへファイルを、ファイルの更新日時の条件で、1つづつ移動するには? 3 2022/08/25 09:56
- Android VBA、フォルダのパスに環境文字 ㉑ があり、VBAが機能しません。 2 2022/07/27 09:16
- Excel(エクセル) エクセル2019でPDFファイル名に枝番号をつけたい。 アクティブワークシートを印刷した後の処理とし 4 2023/06/06 21:00
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:12
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
xcopyコマンドの進行状況を表示...
-
【VBA】ExcelマクロでCSVファイ...
-
ファイル名の半角スペースについて
-
Excel 相対パス
-
エクセルVBAで一つ上の階層...
-
実行ファイルのパスを取得したい
-
コマンドプロンプトのコピー関...
-
【VB.NET】App.configにファイ...
-
実行中のASPファイル名(自ファ...
-
ExcelのVBAで上書き保存を確...
-
fopenでのパス指定
-
掲示板に編集機能をつけたい
-
【続き】windowsペイントを開く...
-
TeraTerm マクロの getdir コマ...
-
SHGetPathFromIDList によるパ...
-
エクセルマクロ 指定したフォ...
-
A列に記載されているフォルダ...
-
ExcelVBA+xdoc2txtでデスクトッ...
-
VBAでパス名(2バイト文字)の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
エクセルVBAで一つ上の階層...
-
xcopyコマンドの進行状況を表示...
-
Excel 相対パス
-
実行ファイルのパスを取得したい
-
コマンドプロンプトのコピー関...
-
【VB.NET】App.configにファイ...
-
エクセルのマクロで特定フォル...
-
VBA★PDFをPDFアプリで印刷し...
-
ExcelVBAの使い方 ¥の使い方...
-
fopenでのパス指定
-
ExcelのVBAで上書き保存を確...
-
EXCEL(VBA)で指定フォルダ内の...
-
C#でのProcess.Startと変数path
-
【VBA】ExcelマクロでCSVファイ...
-
VBAでパワーシェルを実行したい...
-
A列に記載されているフォルダ...
-
初心者powershellのPS1ファイル...
-
Eclipse
-
VBAとロングファイル名
おすすめ情報