sendkeysメソッドが動かずに苦慮しております

このQ&Aのポイント
  • sendkeysメソッドが動かずに苦慮しています。プリンターの出力時の設定を変更したいと思っていますが、sendkeysメソッドがうまく機能しません。
  • プリンターの出力時の設定を変更するために、sendkeysメソッドを使用していますが、うまく動作しません。プリンターの設定を片面に変更する方法を教えてください。
  • sendkeysメソッドがうまく動作せずに困っています。プリンターの出力時の設定を変更するための別の方法があれば教えてください。
回答を見る
  • ベストアンサー

【sendkeysメソッドが動かずに苦慮しております】

【sendkeysメソッドが動かずに苦慮しております】 OS:2000 Excel:2003 VB:6.5 こんにちは。 sendkeysメソッドが動かずに苦慮しております。 ネットでいろいろ調べてみましたが、やはり正常に動かすのは難しい様です。 実際、何をしたいのかと言うとプリンターの出力時の設定を変更したいと思っております。 会社のプリンターですが方針でデフォルトが「両面」「2分割」で設定されております。 ただ複数ファイルの跨ったプレゼン資料などを大量に出力する際は「片面」「分割なし」 で設定を変更してプリントアウトしたいと思っており、いろいろ調べた結果Sendkeysを 使うことにいたしました。 ただ、先に申し上げた通りsendkeysメソッドが動かず悩んでおります。 素人の不躾けなご質問で大変申し訳ありませんが、解決できる方法をご存知の方ご教授ください。 sendkeysメソッドを使わない方法でも問題ありません。 以下、ダイアログを表示させ、タブを移動させるまでのコードです。 それではどうぞよろしくお願いいたします。 Sub AAA() Dim FOS As FileSystemObject Dim FolderC As Folder Dim FilesC As Files Dim FileC As File Dim FileName, Path_Name As String Set FOS = CreateObject("scripting.filesystemobject") Set FolderC = FOS.GetFolder("C:\Documents and Settings\AAAAA\デスクトップ\TEST") Set FilesC = FolderC.Files Path_Name = "C:\Documents and Settings\AAAAA\デスクトップ\TEST\" For Each FileC In FilesC FileName = FileC.Name Workbooks.Open FileName:=Path_Name & FileName ActiveWorkbook.Worksheets(1).Select With Application .SendKeys "^{P}", True .SendKeys "%r", True .SendKeys "^{tab}", True .SendKeys "{tab 3}", True End With ActiveWorkbook.Close False Next Set FOS = Nothing End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

追伸 Domain環境下か何かですかね? プリンタの追加(インストール)が出来ないとなると・・・。出来ないんですよね? SendKeysは正直当てにあてにならないことがたまに有って使いたくないのですが 適当に時間稼ぎを入れてみては? 標準モジュールに下記をコピペ 'ミリセカンドで停止 sleep 300 など Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) で Sub AAAのSendKeysの前後行にSleep 500 とか適当にいれて様子を見てください。 余談ですが SendKeysの代わりにAPIを使って行う方法も有るようです。 『keybd_event Lib "user32"』でGoogleって見てください。 今回の件に関して有効かどうかは分かりません。 あとは会員制(無料)ですが『moug』でお尋ねされるとか?同じくGoogleにて検索 APIでプリンタ設定の操作のヒントを得られるかも? 私からは此処までです。

その他の回答 (7)

  • end-u
  • ベストアンサー率79% (496/625)
回答No.8

testが動くようだったら、以下のように組み込めば良いです。 '同じ標準Moduleに Sub AAA()   '一時的に切り替えるダミープリンタ   Const dummyP = "EPSON LPS7000 on Ne00:"   'デフォルトプリンタ。ポート番号も必要   Const defltP = "EPSON LPS8000 on Ne01:"   Dim FSO    As FileSystemObject   Dim FilesC  As Files   Dim FileC   As File   Dim Path_Name As String   Call test   If Len(ret) > 0 Then     MsgBox ret     ret = ""     Exit Sub   End If   Path_Name = "C:\Documents and Settings\AAAAA\デスクトップ\TEST\"   Set FSO = New FileSystemObject   Set FilesC = FSO.GetFolder(Path_Name).Files   For Each FileC In FilesC     If LCase(FSO.GetExtensionName(FileC)) = "xls" Then       With Workbooks.Open(FileName:=FileC.Path)         Application.ActivePrinter = dummyP         Application.ActivePrinter = defltP         '印刷処理         .Close False       End With     End If   Next   Set FilesC = Nothing   Set FSO = Nothing End Sub 環境によってはダメかもしれないので別アプローチを検討してください。 #特にシンクライアントの環境は経験ないのでこれ以上は難しいです。

  • end-u
  • ベストアンサー率79% (496/625)
回答No.7

せめてSendKeysの確度を少しでも上げようとする案として、 コントロールパネルの[プリンタ]から設定を変えてしまう事が考えられます。 その場合はExcelのダイアログではないので SendKeysの引数wait:=trueが効きます。 最初に1度変更して、ファイルのLoop時にはActivePrinterを 切り替えれば良いです。 '標準Module Option Explicit Private Declare Sub Sleep Lib "kernel32" ( _              ByVal dwMilliseconds As Long) Private Declare Function FindWindowA Lib "user32.dll" ( _                    ByVal cnm As String, _                    ByVal cap As String) As Long Private ret As String Sub test()   'デフォルトプリンタの登録名が必要   Const pName = "EPSON LPS8000"   'Waitタイム。単位はミリ秒   Const w As Long = 50   Dim hWnd As Long   Dim i  As Long   Dim t  As Single   Dim x, xi, key   On Error GoTo extLine   t = Timer   'エクスプローラのプリンタItem   Set x = CreateObject("Shell.Application").Namespace(4).Items()   'OSによってはダイレクトに取得できないためLoop   For Each xi In x     If xi.Name = pName Then Exit For   Next   If xi Is Nothing Then     ret = "失敗"     GoTo extLine   End If   '印刷設定ダイアログを開く。WinXPは"印刷設定(&E)..."   xi.InvokeVerb "印刷設定(&T)..."   While hWnd = 0     DoEvents     hWnd = FindWindowA("#32770", pName & " 印刷設定")     '待ちきれなかったらerrorと見做して抜ける。暫定で10秒。     If Timer - t > 10 Then ret = "err1": GoTo extLine   Wend      '以降、SendKeys処理。タブ切替のWaitは長め   DoEvents   For i = 1 To 2     Sleep 500     SendKeys "^{pgdn}", True   Next   Sleep 500      For Each key In Array("{tab}", "{tab}", "{tab}", "{pgup}", "{down}") ', "{enter}")     SendKeys key, True     Sleep w   Next   '念のため終了チェック   While hWnd <> 0     DoEvents     hWnd = FindWindowA("#32770", pName & " 印刷設定")     '待ちきれなかったらerrorと見做して抜ける。     If Timer - t > 10 Then ret = "err2": GoTo extLine   Wend extLine:   Set xi = Nothing   Set x = Nothing   If Err.Number <> 0 Then ret = Err.Number & ":" & Err.Description   MsgBox ret '本稼動では不要 End Sub まずはtestで動くかどうか、Waitを調整しながら試してみてください。

  • end-u
  • ベストアンサー率79% (496/625)
回答No.6

途中から失礼します。 今回のようなケースで、SendKeysの引数waitをtrueにした場合は 最初のダイアログが閉じられないと次のキーストロークが送られません。 SendKeys "^p" SendKeys "%r" SendKeys "^{tab}" SendKeys "{tab 3}" あるいは SendKeys "^p%r^{tab}{tab 3}" などではどうでしょうか。 まずは単独ファイルで確認してみてください。 ただ、SendKeysの確実性は低いですから推奨してるわけではありません。 Loop処理はさらに厳しいんじゃないかと思いますけれども。

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.5

#4 DOUGLAS_ です。  前回答に、 >エクセル を終了するか、改めて、プリンタ の プロパティ に >変更を加えるまで、最初の変更が生きているかと存じます。 と書きましたが、全くの私の勘違いでしたね。  大変、失礼いたしました。  <(_ _)>  前回答は取り下げます。 #が、一つ不思議に思うことがあるのですが、一旦 プリンタ の プロパティ を変更して印刷すると、その ブック を保存、終了して、再度開いたときに、閉じる前に設定した プリンタ の プロパティ の設定が生きているように存じますが、これは、一体どこに、その情報が保存されているのでしょうかねぇ? #上記がホントなら、 "C:\Documents and Settings\AAAAA\デスクトップ\TEST\" 内の ファイル を保存する前に、プリンタ の プロパティ を変更してから保存するようにしておくと、再度開いたときに、ブック ごとの「変更が生きている」というようなことにもなりそうですが。。。(これまた、不確かな情報です)。

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.4

>出力する都度設定をはずさなければならない仕様になっております。  「都度」とは言え、エクセル が起動している時点で、一旦 プリンタ の プロパティ に変更を加えた場合は、その エクセル を終了するか、改めて、プリンタ の プロパティ に変更を加えるまで、最初の変更が生きているかと存じます。  従って、ファイル を開いた「都度」に プリンタ の プロパティ を設定しなくても、一番最初に設定しておけばよいかと存じますが、いかがでしょうか? --------------------------------  これを踏まえて、[SendKeys メソッド] の ヘルプ に -- これより ヘルプより引用 ----------------------- SendKeys メソッドは、キー コードをキー バッファに入れます。そのため、キー コードを使うメソッドを呼び出す前に、SendKeys メソッドを呼び出さなくてはならない場合があります。たとえば、パスワードをダイアログ ボックスに送るときには、ダイアログ ボックスを表示する前に SendKeys メソッドを呼び出す必要があります。 -- ここまで ヘルプより引用 ----------------------- と書いてありますように、 >キー コードを使うメソッドを呼び出す前に、 >SendKeys メソッドを呼び出さなくてはならない かと存じます。  従って、 End With の後に、 ActiveWorkbook.Activate DoEvents とでもしてやれば動きそうな気がいたします。 --------------------------------  ちなみに、 .SendKeys "{tab 3}", True で [SendKeys メソッド] が終了しておりますが、最終的に End With の前が .SendKeys "{Enter}", True というようなことになっていなければ、いけないかと存じます。 --------------------------------  ということで、 >今回の件はちょっと諦めなければならないかもしれません。 とのことですが、最後に、下記でお試しになってみてください。 -------------------------------- Option Explicit Sub AAA()  Dim FOS As FileSystemObject  Dim FolderC As Folder  Dim FilesC As Files  Dim FileC As File  Dim FileName, Path_Name As String    Path_Name = "C:\Documents and Settings\AAAAA\デスクトップ\TEST\"  Set FOS = CreateObject("scripting.filesystemobject")  Set FolderC = FOS.GetFolder(Path_Name)  Set FilesC = FolderC.Files    With Application   .SendKeys "%fp", True   .SendKeys "%r", True   .SendKeys "^{tab}", True   .SendKeys "{tab 3}", True   .SendKeys "{UP}", True   'ここに変更すべき点について [SendKeys メソッド] の記述が入ります。   .SendKeys "{Enter}", True   'この セクションは、プリンタ の プロパティ の変更だけですので、最後に [ESC] を送ります。   .SendKeys "{ESC}", True  End With    'キー コードを使うメソッドの呼び出し  ActiveWorkbook.Activate  DoEvents    For Each FileC In FilesC   FileName = FileC.Name   Workbooks.Open FileName:=Path_Name & FileName   ActiveWorkbook.Worksheets(1).Select   'ここに、普通に印刷する コード を書いてください。   ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True   ActiveWorkbook.Close False  Next  Set FOS = Nothing End Sub

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

ある程度はプリンターのプロパティを操作できるようです。 ページ詳細設定 http://www.asahi-net.or.jp/~zn3y-ngi/YNxv211.html#5 上記のページにもありますが、両面・片面などになるとSendKeysに頼らざるを 得ないようです。 他に方法もあるかもしれませんけど。 安直な方法なのですが 登録してあるプリンターを手動でもう1個インストールします。 するとプリンタ名(コピー1)という名前で登録されますので このプリンターのプロパティをお望みのように変更します。 でExcelから Application.ActivePrinter = "プリンタ名(コピー1) on LPT1" などで切り替えてやれば出来るかも? プリンター名はイミディエイトウィンドウで?Application.ActivePrinter で得られるものを参考にしてください。 環境がまったく異なるので参考までに。当方WinXP & Acc2002 & 昔のプリンタ

naoling
質問者

お礼

nicotinism様 こんにちは。 早々にご回答いただきどうもありがとうございました。 プリンタの件ですが、新クライアント内に設定されているプリンタで 紙の無駄遣いを避けるべくデフォルトが集約・両面で設定されており 出力する都度設定をはずさなければならない仕様になっております。 教えていただいた方法はとても有益でしたので何か別の機会に活用させて いただきます。 この度はどうもありがとうございました。

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

同じプリンタをもう一つ「プリンタの追加」で作って設定値を変えておけば良いだけではないかと思います。 わたしは、カラー印刷用と白黒印刷用と2つ作ってます。

naoling
質問者

お礼

notnot様 こんにちは。 ご回答いただきどうもありがとうございました。 他にご回答いただいた方にもお伝えしたのですが、今回のプリンタ の件ですが、新クライアント内に設定されているプリンタで 紙の無駄遣いを避けるべくデフォルトが集約・両面で設定されており 出力する都度設定をはずさなければならない仕様になっております。 なのでプリンタの追加もできない環境なのです(ToT) いろいろ調べたのですが今回の件はちょっと諦めなければならないかもしれません。 もう少し調査してみたいと思います。 この度はどうもありがとうございました。

関連するQ&A

  • CreateObjectとGetObjectの違い

    当方エクセル2003です。 Sub test_CreateObject() Dim App As Excel.Application Dim MyFileName As String Set App = CreateObject("Excel.Application") MyFileName = ActiveWorkbook.Path & "\新規Microsoft Excel ワークシート.xls" With App .Workbooks.Open FileName:=MyFileName .Visible = True End With Set App = Nothing End Sub --------------------------------------------------------- Sub test_GetObject() Dim App As Excel.Application Dim MyFileName As String Set App = GetObject(, "Excel.Application") MyFileName = ActiveWorkbook.Path & "\新規Microsoft Excel ワークシート.xls" With App .Workbooks.Open FileName:=MyFileName .Visible = True End With Set App = Nothing End Sub この二つは何が違うのでしょうか? どちらも既存のエクセルファイルがが開きます。

  • Excel : OpenTextメソッドが正常に動作しないのはなぜ?

    下記のようなマクロを作りました。 Sub sample() FileName = ThisWorkbook.Path & "\test.txt" Workbooks.OpenText FileName:=FileName, Comma:=True ActiveWorkbook.SaveAs FileName:=FileName, FileFormat:=xlCSV ActiveWorkbook.Close End Sub test.txt には次のテキストが書かれています。 "あ"," あ " 上記のマクロを実行すると、テキストの中身は次のようになってしまいます。 """あ"",""",あ,"""" 本来であれば、テキストの内容には変化が全くないはずだと思います。 原因が不明なのですが、マクロの動作確認をしたところ、 OpenTextメソッドでテキストを開いたときにすでに、 カンマの位置で区切られてセル内に入っていませんでした。 どのようにすればOpenTextメソッドは希望する動作をしてくれるのでしょうか?

  • 返ってくる値が違う

    VBAでフォルダの中のファイルの個数を取得するコードなのですが Sub test1() Dim i As Long, buf, Path As String Path = ActiveWorkbook.Path & "\" buf = Dir(Path & "*.*") Do While buf <> "" i = i + 1 buf = Dir() Loop MsgBox "「" & ActiveWorkbook.Path & "」には、全部で" & i & "個のファイルがあります。" End Sub Sub test2() Dim Path As String Dim i As Long, FSO As Object, f As Object Path = ActiveWorkbook.Path & "\" Set FSO = CreateObject("Scripting.FileSystemObject") MsgBox "「" & ActiveWorkbook.Path & "」には、全部で" & FSO.GetFolder(Path).Files.Count & "個のファイルがあります。" Set FSO = Nothing End Sub Test1とtest2では返ってくる値が違うのですが なぜでしょうか? Test2はフォルダの個数も取得されてるのですか?

  • VBAを実行するとエクセルが落ちる

    同一フォルダ内にあるCSVデータを一つのエクセルにワークブックにまとめるため CSVデータを開いて、各シートに値を貼り付けるVBAを作成しました デバックモードで1行毎に実行するとエクセルが落ちることはありませんが 普通に実行するとエクセルが閉じてしまいます 原因が分からないためご指摘いただけると幸いです Win7のOffice2013です。 Sub contents() Sheets("01").Select Sheets("01").Cells.Select Selection.ClearContents Dim ShA As Worksheet Dim FileA As String Set ShA = ThisWorkbook.Sheets("01") ChDir "C:\Users\Public\Documents" FileA = "C:\Users\Public\Documents\01.csv" If FileA <> "False" Then Workbooks.OpenText Filename:=FileA, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlTextQualifierNone, Comma:=True ActiveSheet.Cells.CurrentRegion.Copy Destination:=ShA.Range("A1") ActiveWorkbook.Close False End If Set ShA = Nothing Sheets("02").Select Sheets("02").Cells.Select Selection.ClearContents Dim ShB As Worksheet Dim FileB As String Set ShB = ThisWorkbook.Sheets("02") ChDir "C:\Users\Public\Documents" FileB = "C:\Users\Public\Documents\02.csv" If FileB <> "False" Then Workbooks.OpenText Filename:=FileB, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlTextQualifierNone, Comma:=True ActiveSheet.Cells.CurrentRegion.Copy Destination:=ShB.Range("A1") ActiveWorkbook.Close False End If Set ShB = Nothing Sheets("03").Select Sheets("03").Cells.Select Selection.ClearContents Dim ShC As Worksheet Dim FileC As String Set ShC = ThisWorkbook.Sheets("03") ChDir "C:\Users\Public\Documents" FileC = "C:\Users\Public\Documents\03.csv" If FileC <> "False" Then Workbooks.OpenText Filename:=FileC, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlTextQualifierNone, Comma:=True ActiveSheet.Cells.CurrentRegion.Copy Destination:=ShC.Range("A1") ActiveWorkbook.Close False End If Set ShC = Nothing End Sub

  • SendKeys "^V", True(貼り付け)のミス

    エクセルシートに設定したリアルタイム関数(楽天マーケットスピード)でデータを取得し、フィルターをかけてメモパッドに表示しています。   エクセルでクリップボードに格納したものを下記のプログラムで[Ctrl]+[V]キーを転送しています。 問題は[Ctrl]+[V]キーがしばしば他のアプリケーションのカーソルに転送されてしまいメモパッドがパスされてしまいます。 AppActivateが効かないのか分かりませんが対策を是非ご教示下さい。 Sub NotePad書き出し() Dim myPath As String dim y as long If nsw <> 0 Then GoTo 即貼り付け'メモ帳起動は一度だけ nsw = 1 myPath = ActiveWorkbook.Path & "\" 'メモ帳を起動する myID = Shell("Notepad.exe", vbNormalFocus) For y = 1 To 3000 'notePadが開く余裕を3秒間取る DoEvents Sleep 1 Next y 即貼り付け: '[ENTER]キーを転送して1行空ける SendKeys "{ENTER}", True 'メモ帳をアクティブにする AppActivate myID '[Ctrl]+[V]キーを転送してコピーした内容を貼り付ける SendKeys "^V", True 'コピーモードを解除する Application.CutCopyMode = False End Sub

  • エクセル マクロのこの意味教えて

    初心者で済みませんが 下記のマクロの意味を行ごとに教えてください。 Dim bk As Workbook Set bk = ActiveWorkbook Dim st As Worksheet For Each st In bk.Sheets Workbooks.Add st.Copy Before:=ActiveWorkbook.Sheets(1) ActiveWorkbook.SaveAs path & st.Name & ".xls" ActiveWorkbook.Close Next 以上です

  • ファイルサーバーからローカルフォルダーに移動したい

    下記のVBAはローカル環境でデータを同じフォルダーにCSVとして吐き出す事を目的に調べながら作ったのですが、運用の関係上ファイルサーバーへ置く事になってしまいローカルの「ダウンロード」フォルダーにに吐き出せないか色々試してみているのですが、どうしても分かりません。お知恵をいただければ幸いです。 宜しくお願い致します。 '現在開いているシートをCSVデータで保存する Public Sub call_RangeSaveCSV() Dim fPath As String Dim fName As String Dim rng As Range '現在開いているブック情報をファイル名にするため、変数に格納 fPath = ActiveWorkbook.Path & "\" fName = Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".")) & "csv" Application.DisplayAlerts = False '現在選択しているセル情報をrngに格納 Set rng = Selection '新規ブック作成→rngをA1にコピー→CSV保存→CSV閉じる Workbooks.Add rng.Copy ActiveSheet.Range("A1") ActiveWorkbook.SaveAs Filename:=fPath & fName, FileFormat:=xlCSV ActiveWindow.Close Application.DisplayAlerts = True End Sub

  • Excelマクロで別名保存したい時のパス指定の仕方

    Excelマクロでネットワーク上のファイルを、別名で自パソコンのデスクトップへ保存したいと思ってます。 ネットワーク上のファイルを開くのは決まったパソコンではない為、 GetAbsolutePathNameというメソッドを使用してます。 別名保存はsaveAsメソッドで保存したいのですが、絶対パスを指定しているにもかかわらずファイル名と認識されているらしく、1004のエラーが出てしまいます。 どうすれば絶対パスと認識してくれるのでしょうか? どなたか教えてください。 エラー内容は以下のとおりです。 実行時エラー:'1004': 『C:\Documents and Settings\パソコン名\My Documents\ "デスクトップ"にアクセスできません。』 ソースは以下のとおりです。 Dim fullPath As String Dim FSO Set FSO = CreateObject("Scripting.FileSystemObject") fullPath =FSO.GetAbsolutePathName("デスクトップ") fullPath =fullPath & "\"&"ファイル名.xls" ActiveWorkbook.SaveAs Filename:=fullPath バージョンはExcel2000を使用しています。

  • ExcelでBookを開くPasswordにエラーを出さないには

    Sub Dim FileName As String FileName = "D:\集計表.xls" Dim Sheet_Name As String Dim Book_Name As String Workbooks.Open FileName:=FileName Sheet_Name = "Sheet1" Book_Name = ActiveWorkbook.Name Workbooks(Book_Name).Sheets(Sheet_Name).Select Range("A1").Select End Sub 上記の構文でBookを開く時に「Password」を要求して開くようにしています。 ただ、Passwordを間違えた時は「実行時エラー1004」とな、「デバック」するか「終了」するしかありません。 デバック」・「終了」をせずに再度Password入力に戻るにはどの様にすれば良いでしょうか。

  • Excelシート1シートのみを指定フォルダへ保存

    Excelのシート1のみを、本日の日付と名前の入ったセル(I7)を保存する時の名前にして指定したフォルダへ保存したいと思っています。 1、シートは本日の日付+I7セルに入っている値を名前にする。 2、フォルダはCではなくV:\○○\○○\○○\○○\○○\○○\○○に格納 3、シート1以外のシート2、シート3は保存せず閉じる 4、格納後○○に保存しました。と表示 試行錯誤し、下記のように記述してみたのですが、 Sub Macro1() 'Option Explicit Sub Sample() Dim xSheet As Worksheet Dim myFile As String Dim myName As String Set xSheet = ActiveSheet ThisWorkbook.Worksheets("シート名").Copy 'myName = ActiveWorkbook.Worksheets(1).Name 'myFile = ThisWorkbook.Path & "\" & myName & ".xls" myFile = ThisWorkbook.Path & "\" & xSheet.Range("I7").Value & ".xls" Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=myFile Application.DisplayAlerts = True ActiveWorkbook.Close End Sub 日付を指定して保存 Sub test()  Dim Filename As String  Filename = Format(Date, "yyyy年mm月dd日") & ".xls"  ActiveWorkbook.SaveAs "C:\My Documents\" & Filename End Sub 日付とI7セルの名前を合せてブックの名前としたい場合どうVBEで記述すればいいのかわからないので詳しい方がおられましたら、 よろしくお願いいたします。 あまり詳しくないので、そのままコピーできるか、○○の部分を指定フォルダ名に変えてください。等の注釈を付けていただけると助かります。