マクロをかけると、そのブックの名前(例・abc.xlsならば、abc)を特定のセルに埋め込んでから名前を付けて保存したいのです。
その埋め込みセルは常に特定の列です。(変数をわかりやすく入れてもらえるとありがたいです。デフォルトはO列です)
しかし条件があります。
特定の列の
・1行目は見出しです。
・2行目以降で埋め込むセル数を指定するとその分だけ上書きして埋め込みたいです。
(その数はマクロ内にわかりやすく変数を入れておいていただけるとありがたいです。デフォルトは15でお願いします)
つまり、上記の例でいえば、
O2からO16まですべてabcが埋め込まれて名前をつけて保存モードになるということです。
なるべく簡単かつ、分かりやすいマクロでお願いできたら幸いです。
よろしくお願いいたします。
質問文で拡張子がxlsとなっていたので、
Excel2003を前提に作成しました。
Excel2007-2010形式(xlsx)をご使用、
もしくは混在の場合はその旨をお知らせください。
Sub Macro1() n = 15 '### 埋め込むセル数 ### Range("O2").Select '### 埋め込む先頭セル ### Range(ActiveCell, ActiveCell.Offset(n - 1, 0)).FormulaR1C1 = _ Mid(ActiveWorkbook.Name, 1, Len(ActiveWorkbook.Name) - 4) fn = Application.GetSaveAsFilename(ActiveWorkbook.Name, "Excelファイル,*.xls") If fn = False Then MsgBox "ファイル名を指定してください" & vbCrLf & "処理を中止します" Else ActiveWorkbook.SaveAs fn End If End Sub
※拡張子を除く作業は厳密に行うと複雑になってしまうので、
簡易的にファイル名の後ろ4文字を除いています。
動作がおかしい時は、お知らせください。
完璧でした!早く、丁寧で言葉づかいもすばらしいですね。ありがとうございました!これからもどうぞよろしくお願いいたします。
2012/11/16 15:35:08