• ベストアンサー

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

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

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

> ファイル名だけつける処理のみでもよいです。「名前をつけて保存」のWINDOWが開いて、ファイル名欄にこちらの指定したファイル名が入った状態になるまでを自動化するというのでもいいです。 組込ダイアログを使うのがいでしょう。 セルA1にある文字「100200-01」はSheet1にあるものとします。 Sub test01() Dim x As String x = Sheets("Sheet1").Range("A1").Value & "注文書" Application.Dialogs(xlDialogSaveAs).Show arg1:=x & ".xls" ' End Sub

yshi1997
質問者

お礼

さっそく試しましたところ一発でできました。 マクロの細かい仕組みについては、私には難しくってよくわかりませんが コピーさせていただき無事完成いたしました。 本当に助かりました。ありがとうございました。

その他の回答 (2)

回答No.3

早速マクロを改造したところを見ると、yshi1997様相当知識がおありですね。 #2様の回答がスマートでよろしいかと思いますが、いちよ補足しておきます。 改造非常に惜しかったです。 "C:\Documents and Settings\PA060300831\My Documents\100200-01注文書.xls"の部分を "C:\Documents and Settings\PA060300831\My Documents\"&worksheets("ワークシート名を入れてください”).cells(1,4)&".xls" に置き換えてみてください。ちなみにcellsはcells(行番号、列番号)で使用します。(ご存知ですよね)

yshi1997
質問者

お礼

いえいえ、私の知識はとってもうすっぺらなもので、自動書き込みのマクロにちょっと修正を加えられる程度ですので、すぐこのようにつまずいて誰かに頼らずにいらはいられないのです。しかし勉強になります。本当にありがとうございます。 確かに#2様の回答はとってもスマートでこれを採用するのがベストかと思います(今回は恐縮ですがそうさせていただきます)がtetnon2000様のやり方は私レベルでもマクロの組み立てがわかりやすく、大変ありがたかったです。ありがとうございました!!

回答No.1

指定した語句というのは、エクセルシートに入力可能で、なおかつセルA1等と名称を結合したセルを使用してよいなら、マクロ記録を実行しておけば簡単にできると思います。 セルB1に「注文書」という言葉を入れておきます。セルc1に=A!&B1と入れると、結合した名称が表示されます。 ツールー>マクロー>新しいマクロの記録を選択。(マクロ名は適当な名称をつけてください。) C1セルの内容をコピー。 D4セルを選択して形式を選択して貼り付けの値のみで貼り付け。 D4セル選択。セルではなく、上の数式バーのほうで値を選択しコピー。 ファイルー>名前をつけて保存を選択。 保存先のフォルダを選択。 ファイル名に先ほどコピーした内容を貼り付け。 保存。(保存までやらないとマクロの終了ボタンが押せないので) マクロの記録終了ボタンを押す。 ちょっと目的とは違うかもしれませんが、試してみてください。 次回からはツールー>マクロー>マクロの先ほどつけたマクロの名前を選べば自動的に実行します。 またVBAの知識をお持ちであれば、記録したマクロを多少改造すれば、思うとおりのものにできるはずです。

yshi1997
質問者

お礼

すばやい回答ありがとうございます。 ほうほうと思いながら、マクロの自動書き込みにて作成してみました。そうしましたところ、 <D4セル選択。セルではなく、上の数式バーのほうで値を選択しコピー。 <ファイルー>名前をつけて保存を選択。 <保存先のフォルダを選択。 <ファイル名に先ほどコピーした内容を貼り付け。 <保存。(保存までやらないとマクロの終了ボタンが押せないので) <マクロの記録終了ボタンを押す。 数式バーのほうでコピーした値がそのままマクロの記録として残ってしまい、次回以降、セルの語句を変更してマクロを動かしても ファイル名が固定してしまいます。 また、保存先も都度指定できません。 このままではちょっと使えそうにありません。 なにが打開策はあるでしょうか? マクロ式は以下のとおりです(A1に任意の数字100200-01)、B1に「注文書」、C1に数式=A1&B1をいれました。) Range("C1").Select Selection.Copy Range("D1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveCell.Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "100200-01注文書" ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\PA060300831\My Documents\100200-01注文書.xls", _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False (余計なものも含まれているかもしれませんがそのまま記載しました)

関連するQ&A

専門家に質問してみよう