人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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



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

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

しかし条件があります。

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

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


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

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


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

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








●質問者: naranara19
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● gong1971
●100ポイント ベストアンサー

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


naranara19さんのコメント
完璧でした!早く、丁寧で言葉づかいもすばらしいですね。ありがとうございました!これからもどうぞよろしくお願いいたします。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ