• 締切済み

エクセルマクロ初心者です。教えてください。

エクセルマクロ初心者です。 仕事で使うエクセルにマクロを本をまねたりウェブで調べたりして見よう見まねで組んでみました。 稟議書ナンバー(L1)をファイル名として別フォルダに保存してそのまま閉じるマクロを作成できたのですが、別フォルダに保存したときに一緒にマクロも保存されてしまいます。 マクロは保存せずに別フォルダに稟議書シートのみ保存したいのですがどのようにすればよいのでしょうか。 以下がファイル保存のマクロです。 Sub booksave() ' ' booksave Macro ' マクロ記録日 : 2009/3/30 ユーザー名 : ' ' Dim myFileName As String '稟議No. myFileName = Range("l1").Value '稟議No.を変数に取得する ChDir "F:\稟議書" Sheets("表").Copy ChDir "F:\稟議書\稟議書保存" ActiveWorkbook.SaveAs Filename:="F:\稟議書\稟議書保存\" & myFileName & ".xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False ActiveWorkbook.Close End Sub どうぞよろしくお願いいたします。

みんなの回答

  • hotosys
  • ベストアンサー率67% (97/143)
回答No.3

こんなのではどうでしょうか? Sub booksave() Dim myFileName As String '稟議No. myFileName = Range("l1").Value '稟議No.を変数に取得する Sheets("表").Copy With ActiveWorkbook.VBProject.VBComponents("Sheet1").CodeModule .DeleteLines 1, .CountOfLines End With ActiveWorkbook.SaveAs Filename:="F:\稟議書\稟議書保存\" & myFileName ActiveWorkbook.Close End Sub

ciebow
質問者

お礼

hotosysさん こちらも試してみます。 ありがとうございます。 いろいろな方法があるのですね 参考になります。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

Sub try() Dim wb As Workbook Dim ws As Worksheet Dim i As Integer Set ws = ActiveSheet Workbooks.Add Set wb = ActiveWorkbook If wb.Worksheets.Count > 1 Then For i = wb.Worksheets.Count To 2 Step -1 Application.DisplayAlerts = False wb.Worksheets(i).Delete Application.DisplayAlerts = True Next End If ws.Cells.Copy wb.Worksheets(1).Range("A1") wb.Worksheets(1).Name = ws.Name wb.SaveAs Filename:="F:\稟議書\稟議書保存\" & ws.Range("l1").Value & ".xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False wb.Close Set wb = Nothing Set ws = Nothing End Sub ご参考になれば。

ciebow
質問者

お礼

n-junさん とても参考になります。 明日、会社に行って試してみます。 ありがとうございます。

  • A88No8
  • ベストアンサー率52% (834/1602)
回答No.1

こんにちは 私もマクロ初心者です。 肝心なマクロプログラムが作成されている場所はどこでしょう? コードから見て、"表"シートにあるような.. 同じブック内でも標準モジュールとかに置いたらコピーされないような気がします。 外していたらごめんなさい。

ciebow
質問者

お礼

A88No8さん ご回答ありがとうございます。 早速確認してみます。 お礼が遅くなってすみません。

関連するQ&A

  • マクロが思い通りに動きません

    エクセルでマクロを使いボタンを 作りました。ボタンを押すとHDDとDVDに保存される仕組みになっています Sub DVD() ChDir "E:\" ActiveWorkbook.SaveAs Filename:=Format(Now, "yyyy-mm-dd(hh時mm分ss秒)"), FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub Sub HDD() ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\***\デスクトップ\ファイル名.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub これだとDVDへ保存が上手くいきません。DVDからエクセルを開いて使えば問題ないのですが、デスクトップから開くと日付入りのデータがデスクトップに保存されてしまいます。 どうやって書き換えたらいいでしょうか

  • VBマクロで教えて下さい。

    下記VBマクロで上書きしない時はマクロを終了させたいのですがこ指導をお願いします。 Sub Macro2() ' Macro2 Macro ' マクロ記録日 : 2012/9/3  ユーザー名 : HA社    ChDir "C:\Documents and Settings\6464552\デスクトップ"    ActiveWorkbook.SaveAs Filename:= _        "C:\Documents and Settings\6464552\デスクトップ\直送先部品出庫伝票.xls", FileFormat:= _        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _        , CreateBackup:=False  Range("D42:E49").Select    Selection.ClearContents    Range("I32:J32").Select    Selection.Copy    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _        :=False, Transpose:=False    Application.CutCopyMode = False    ActiveWorkbook.SaveAs Filename:= _        "C:\Documents and Settings\6464552\デスクトップ\PPSC部品出庫伝票.xls", FileFormat:= _        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _        , CreateBackup:=False    Application.Quit End Sub

  • Excelマクロで年度別にフォルダ作成したい。

     Excel2003です。  日々の売り上げ集計ファイルをボタン一つで保存していくマクロを作っています。 Application.DisplayAlerts = False If Dir(ThisWorkbook.Path & "\" & Format(Date, "yy") & "年集計", vbDirectory) = "" Then MkDir Path:=ThisWorkbook.Path & "\" & Format(Date, "yy") & "年集計" ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Format(Date, "yy") & "年集計\" & Format(Date, "yymmdd") & ".xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Else ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Format(Date, "yy") & "年集計\" & Format(Date, "yymmdd") & ".xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False  とりあえず指定のフォルダに「yymmdd.xls」という名前をつけて保存、もしフォルダがなければ作るというところまで作れました。そこで、今度は「**年度」というフォルダに自動的に保存され、もし「**年度」というフォルダがなければ作るようにしたいのです。上に上げたマクロでは「**年」というフォルダを作ってその中に保存というところまでは出来ているのですが……。とにかく年度で分ける場合の処理がよくわかりません。  回答よろしくお願いします。

  • エクセルマクロで保存をする際の質問

    エクセル2003をXPで使っています。 あるシートに入力をしたあと、セルA1(変数を"number"としています)に入力させたデータをファイル名にして特定のフォルダに保存させています。 具体的なことは下記の通りです。 ActiveWorkbook.SaveAs Filename:="C:\入力済みデータ\" & number & ".xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False ActiveWorkbook.Close ところが、C:\入力済みデータフォルダに同じ名前のファイルが存在していたとき、 "○○というデータがすでに存在します。置き換えますか?"と聞かれますよね。 そのときに"いいえ"を選択するとエラーになります。 "いいえ"を選択したとき、別名をつけられるようにするにはどうしたらいいでしょうか。 よろしくご教示ください。お願いいたします。

  • ファイルの保存先を任意にしたい(マクロ)

     エクセルのマクロです。  マクロを実行した時に、保存先とファイル名は任意に入力して(その部分だけは、マクロ実行者が入力して)、その後もマクロを実行させたいのですがどうすれば良いのでしょうか? たとえば、 ActiveCell.FormulaR1C1 = "1" Range("B1").Select ChDir "C:\Documents and Settings\a\デスクトップ" ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\a\デスクトップ\ Book1.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Range("A2").Select ActiveCell.FormulaR1C1 = "2" Range("B2").Select ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\a\デスクトップ\ Book2.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Range("A3").Select ActiveCell.FormulaR1C1 = "3" Range("B3").Select ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\a\デスクトップ\ Book3.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Range("A4").Select ActiveCell.FormulaR1C1 = "4" Range("B4").Select  上記の場合は、保存先もファイル名もこちらが指定していますが、その部分だけは、マクロの実行者に任意指定及び入力させたいのです。  マクロ初心者なので、よろしくお願いします。

  • マクロ 保存の仕方

    ' 指定の場所に保存する ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\Owner\デスクトップ\A\B\" & Replace(Range("k2").Value, "/", "") & ".xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False ActiveWorkbook.Close 上記のようにマクロを組みましたが、同じ名前で1回保存すると2回目からエラーします。 2回目から保存名の後ろに(2)、3回目は(3)等を付けて保存したいのですが。

  • エクセルマクロ フィルタで検索した結果で新しいブックを作成する

    いつもこちらでお世話になっているマクロ勉強中のものです。 オートフィルタを使ってD9の条件にあるものすべてを順番に新しいブックにコピーしていきたいと思っています。 Loopで処理するのだと思いますが、順番にすべて検索する 繰り返しの処理の仕方が分かりません。 不躾で申し訳ありませんが、提出期限が近いため、 どなたかご指南いただけたらと思います。どうぞよろしくお願いします。 Sub Macro1() ActiveSheet.Range("$A$9:$T$79").AutoFilter Field:=4, Criteria1:="○○" Range("D1").Select Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Copy Workbooks.Add ActiveSheet.Paste Folder = "C:\Documents and Settings\All Users\デスクトップ\" folder_name = "デスクトップ" ChDir Folder fname = "(D1).xls" ActiveWorkbook.SaveAs Filename:= _ Folder & fname, FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub

  • エクセル マクロの記述(フォルダーの移動、削除)

    現在開いているエクセルのファイルにマクロを記述し、 1 「処理済」というフォルダーに、開いているエクセルファイルを移動して、同じ名前でエクセルを保存する。 2 「CSV」というフォルダーに、開いているエクセルファイルをCSVファイルに変換して名前を「処理.csv」とし保存する。 3 現在開いているエクセルファイルは削除する。 以上の三つの処理をさせようと、以下のようにしましたが、1,2の処理は出来ましたが、3の開いているエクセルファイルが残ってしまいます。 以上三つの処理が一度に出来るマクロの記述を教えて下さい。 よろしくお願いします Sub マクロ() ActiveWorkbook.SaveAs Filename:="C:\処理済\" & ActiveWorkbook.Name ChDir"C:\CSV" ActiveWorkbook.SaveAs Filename:= "C:\CSV\処理.csv" _ , FileFormat:=xlCSV, CreateBackup:=False Application.DisplayAlerts = False If Workbooks.Count = 1 Then Application.Quit Else ActiveWorkbook.Close End If Application.DisplayAlerts = False End Sub

  • エクセルマクロ機能で、常に上書き保存を選択させたい

    いつもお世話になっております。 エクセルマクロ機能を利用し、特定のセル情報を新規bookにコピー貼り付けさせ、名前をつけて保存を実行するよう記録しました。 ここまでは問題ないのですが、毎回同じファイル名で実行するので、そのたびに「上書きしますか?」のメッセージが出て、そこでいったん手動で「はい」を選択しないとならなくなります。 ここで、マクロの記述内に何かを加えて、毎回、「はい」を自動で選択させ、保存までが1回のマクロで実行できるようにできますか? 参考までに↓以下、記述された内容をコピーします。 Sub Macro3() ' ' Macro3 Macro ' マクロ記録日 : 2007/9/19 ユーザー名 : ' ' Columns("A:U").Select Selection.Copy Workbooks.Add Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("A1").Select Application.CutCopyMode = False ActiveWorkbook.SaveAs Filename:="D:\フォルダ1\ふぉるだ2\ファイル名.xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False End Sub

  • エクセル2000マクロエラーについて

    下記のマクロをエクセル95で動かすと正常に終わるのですが、エクセル2000で 動かすとデバッグエラーで止まります。 何処がおかしいのでしょうか教えてください。 出来れば言語の意味も教えてください。 Sub 送信メニュ() Dim i, C_COUNT, folda, work, tuki i = MsgBox("加工業者別の発注基礎資料を作成します。", 1, "着色加工計画作成システム") If i <> 1 Then Exit Sub Sheets("msg2").Select Call gafalse folda = "C:\aa着色加工計画\" tuki = Sheets("ACT").Cells(5, 12).Text→最初にここでデバッグエラーになります。 tuki = Val(Right(tuki, 2)) If tuki = 12 Then tuki = 1 Else tuki = tuki + 1 End If tuki = Format(Str(tuki), "00") Workbooks.Add F_NAME = "加計" + tuki + "月.XLS" ActiveWorkbook.SaveAs Filename:=folda + F_NAME, _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False Windows("加工品.xls").Activate Sheets("masta").Select C_COUNT = Sheets("masta").Cells(2, 3).Text For count = 1 To C_COUNT 'C_COUNT Windows("加工品.xls").Activate Sheets("masta").Select Cells(3, 5) = count i = count M_KAKOBA(count) = "sheet" + i Call 送信 Next count Application.CutCopyMode = False ActiveWorkbook.SaveAs Filename:=folda + F_NAME, _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveWindow.Close End Sub