• ベストアンサー
  • 困ってます

エクセルでセル内容でpdfで保存しメールの起動まで

いつもお世話になっております。 ここで絶大なる支援を受けて表題に関するいくつかのマクロを教えていただいて色んな定常作業に組み込んで非常に便利に使い始めたのですが、下記の組み合わせが試行錯誤(当方の実力)ではどうしても達成出来ないのでHELPです。 1.エクセルの複数の指定セルを繋げてファイル名にする。   A1セルが「赤」、B1セルが「色」の場合はファイル名を「赤色」としたい。 2.上記のファイルを指定のパスのホルダーに保存する 3.そのpdfファイルを添付したメール画面でOutlookを起動する。 1.2.+指定アドレスに送信、まで全自動で完了する完成版はあるのですが、自動送信ではなくメールの起動までの方が非常に汎用性が高いので何とかお願いします。 また、ファイル名に2つのセルの内容をつなぐこともうまくいきませんでした。

共感・応援の気持ちを伝えよう!

  • 回答数8
  • 閲覧数240
  • ありがとう数5

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

  • ベストアンサー
  • 回答No.3

今晩は、参考に Sub Test()  Dim OutlookApp As Object  Dim OutlookMail As Object  Dim FilePath As String, FN As String  'ファイル名の作成  'A1セルが「赤」、B1セルが「色」の場合はファイル名を「赤色」としたい。  'A1、B1セルはSheet1に有るものと仮定  With Worksheets("Sheet1")   FN = .Range("A1").Value & .Range("B1").Value & ".pdf"  End With  MsgBox "ファイル名は:" & FN  '上記のファイルを指定のパスのホルダーに保存する  '指定のホルダーはデスクトップ上の[報告書]ホルダーと仮定  FilePath = CreateObject("WScript.Shell").SpecialFolders("Desktop")  FilePath = FilePath & "\報告書\" & FN  'FilePathの最終確認(確認後、必要なければ削除してください。)  MsgBox "ファイルパスは:" & FilePath  'PDFを指定のホルダーに出力  'PDF出力の対象シートをSheet1と仮定しています。  Worksheets("Sheet1").ExportAsFixedFormat Type:=xlTypePDF, Filename:=FilePath  'Outlookを起動  Set OutlookApp = CreateObject("Outlook.Application")  Set OutlookMail = OutlookApp.CreateItem(0)  With OutlookMail   .Display '画面を表示   .To = "abc@defg.ne.jp"   .CC = ""   .BCC = ""   .Subject = "メールの件名"   .Body = "メールの本文"   .Attachments.Add FilePath   '.Send '自動送信するのならコメントを外してください。  End With  Kill FilePath 'PDFファイルを削除  Set OutlookMail = Nothing  Set OutlookApp = Nothing End Sub

共感・感謝の気持ちを伝えよう!

質問者からのお礼

お世話になります。 正月明けに早速試してみたのですが動きません。(ショック!&やっぱり!) 先ず変えてみたのは下のシート名”Sheet1"とRangeのセル番地を実際のシート名とセル番地に、 ”Desktop”を実際のファイルパスに、”報告書”を実際のフォルダー名に変えただけですがコンパイルエラー「構文エラー」となってしまいました。 エラーの内容は、Sub test()が黄色になって、FN=・・の行が赤文字ハイライトになっているのですが、ここは違うはずがないのでその後のファイルパスの不具合かとも思うのですが、後の行(コード)が前の行のエラーになることがあるのでしょうか? Desk Topの「報告書」フォルダーではできたのに、ファイルパスを変えようとしたらこのレベルなのですがよろしくお願いします。 With Worksheets("Sheet1")   FN = .Range("A1").Value & .Range("B1").Value & ".pdf"  FilePath = CreateObject("WScript.Shell").SpecialFolders("Desktop")  FilePath = FilePath & "\報告書\" & FN

質問者からの補足

いつもお世話になっております。 早々にダミーファイルで試してみました。 (私の場合)当然ながら何度かのエラーメッセーに試行錯誤して、デスクトップに「報告書」ファルダーを作成してみたらエラーメッセージが変わったので、よく見たらA1,B1が空白になっていたのでそれぞれに赤、色を入れてみたらメールが起動してきました。 感動!!! 残念ながら実際のファイルは会社なので年明けに動くことを確認して報告とお礼をさせていただきます。 私の場合、実際のファイルで動作確認しないと危ないので何かあればまたよろしくお願いします。 このコードもそろったので、仕事のタイプにより多くのエクセルの作業に汎用に使えそうです。

関連するQ&A

  • エクセルでセル内容でpdfで保存しメールの起動まで

    長くなってしまって済みません。 先日(2018/12/28)ここで上記のマクロのコードを教えてもらって問題なく使い始めたのですが、別のBookにコピーして、ファイル名のセルを(10,4)と(1,1)から(15,4)と(1,1))に変更すると「実行時エラー 13、型が一致しません」と出ます。 うまくいっているシートのファイル名はD10+A1のセルで、今度はD15+A1をファイル名にしただけなのですが。。。。 (10,4)と(1,1)のままだと普通にメールが起動してくるのですがD10が空白セルの為A1の内容だけでファイル名になってしまいます。 ちなみにそのシートのD10に数値+アルファベットを入れると「型が一致しません」と上記と同じエラーが出ます。 教えてもらったコードのファイル名の(下の)セルの数値だけ変えたらうまくいったと思うのですが、今回はなぜかエラーになってしまいます。 質問ではA1+B1で質問しましたので(1,1)と(1,2)になっています。 xFolder = PdfDir + "\" + xSht.Cells(1, 1).Value & xSht.Cells(1, 2).Value + ".pdf" 全部のコードは下記の通りです。 Option Explicit Sub Saveaspdfandsend() Dim xSht As Worksheet 'Dim xFileDlg As FileDialog Dim xFolder As String 'Dim xYesorNo As Integer Dim xOutlookObj As Object Dim xEmailObj As Object Dim xUsedRng As Range Const PdfDir = "C:\OKWave"  'PDFを保存するフォルダー Set xSht = ActiveSheet 'Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker) ' 'If xFileDlg.Show = True Then '  xFolder = xFileDlg.SelectedItems(1) 'Else '  MsgBox "You must specify a folder to save the PDF into." & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Must Specify Destination Folder" '  Exit Sub 'End If xFolder = PdfDir + "\" + xSht.Cells(1, 1).Value & xSht.Cells(1, 2).Value + ".pdf" 'Check if file already exist 'If Len(Dir(xFolder)) > 0 Then '  xYesorNo = MsgBox(xFolder & " already exists." & vbCrLf & vbCrLf & "Do you want to overwrite it?", _ '           vbYesNo + vbQuestion, "File Exists") '  On Error Resume Next '  If xYesorNo = vbYes Then '    Kill xFolder '  Else '    MsgBox "if you don't overwrite the existing PDF, I can't continue." _ '          & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Exiting Macro" '    Exit Sub '  End If '  If Err.Number <> 0 Then '    MsgBox "Unable to delete existing file. Please make sure the file is not open or write protected." _ '          & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Unable to Delete File" '    Exit Sub '  End If 'End If Set xUsedRng = xSht.UsedRange If Application.WorksheetFunction.CountA(xUsedRng.Cells) <> 0 Then   'Save as PDF file   xSht.ExportAsFixedFormat Type:=xlTypePDF, Filename:=xFolder, Quality:=xlQualityStandard      'Create Outlook email   Set xOutlookObj = CreateObject("Outlook.Application")   Set xEmailObj = xOutlookObj.CreateItem(0)   With xEmailObj     .Display     .To = ""     .CC = ""     .Subject = ""     .Attachments.Add xFolder     'If DisplayEmail = False Then       '.Send     'End If   End With Else  MsgBox "The active worksheet cannot be blank"  Exit Sub End If End Sub

  • ファイル名を「任意のセル内容+指定した語句」にしたい

    エクセルのファイル名を 「ある決まったセルに入力された文字」+「こちらで指定した語句」に出来ないかと思っています。 例)セルA1にある文字「100200-01」、指定した語句「注文書」   結果「100200-01注文書」というファイル名がつく。 また、これを、保存先を指定しなく、それぞれ操作者が指定した保存先に保存することは可能でしょうか? 保存場所を任意で指定できないのであれば、 ファイルを保存する作業はしなくて、ファイル名だけつける処理のみでもよいです。「名前をつけて保存」のWINDOWが開いて、ファイル名欄にこちらの指定したファイル名が入った状態になるまでを自動化するというのでもいいです。 以上よろしくお願いいたします。

  • エクセルで保存時のファイル名

    エクセルでファイルを書き込む(「ファイル」-「名前を付けて保存」) 時に、セル内にあるテキストをファイル名として自動的に書き込み時に 指定する事はできるでしょうか。 例えば A1セルに"名古屋"、A2セルに"10月"と入っている時に 「名前を付けて保存」で、ファイル名=名古屋10月.csv (ファイルの種類はCSV)としたいのですが。 ご教授、よろしくお願いいたします。

その他の回答 (7)

  • 回答No.8

> FilePath = CreateObject("WScript.Shell").SpecialFolders("\****\??? ?\XXXチーム\☆検査結果&成績書\サンプル名.原紙.顧客名" だからCreateObject("WScript.Shell").SpecialFoldersは デスクトップのパスを取得するときに使うのであって パスが分かっているのなら FilePath = "\****\????\XXXチーム\☆検査結果&成績書\サンプル名.原紙.顧客名" FilePath = "\****\ ここぐらいは伏字にする必要がありますか

共感・感謝の気持ちを伝えよう!

質問者からのお礼

手取り足取り、それでも尚 試行錯誤の末、どうにか、やっと動きました。 本当にお手数をおかけしました。 すでに3つのファイルにコピペし、それぞれのホルダーに保存されることまで確認しました。 複数の担当者に使ってもらうことになります。 エクセルは入力しかできない人でも、データ入力後ボタンのワンクリックで指定ホルダーに、規則的なファイル名で保存し、送信まで出来る様になったので大変助かります。

質問者からの補足

何度もすみませんでした。 自宅でのTESTシートでうまくいったときに、 >CreateObject("WScript.Shell").SpecialFolders の意味が全く分からなかったので、実際のフォルダーで確認しないと危ないと思い、 >私の場合、実際のファイルで動作確認しないと危ないので何かあればまたよろしくお願いします。 として、BSを保留していました。

  • 回答No.7

>指定のホルダーはデスクトップ上の[報告書]ホルダーと仮定 >FilePath = CreateObject("WScript.Shell").SpecialFolders("\\****\???>\XXXチーム\☆検査結果&成績書\サンプル名\1.原紙\1.顧客名") SpecialFoldersはデスクトップのパスを知るために使っているので パスが分かっているのなら FilePath = "C:\XXXチーム\☆検査結果&成績書\サンプル名\1.原紙\1.顧客名" 又はネットワーク上なら FilePath = "\\****\???>\XXXチーム\☆検査結果&成績書\サンプル名\1.原紙\1.顧客名"

共感・感謝の気持ちを伝えよう!

  • 回答No.6

>With Worksheets("統合版(提出)") >FN = .Range("B10").Value & .Range("D10).Value & ".pdf" >End With  " を1つ忘れていますよ .Range("D10").Value

共感・感謝の気持ちを伝えよう!

質問者からの補足

本当に出来が悪くて済みません。 ご指摘の個所を修正したらメールが起動して、宛先、件名、本文が入っているのですが、最後に「実行時エラー」「オートメーションエラーです」「指定されたファイルが見つかりません」と出ます。 シート名は実際のシート名に2か所変更しました。 マクロ実行時のメッセージとして、ファイル名とファイルパスが出るのですが両方ともファイル名と同じなのですが、パスがおかしいのでしょうか? 自宅でのDeskTopに作った”報告書”のフォルダーではうまくいったのと同じ個所を変更していると思うのですが。 (ファイルパスは違っていますが) 自宅では確認メッセージの省略も出来たのですが。。。 Sub Test() Dim OutlookApp As Object Dim OutlookMail As Object Dim FilePath As String, FN As String 'ファイル名の作成 'A1セルが「赤」、B1セルが「色」の場合はファイル名を「赤色」としたい。 'A1、B1セルはSheet1に有るものと仮定 With Worksheets("提出用") FN = .Range("B10").Value & .Range("D10").Value & ".pdf" End With MsgBox "ファイル名は:" & FN '上記のファイルを指定のパスのホルダーに保存する '指定のホルダーはデスクトップ上の[報告書]ホルダーと仮定 FilePath = CreateObject("WScript.Shell").SpecialFolders("\\****\???\XXXチーム\☆検査結果&成績書\サンプル名\1.原紙\1.顧客名") FilePath = FilePath & FN 'FilePathの最終確認(確認後、必要なければ削除してください。) MsgBox "ファイルパスは:" & FilePath 'PDFを指定のホルダーに出力 'PDF出力の対象シートをSheet1と仮定しています。 Worksheets("提出用").ExportAsFixedFormat Type:=xlTypePDF, Filename:=FilePath 'Outlookを起動 Set OutlookApp = CreateObject("Outlook.Application") Set OutlookMail = OutlookApp.CreateItem(0) With OutlookMail .Display '画面を表示 .To = "abc@defg.ne.jp" .CC = "" .BCC = "" .Subject = "メールの件名" .Body = "メールの本文" .Attachments.Add FilePath '.Send '自動送信するのならコメントを外してください。 End With Kill FilePath 'PDFファイルを削除 Set OutlookMail = Nothing Set OutlookApp = Nothing End Sub

  • 回答No.5

>エラーの内容は、Sub test()が黄色になって、 >FN=・・の行が赤文字ハイライトになっているのですが なら、ここが間違っているのでしょう 実際に使ったコードをアップしてみてください。

共感・感謝の気持ちを伝えよう!

質問者からの補足

Sub Test() Dim OutlookApp As Object Dim OutlookMail As Object Dim FilePath As String, FN As String 'ファイル名の作成 'A1セルが「赤」、B1セルが「色」の場合はファイル名を「赤色」としたい。 'A1、B1セルはSheet1に有るものと仮定 With Worksheets("統合版(提出)") FN = .Range("B10").Value & .Range("D10).Value & ".pdf" End With MsgBox "ファイル名は:" & FN '上記のファイルを指定のパスのホルダーに保存する '指定のホルダーはデスクトップ上の[報告書]ホルダーと仮定 FilePath = CreateObject("WScript.Shell").SpecialFolders("\\****\???\XXXチーム\☆検査結果&成績書\サンプル名\1.原紙\1.顧客名") 教えていただいたコードを丸ごとコピペして、セル番地をファイルパスをいじっただけのはずなのですが。 ファイルパスは希望のフォルダーをシフト+右クリックで「パスのコピー」で貼り付けました。

  • 回答No.4
  • mt2015
  • ベストアンサー率49% (257/522)

ANo.1です。 既に先回りしてマクロを作った回答があるので、回答ではなく補足されたコードについて1点だけ……。 > FilePath = "\\Srv01\結果表\" & strSub & Format(Now(), "yymmdd hhmm") & ".pdf" > 'Sheet3の結果表の特定のセルに品名 > strSub = Worksheets("結果").Range("E14").Value & "試験結果" & "LOT " & Range("E19") 変数「strSub」に文字列を代入する前の空の状態で、変数「FilePath」の文字列を作るために使用しています。 > > また、ファイル名に2つのセルの内容をつなぐこともうまくいきませんでした。 の原因はこれでは?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

度々のアドバイスありがとうございます。 少し試してみたのですが、やはりうまくいきませんでした。 自分でも情けない状態で残念です。 お手数をおかけしました。

  • 回答No.2

https://www.extendoffice.com/ja/documents/excel/4412-excel-save-as-pdf-and-email.html ↑に >1.2.+指定アドレスに送信、まで全自動で完了する完成版はあるのですが のコードがあるようです。 これを期待の動作に修正したコードを下記します。 コメントアウトした行は必要に応じて削除してください。 Option Explicit Sub Saveaspdfandsend() Dim xSht As Worksheet 'Dim xFileDlg As FileDialog Dim xFolder As String 'Dim xYesorNo As Integer Dim xOutlookObj As Object Dim xEmailObj As Object Dim xUsedRng As Range Const PdfDir = "C:\OKWave"  'PDFを保存するフォルダー Set xSht = ActiveSheet 'Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker) ' 'If xFileDlg.Show = True Then '  xFolder = xFileDlg.SelectedItems(1) 'Else '  MsgBox "You must specify a folder to save the PDF into." & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Must Specify Destination Folder" '  Exit Sub 'End If xFolder = PdfDir + "\" + xSht.Cells(1, 1).Value & xSht.Cells(1, 2).Value + ".pdf" 'Check if file already exist 'If Len(Dir(xFolder)) > 0 Then '  xYesorNo = MsgBox(xFolder & " already exists." & vbCrLf & vbCrLf & "Do you want to overwrite it?", _ '           vbYesNo + vbQuestion, "File Exists") '  On Error Resume Next '  If xYesorNo = vbYes Then '    Kill xFolder '  Else '    MsgBox "if you don't overwrite the existing PDF, I can't continue." _ '          & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Exiting Macro" '    Exit Sub '  End If '  If Err.Number <> 0 Then '    MsgBox "Unable to delete existing file. Please make sure the file is not open or write protected." _ '          & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Unable to Delete File" '    Exit Sub '  End If 'End If Set xUsedRng = xSht.UsedRange If Application.WorksheetFunction.CountA(xUsedRng.Cells) <> 0 Then   'Save as PDF file   xSht.ExportAsFixedFormat Type:=xlTypePDF, Filename:=xFolder, Quality:=xlQualityStandard      'Create Outlook email   Set xOutlookObj = CreateObject("Outlook.Application")   Set xEmailObj = xOutlookObj.CreateItem(0)   With xEmailObj     .Display     .To = ""     .CC = ""     .Subject = ""     .Attachments.Add xFolder     'If DisplayEmail = False Then       '.Send     'End If   End With Else  MsgBox "The active worksheet cannot be blank"  Exit Sub End If End Sub

共感・感謝の気持ちを伝えよう!

質問者からのお礼

いつもありがとうございます。 お手数をおかけして本当に申し訳けありませんが今回は#No3のコードを使わせていただきます。

質問者からの補足

早々に試してみたのですが、「実行時エラー'1004':アプリケーション定義またはオブジェクト定義のエラーです。と出ます。 私の実力ではどこが違うのか全くチンプンカンプンです。 #No3さんのコードで試しても同じエラーが出たのですが、デスクトップに「報告書」というホルダーを作って、それでもエラーが出たのでA1とB1に文字を入れてみたら希望通りに動きました。 このレベルですので残念ながらご回答いただいたコードは動かせる自信がないので諦めます。

  • 回答No.1
  • mt2015
  • ベストアンサー率49% (257/522)

> 1.2.+指定アドレスに送信、まで全自動で完了する完成版はあるのですが で、あればそのプログラムに手を入れた方が早いでしょう。 > また、ファイル名に2つのセルの内容をつなぐこともうまくいきませんでした。 上手く行かなかったと言うこの部分のコードと、実際にメールを送信する部分のコードを提示してください。

共感・感謝の気持ちを伝えよう!

質問者からの補足

使っているコードを記載すべきと思ったのですが、色々思考錯誤してやっと動くようになったので下手に削除すると動かなくなってしまって、部分的に修正していただいたコードが動かなくなる可能性があると思い記載しませんでした。 一応下記のコードです。 Sub Test() Dim FilePath As String, strSub As String Dim OutlookApp As Object Dim OutlookMail As Object 'On Error Resume Next FilePath = "\\Srv01\結果表\" & strSub & Format(Now(), "yymmdd hhmm") & ".pdf" 'Sheet3の結果表の特定のセルに品名 strSub = Worksheets("結果").Range("E14").Value & "試験結果" & "LOT " & Range("E19") Worksheets("試験結果").ExportAsFixedFormat Type:=xlTypePDF, Filename:=FilePath Set OutlookApp = CreateObject("Outlook.Application") Set OutlookMail = OutlookApp.CreateItem(0) With OutlookMail .To = " " .CC = " " .BCC = " " .Subject = strSub .Body = "いつもお世話になっております。" & vbLf & "表題の件、添付の通りです。 " & vbLf & " " & vbLf & "     ABC(株) 業務課" .Attachments.Add FilePath End With MsgBox "送信完了" End Sub

関連するQ&A

  • Excel で セルに入力したBMPファイルを入力したセルの横に自動表示したい

    EXCEL2000を使っています。 セルに入力したBMPファイル名(ドライブ名やホルダー名も入力します)の横に自動的に入力したBMPファイルの絵を表示したいと思います。 方法を詳しく教えてください。

  • エクセルで特定のシートだけを別ファイル名で保存

    いつもお世話になっております。 作業用の既存Bookの特定のシート(提出用)だけを、別のファイル名で保存したい。 保存先フォルダーはフルパスで指定して、ファイル名は当該シートの指定セルの内容で、xlsx形式で保存したいのです。 過去の質問に似たようなケースの回答があるのですが、悲しいかな使いこなせないレベルなのでHELPさせていただきます。

  • EXCELでシート名をセルの内容で指定出来るか

    検索してみましたが、探し方が悪いのか該当する質問がないようなので、質問させていただきます。 EXCELで複数のシートにあるデータを使用して集計表を作成するときの質問です。 使用する人がEXCELに慣れていない方のため、汎用性を持たせたいのですが、以下のような方法は出来るのでしょうか。 集計元シート(複数)> '1','2','3'…のように連番のシート名 集計先シート>'集計' 1.'集計'シートのセル A列 にシート名を入力します。 2.'集計'シートのセル B列 にそれぞれのシートの合計部分のセルNo(Ex.B11)を指定します こうしたとき、2.のB列 は [ B1 = '1'!B11 ]のようになりますが、この '1' の部分で '集計'シートの A1 の値を反映したいのです。 こうすると、シートが増えたとしても、上の式をコピーすれば(ドラッグでのコピー)式のシート名を変更する必要がないと思うのですが…。 ですが、思いつく方法を試してみてもどうもうまくはいきません。 本当にこういった方法は出来るのか、出来るのならその方法をご教授いただければありがたいです。 説明ベタで申し訳ありません。 これが出来るといろいろなものがうまくいくので、ぜひよろしくお願い致します。 (VBAはなるべく使わない方向でお願いします)

  • Excelのマクロを使用して以下の内容をしたいのですがどのようにすれば

    Excelのマクロを使用して以下の内容をしたいのですがどのようにすれば宜しいでしょうか? 1)「Sheet1」のセルの値が>2(2より大きい)の場合に「Sheet2」の同一のセルの色を例えば赤色にする。 これをA1~N34までのセルに関して連続で実行したい。 2)「X」というファイルのSheet1 A1からN34セルに同一のフォルダーに入っている、他のファイルの同セルに値が記載されていれば、その値をコピーしたい。 フォルダーに次々とファイルが追加されていくことを想定し、できれば他のファイル名は指定しなくてもどんどんコピーできるマクロがあればいいと思うのですが・・・ すみませんが宜しくお願いいたします。

  • エクセルのマクロの保存先(マクロ初心者)

    エクセル2010を使用しています。 最近必要に迫られてマクロを勉強し始めたばかりの超が付く初心者です。 今まで何年間も、手作業でやっていた作業がマクロで簡単、確実に実行できることがわかり、少しずつ使い始めました。(確かに便利で色々使いたくなっています) が、1つ問題に気付きました。 「保存先」の使い方が良く理解できません。 Auto_Open マクロが当方の使い方では非常に便利で使いたいのですが、今の当方のマクロの知識では大きな誤り(意図しない動作)に気付きました。 例えば起動時に、Sheet1の特定の範囲(A1:C5)のセルを削除して新たに入力出来る状態で起動させるようにした場合、Sheet2で保存したらSheet2の(A1:C5)のセルの内容が削除されて起動してきます。 つまり目的としないシートでも実行されてしまいます。 当方のような超初心者の場合、汎用性があるような使い方では意図しない作業が実行されてしまい非常に危ないと思います。 そこで、他のBookやシートに影響しないような設定の仕方を教えて頂きたいのです。 マクロに汎用性を要求するのは次の段階だと思います。 「個人Book」とか、「開いている・・・」とか「作業中の・・・」とか色々のマクロの保管場所があり、これを使い分けておられると思いますが、当方の場合、まずはこのシートでこれがしたい、だけで良いのです。ウッカリ意図しない動作されると非常に困ります。 どなたかこのような場合の対処教えてください。

  • EXCEL上にコマンドボタン、ファイルを自動保存

    EXCELのシート上にコマンドボタンを作成して特定セルの内容をファイル名にして特定ホルダーに自動保存をしたいのですが方法がわかりません。どなたかご存じでしたら教えてください。(超初心者。VBAもわかりません)過去ログも一通り読みましたが、イマイチ理解できませんでした。ホントに素人ですので解りやすく教えていただけるとありがたいです。

  • エクセルで違うエクセルファイルのセルデータを・・

    エクセルで AAA.xlsx BBB.xlsx CCC.xlsx  ・  ・  ・ と、ファイルが随時ファイルが追加されていきます。 そのファイルの書式は全て同じです。 その随時増えていく各ファイルの指定したセルの内容を 2010TOTAL.xlsxに自動で持ってきたい時の関数はありますか? 2010TOTAL.xlsxの中に追加になっていくファイル名を随時入力すればOKなのはわかるのですが・・・ ファイル名が任意で増えていくなか、2010TOTAL.xlsxをいじらないで自動で入る方法があるのか、どうかもわかりません。 よろしくお願いします。

  • EXCELを複数起動して別ファイルの特定セルに値を代入したい場合

    EXCELファイルを2種類起動しています。 片方のファイルのSheet1に記述したVBAで取得した値を もう片方のファイルにある特定シートの特定セルに代入したい のですが、どう指定したらよいのか分かりません。 ファイル名から記述するのでしょうか? ご存知の方教えてください。よろしくお願いします。

  • VBA 指定フォルダに複数のセル内容で保存

    こんにちわ。 いつもお世話になっております。 さて、毎度VBAでお世話になっており、表題については指定のシートのみxlsx、pdfファイルで保存するような場合のコードは都度教えていただいて都度うまく行っていたのですが、フォルダやファイルの種類を変えるとうまく行かない場合が多く、試行錯誤で何とかしていたので須が、今回どうしてもあれとこれとを組み合わせてもうまく行かず。 今回の目的で使えそうなpdfでの保存コードは何故かコード中の「pdf」を「xlms」に変更してもpdfファイルで保存されてしまうのは理解できず。 そこでNETで調べたら当方にも分かり易い汎用の下記のサンプルコードがあったのですが > 'ドライブ等の名前を変数に > hozonPath = "K:\" のドライブの書式 ”K:\” が良くわかりません。 具体的に "\\Srv01\業務g\応援チーム\MyPicture" このフォルダに保存したいのですが、どう記載するのか教えてください。 ファイル名にしたいセルは単にA1、A2というように単にセルの列行の記載すればいいのですよね? あまりに初歩的過ぎて質問の意味が分かりにくいでしょうか? Sub hozon() Dim wb As Workbook 'ワークブック Dim ws As Worksheet 'ワークシート Dim hozonPath As String 'ドライブ等のパス用 Dim FolName As String 'A1セル用のフォルダ名用 Dim FilName As String 'A2セル用のファイル名用 '自ワークブック Set wb = ThisWorkbook 'アクティブシート Set ws = ActiveSheet 'ドライブ等の名前を変数に hozonPath = "K:\" 'A1セルの値を変数に FolName = ws.Range("A1").Value 'A2セルの値を変数に FilName = ws.Range("A2").Value wb.SaveAs Filename:=hozonPath & FolName & "\" & FilName End Sub

  • セルのファイルを起動したい

    セルに入っているファイル名を開きたいと考えています。 ファイル名はパス付きで入っています。 拡張子が.docの時はワードで、.xlsの時はエクセルで、.pdfの時はアクロバットで、その他該当するアプリケーションを立ち上げてそのファイルを開き、そしてパス名だけの時はエクスプローラで該当ディレクトリを開きたいと思っています。 拡張子を見てワード、エクセル、アクロバットまでは立ち上げるVBAまでは出来ました。 エクスプローラが分かりません。 どなたか教えていただけないでしょうか。 またファイル名が入っている場合、現在は直接アプリケーションを起動するやり方をとっていますが、拡張子から自動的に適切なアプリを立ち上げることはできないでしょうか。 よろしくお願い申し上げます。 現在の方法: Sub test() Shell "C:\Program Files\Microsoft Office\OFFICE11\WinWord.exe " & _ "c:\test.doc", vbMaximizedFocus End Sub