データ追跡 テンプレートウィザードを使用時、名前をつけて保存するマクロ

このQ&Aのポイント
  • データ追跡テンプレートウィザードを使用してマクロを作成したり、名前をつけて保存する方法について教えてください。
  • 使用しているエクセルは2000です。マクロのコードが正しく動作しません。マクロのコードの修正方法を教えてください。
  • 見積書テンプレート内にボタンを設置し、任意の名前で保存し、同時にデータベースに転記する方法を教えてください。
回答を見る
  • ベストアンサー

データ追跡 テンプレートウィザードを使用時、名前をつけて保存するマクロ

データ追跡 テンプレートウィザードを使用時、名前をつけて保存するマクロコード はどうかけばよいでしょうか? http://allabout.co.jp/gm/gc/3496/ を参考にしてシステムをつくり、転記に成功しています。 しかし、部署内で使用するため、誰でもわかりやすく使えるものにしたいのです。 それにあたって、下記の機能をつけようとおもっています。 見積書テンプレート内にボタンを設置し、それをクリックして、 任意の名前をつけて任意のフォルダにおさめ、 それと同時にデータベースの転記も行いたいのです。 具体的に、AA1セルの値をファイル名にして、 C:\Documents and Settings\natsuko\デスクトップ\mitsumori\log\" 以下にファイルを保存したいと思っています。 しかし、AA1の値がついたファイルが上記フォルダに保存されるものの、 見積書の内容がデータベースに転記されません。 マクロのコードは下記のとおりです。 大変申し訳ないのですが、迫っている業務に間に合わせたいと思い、 「すぐに回答を!」を選択しております。 助けていただければ幸いです。 宜しくお願いいたします! ※使用しているエクセルは2000です。 Sub 新規保存1() Dim fname fname = Range("AA1") & ".xls" ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\natsuko\デスクトップ\mitsumori\log\" & fname, _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveWindow.Close End Sub

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

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

マクロで保存するとアドインマクロが実行されないようですね。 いずれにしても、[データベースに保存]ダイアログを出して、 更新か追加かキャンセルか、の応答が必要になるので WZTEMPLT.XLAのマクロを指定して直接実行させるような対処になるかと思います。 http://www.ozgrid.com/forum/showthread.php?t=43322 Sub try()   Dim fname      On Error GoTo errHandler   Application.Run "WZTEMPLT.XLA!Commit"   'Sheet名は適宜変更してください   fname = Sheets("Sheet1").Range("AA1") & ".xls"   With ThisWorkbook     .SaveAs Filename:="C:\Documents and Settings\natsuko\デスクトップ\mitsumori\log\" & fname, _         FileFormat:=xlNormal     'If MsgBox("Closeします。", vbOKCancel) = vbOK Then       .Close     'End If   End With   Exit Sub errHandler:   MsgBox Err.Number & ":" & Err.Description End Sub ファイル名に使えない文字でエラーになった場合などの対応は On ErrorステートメントでExcelに任せてます。 ただ、[データベースに保存]ダイアログで[キャンセル]した場合でも 保存とCloseの処理が進んでしまうのが難点です。 これを解消するには"WZTEMPLT.XLA"の解析が必要になると思われ、 流石にそれはMicrosoftに怒られるかと... それにウィザード機能を抜いた"WZTEMPLT.XLA"的なものを自作したほうが早そうなので これ以上の深追いはご勘弁を。

natsuko1984
質問者

お礼

早速のご回答、ありがとうございます! なるほど、マクロを指定して実行すれば良かったのですね。 自分では、とても考え付かなかったアイデアです。 お陰様で、無事運用できました。 ありがとうございました。

関連するQ&A

  • EXEL テンプレートウィザードについて

    請求書を書いて、そのまま台帳(データベース)に転記するためにテンプレートウィーザードを使う方法でやりたいと思いました。 しかし、すべてを設定した後、「上書き保存」をすると、請求書データベースを開けませんとなり、何度やっても転記することができませんでした。 アドインで「データ追跡機能付き~」の部分にもチェックはしましたし、セキュリティーも中にしており、もちろんマクロも有効にしております。 データベース(台帳)は指定したところにしっかり出来上がってるのに、新規作成から呼び出した請求書テンプレートに記入して、上書き保存をしても「請求書データベースを開けません」と注意書きが出て、転記できませんでした。 どのような原因が考えられるのでしょうか?よろしくお願いいたします。

  • Excel保存時に任意セル値をファイルのプロパティと別ファイルに転記するマクロは?

    会社でExcelのテンプレートから見積書を作成して、保存した後、ファイルのプロパティと、別に作成している「見積書データベース」ファイルに転記しているんですが、時間がかかるので、自動化出来ないか悩んでいます 理想はファイルの保存時に自動的に転記することなんですが 1、ファイルのプロパティの概要タブの中の「タイトル」、「表題」、「カテゴリ」、「コメント」の中に任意セルの値を転記 2、別に作成している「見積書データベース」ファイルの各項目に任意セルの値を転記 この2つが出来るようなマクロ、もしくはエクセルの機能は無いでしょうか?

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

     エクセルのマクロです。  マクロを実行した時に、保存先とファイル名は任意に入力して(その部分だけは、マクロ実行者が入力して)、その後もマクロを実行させたいのですがどうすれば良いのでしょうか? たとえば、 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  上記の場合は、保存先もファイル名もこちらが指定していますが、その部分だけは、マクロの実行者に任意指定及び入力させたいのです。  マクロ初心者なので、よろしくお願いします。

  • ワードのマクロ、テンプレートのバックアップについて

    こんにちは いつもお世話になっています ワード2002を使っています。 自作のマクロ、テンプレートをバックアップしたいのですが、該当ファイルがわかりません。 C:\Documents and Settings\Owner\Application Data\Microsoft\Templates の中にNormal.dotがありますが、これがマクロでしょうか?複数の自作マクロがあるんですが、この中にすべて書き込まれているのでしょうか? テンプレートは各自作テンプレートの名前で一つづつ「….dot」とあります。 これらをバックアップすればいいのでしょうか。

  • エクセルで<名前をつけて保存>するマクロに、保存時マクロを含めて保存させることは可能ですか

    エクセル、マクロとも初心者です。 (VBAはわかりません) エクセルのテンプレートファイルを開いて、必要箇所だけ入力すると、その日の日付をファイル名として、<名前を付けて保存する>ようなマクロを作りました。 このままだと、マクロも一緒に保存されてしまいますよね。 マクロを含まずに、<名前を付けて保存>させるマクロって可能ですか? できるとしたら、どうやればいいでしょうか。

  • エクセルファイルをフロッピーに保存するマクロで教えて下さい

    今、フロッピーにファイルを保存する為のマクロを創っているのですが ワイルドカードの使い方を教えて下さい ここから***** Sub フロッピー保存() ' ' Dim fNAME As String fNAME = ActiveWorkbook.Name 'アクティブなブックのファイル名を取得 'ファイルが新規に作成された場合の処理(book1,book2等と成っている場合) If fNAME = "Book*" Then fNAME = Application.InputBox(prompt:="新規ファイルですね。ファイル名を入力して下さい", _          Title:="新規ファイル入力", Type:=2) Else ActiveWorkbook.Save End If '取得したファイル名でフロッピーディスクに保存 ActiveWorkbook.SaveAs Filename:="A:\"&fNAME, _    FileFormat:=xlNormal, _ Password:="",WriteResPassword:="",ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub ここまで***** >>'ファイルが新規に作成された場合の処理(book1,book2等と成っている場合) >> If fNAME = "Book*" Then この、If fNAME = "Book*" Then が有効に働いていないみたいなんです。 「ワイルドカード・・・* や ? はマクロではどの様な書式が正しいのでしょう それと、エラー処理なんですが InputBoxメソッドでキャンセルやファイル名を入力しないで「OK]が押された 場合の処理、又フロッピーが挿入されていなかった場合などの エラー処理の対処法を教えて下さい

  • エクセルにて保存時に同名のファイル名は実行拒否する

    今エクセルで、名前を付けて保存のマクロを作っています。 同ファイル名の物が同じフォルダ内にあれば上書きできますが、強制的に上書きできない様にする方法ってありますか? マクロをかじって間もないので、考え方もイマイチな状態で、困っております。 ご教示宜しくお願い致します。 Sub AAA() Dim fname As String fname = Application.Dialogs(xlDialogSaveAs).Show If fname = "False" Then MsgBox "キャンセルが押されました。処理を中止します" Exit Sub End If End sub

  • マクロ 保存の仕方

    ' 指定の場所に保存する 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)等を付けて保存したいのですが。

  • Wordの名前を付けて保存のマクロを教えてください

    いつもお世話になっています。 名前を付けて、特定のフォルダに保存したいのですが、.GetSaveAsFilenameのところで 「メソッドまたはデータ メンバが見つかりません。」のエラーがでてうまく動きません。 何処が間違っているのか教えてください。よろしくお願いします。 元のデーターは、別のフォルダに入っていて、その名前を取得したいです。 しかし、その名前の修正をしたいときもあるので、確認して保存したいです。 ご教授お願いします。 SUB test() Dim fname As String Dim SF As String SF = "\\osaka\PCBackup\" fname = Application.GetSaveAsFilename(SF, _ FileFilter:="wordファイル,(*.doc),*.docx") ActiveDocument.SaveAs Filename:=fname End Sub

  • Excelで指定したフォルダに保存するマクロ

    Excel2003で、シートをコピーし別ファイルとして保存したいのですが 保存先のフォルダがネットワーク上にあります。 ファイル名は、指定したセルの値で保存されるようにします。 以下の記述でマクロ実行すると、シートは別ファイル(BOOK1)としてコピーされ ます。 名前をつけて保存ダイアログが開きますが、そのときにマイドキュメントが開き ます。 Private Sub CommandButton1_Click() ActiveSheet.Select ActiveSheet.Copy Dim Sname As String, Fname As Variant, Folname As String Folname = "ネットワーク上フォルダのフルパス" Sname = Range("O46").Value If Sname = "" Then Sname = ThisWorkbook.Name Fname = Application.GetSaveAsFilename(InitialFileName:=Sname, fileFilter:="Excel(*.xls), *.xls") If Fname <> False Then ActiveWorkbook.SaveAs Fname End Sub そもそもネットワーク上のフォルダを指定することはできないのでしょうか? マクロに関してはずぶの素人で、上記の記述は過去の質問などを参考に作成しま したので どこかに間違いがあるのかも知れませんが、間違いを特定することができません。 お手数おかけし申し訳ありませんが、ご教示のほどよろしくお願いします。 補足として、保存する際にダイアログを開きたい理由は以下の通りです。 ・保存先誤り防止(作業者が多数いて、使用するPCも違うため) ・ファイル名誤り防止(同じファイル名が存在しないかどうか確認)

専門家に質問してみよう