こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBAの保存

毎月異なった新しいエクセルファイルに同じような加工を施すため、VBAを書きました。対象はActivesheetとしています。

で、質問は、この新しいエクセルファイルの標準モジュールにいちいちこのVBAをコピーペーストせずに実行する方法です。
きっと何かあるとは思うのですが・・・・。

VBAは次のような簡単なものです。
Sub 加工1()

Dim e As Integer, s As String, n As String

e = Range("A4").End(xlDown).Row
s = Replace(Mid(Range("A2"), 8, 5), "年", "") & "-"
n = Replace(Mid(Range("A2"), 19, 5), "年", "") & "-"

Range("A1:C2").MergeCells = False

Columns("B:B").Select
Selection.Insert Shift:=xlToRight
Columns("A:A").Select
Selection.Insert Shift:=xlToRight
Columns("C:C").Select
Selection.NumberFormatLocal = "G/標準"
Range("B3").Select
Selection.AutoFill Destination:=Range("B3:C3"), Type:=xlFillDefault
Range("B3").Select
ActiveCell.FormulaR1C1 = "商品番号1"
Range("C4").Select
ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],10)"
Range("C4").Select
Selection.AutoFill Destination:=Range("C4:C" & e), Type:=xlFillDefault
Range("A3").Select
ActiveCell.FormulaR1C1 = "抽出年月日"
Range("A4").Select
ActiveCell.FormulaR1C1 = s & n & 1
Range("A4").Select
Selection.AutoFill Destination:=Range("A4:A" & e), Type:=xlFillDefault
Rows("3:3").Select
Selection.Insert Shift:=xlDown

Range("B1:E1").MergeCells = True
Range("B2:E2").MergeCells = True

ActiveSheet.Name = "提出用"
End Sub

投稿日時 - 2005-01-11 11:30:31

QNo.1162463

暇なときに回答ください

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

マクロの記録で、「個人用マクロブック」に記録を使う(マクロブックを作ることが目的なので内容はなんでもいい、後で削除)でマクロブックを作れば、
新しいエクセルファイルに自動的に読み込まれますので、そこにマクロを書き写しておけば、次からは、そのまま使えます。
場合によっては名前の修飾が必要かもしれません(http://okweb.jp/kotaeru.php3?qid=1129270

投稿日時 - 2005-01-11 12:27:14

お礼

「個人用マクロブック」ですか。
ありがとうございました。
うまく出来ました。

投稿日時 - 2005-01-11 13:54:42

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

もう回答も出てうまくいったようですので、お書きになったVBAの方をちょっと簡素化してみました。
いかがでしょう?

Sub TEST()
With ActiveSheet
Dim e As Integer, s As String, n As String
e = .Range("A4").End(xlDown).Row
s = Replace(Mid(.Range("A2"), 8, 5), "年", "") & "-"
n = Replace(Mid(.Range("A2"), 19, 5), "年", "") & "-"
.Range("A1:C2").MergeCells = False
.Columns("B:B").Insert Shift:=xlToRight
.Columns("A:A").Insert Shift:=xlToRight
.Columns("C:C").NumberFormatLocal = "G/標準"
.Range("B3").AutoFill Destination:=.Range("B3:C3"), Type:=xlFillDefault
.Range("B3") = "商品番号1"
.Range("C4").FormulaR1C1 = "=LEFT(RC[-1],10)"
.Range("C4").AutoFill Destination:=.Range("C4:C" & e), Type:=xlFillDefault
.Range("A3") = "抽出年月日"
.Range("A4") = s & n & 1
.Range("A4").AutoFill Destination:=.Range("A4:A" & e), Type:=xlFillDefault
.Rows("3:3").Insert Shift:=xlDown
.Range("B1:E1").MergeCells = True
.Range("B2:E2").MergeCells = True
.Name = "提出用"
End With
End Sub

投稿日時 - 2005-01-11 14:02:14

お礼

わざわざご親切にありがとうございました。
すっきりしましたね。

投稿日時 - 2005-01-11 14:09:18

あなたにオススメの質問