【エクセルマクロ】ブックがあって、マクロをかけるとある特定のセルにそのブックの名前を埋め込んでから名前を付けて保存するようにしたい。




マクロをかけると、そのブックの名前(例・abc.xlsならば、abc)を特定のセルに埋め込んでから名前を付けて保存したいのです。

その埋め込みセルは常に特定の列です。(変数をわかりやすく入れてもらえるとありがたいです。デフォルトはO列です)

しかし条件があります。

特定の列の
・1行目は見出しです。

・2行目以降で埋め込むセル数を指定するとその分だけ上書きして埋め込みたいです。
 (その数はマクロ内にわかりやすく変数を入れておいていただけるとありがたいです。デフォルトは15でお願いします)


つまり、上記の例でいえば、

O2からO16まですべてabcが埋め込まれて名前をつけて保存モードになるということです。


なるべく簡単かつ、分かりやすいマクロでお願いできたら幸いです。

よろしくお願いいたします。






回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/11/16 15:35:25
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:gong1971 No.1

回答回数451ベストアンサー獲得回数70

ポイント100pt

質問文で拡張子が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文字を除いています。
 動作がおかしい時は、お知らせください。

id:naranara19

完璧でした!早く、丁寧で言葉づかいもすばらしいですね。ありがとうございました!これからもどうぞよろしくお願いいたします。

2012/11/16 15:35:08

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません