- ベストアンサー
Excel ファイル操作マクロ
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
> メッセージボックスでの確認は、どのみち上の空になって、手間がかかるだけですから、ファイルコピーは直接実行したいと考えています。 変数Fnをメッセージボックスで取り出せるんだから、ファイル名に持っていけばいいだけの話じゃないですか? #3のコードに付け加えると以下の通りです。」 Sub test02() dv = IIf(Day(Date) < 11, Date, Date + 21) fn = Format(dv, "YYMM") & ".xls" Sheets.Copy ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\ユーザー名\デスクトップ\" & fn ActiveWindow.Close End Sub
その他の回答 (6)
- merlionXX
- ベストアンサー率48% (1930/4007)
> ファイル'c:\MyDocuments\Trrec'にアクセスできません。 このパスの記述が間違っているのでは? 自分でマクロの記録で\Trrec にファイルを保存してみて、どういう記述になるか確認してみたらどうでしょう?
お礼
merlionXXさん いろいろありがとうございました。 下記のとおりで巧くいきました。 Filename:= の尻尾のところを書き間違えていたようです。.xls の記述はこの場合不要でした。 ------------------------------------------------ Sub 別名保存() 'もとのファイル名のあとに年月(セルA10の値:0707表示)を加え、シートのデータのみ保存 Dim fn As Long fn = Format(Sheets("Sheet1").Range("A10").Value, "yymm") Sheets.Copy ActiveWorkbook.SaveAs Filename:="C:\My Documents\Trrec\MacroTest" & fn End Sub
- merlionXX
- ベストアンサー率48% (1930/4007)
一文字抜け落ちてました! Σ( ̄ロ ̄lll) 訂正です。 dv = IIf(Day(Date) < 11, Date, Date + 21) fn = Format(dv, "YYMM") & ".xls" MsgBox fn
お礼
merlionXXさん ありがとうございました。
- merlionXX
- ベストアンサー率48% (1930/4007)
毎月、10日までなら当月を、11日以降なら翌月を"yymm" 形式で、今なら 0707のようにしたいということですね? dv = IIf(Day(Date) < 11, Date, Date + 21) fn = Format(d, "YYMM") & ".xls" MsgBox fn ではいかが (^∇^)?
お礼
merlionXXさん ありがとうございました。
補足
merlionXXさん ありがとうございます。 > 毎月、10日までなら当月を、11日以降なら翌月を"yymm" 形式で、今なら 0707のようにしたいということですね? いいえ、そういうふうに値を取り出せる関数のセルが作ってあって、そこから出した値"yymm"をコピー先のファイル名のうしろに書き加えたいということです。 なお、メッセージボックスでの確認は、どのみち上の空になって、手間がかかるだけですから、ファイルコピーは直接実行したいと考えています。 よろしくお願いします。
- merlionXX
- ベストアンサー率48% (1930/4007)
#2です。 もとの全シートをコピーして名前をつけて保存するサンプルです。 もとのシートは閉じません。 Sub test01() fn = Format(Now(), "hhmmss") & ".xls" MsgBox fn & "(現在時間)として保存します。" Sheets.Copy ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\ユーザー名\デスクトップ\" & fn ActiveWindow.Close End Sub
お礼
merlionXXさん ありがとうございました。
補足
merlionXXさん ありがとうございます。 Format () の使い方がよくわからないので、教えてください。 実はすることがちょっと込み入っておりまして、このファイルコピーを実施する日が中旬以降の場合には翌月の表示になるようにしてあります。 表示形式は、m"月"とし、今日 07/06/29 現在なら 7月 となります。 関数は =IF(MONTH(NOW()-10)>=12,1,MONTH(NOW()-10)+1) です。 このセルから値を "yymm" 形式で取り出し、今なら 0707 として、ファイルコピーするとき、今のファイル名のあとに加えたいのです。 よろしくお願いします。
- merlionXX
- ベストアンサー率48% (1930/4007)
もとのファイル全体を名前を付けて保存するのではなく、必要なシートだけをコピーして日付記号を付加した名前で保存し、終了させれば、もとのファイルは終了せずに開いたままですよ。
お礼
merlionXXさん ありがとうございました。
補足
merlionXXさん ありがとうございます。 よくわからないので教えて下さい。 > 必要なシートだけをコピーして日付記号を付加した名前で保存 1.シートのコピー先は新しいブックですか? 2.一つのシートだけを抜き出して直接保存はできませんか?
- nullnullpo
- ベストアンサー率18% (2/11)
えーザックリですが・・・ ----- (1)本体ブック(A)から、ファイル名を指定して複製ブック(B)を保存 ※ここで自分自身は複製ブック(B)になっている (2)本体ブック(A)を開きなおす (3)複製ブック(B)を閉じる(保存確認なし) ----- の手順で可能だと思います 例)----- Administratorでログイン状態でデスクトップにBook1.xlsを作成し マクロ(sub test())内に下記を書けば動くかと・・・ (1) ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\Administrator\デスクトップ\Book2.xls" (2) Workbooks.Open Filename:="C:\Documents and Settings\Administrator\デスクトップ\Book1.xls" (3) ThisWorkbook.Close False
お礼
nullnullpoさん ありがとうございました。
関連するQ&A
- エクセルマクロでファイルを保存して閉じるときにファイル名に変数を付加して保存したいです。
エクセルマクロでファイルを保存して閉じるときにファイル名に変数を付加して保存したいです。 具体的にはファイルが閉じられるときに固定した名称の後ろに日付などを入れた形で保存したいと考えています。 どのように書けばよいのかわからなくて困っています。 教えてください。 宜しくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセルのマクロについて
人が作ったマクロで困ってます。 数年分の書類を一つのファイルでシートに分けて作ってます。 マクロでファイル名を付けて保存するまではいいのですが、 ファイル名で使いたい日付がテキストボックスで作られているため、 うまくいきません。 テキストボックス内の文字列をコピーしてファイル名に使えないでしょうか? エクセルは2007です。(2003もあります)
- ベストアンサー
- その他MS Office製品
- エクセルで<名前をつけて保存>するマクロに、保存時マクロを含めて保存させることは可能ですか
エクセル、マクロとも初心者です。 (VBAはわかりません) エクセルのテンプレートファイルを開いて、必要箇所だけ入力すると、その日の日付をファイル名として、<名前を付けて保存する>ようなマクロを作りました。 このままだと、マクロも一緒に保存されてしまいますよね。 マクロを含まずに、<名前を付けて保存>させるマクロって可能ですか? できるとしたら、どうやればいいでしょうか。
- ベストアンサー
- オフィス系ソフト
- ファイル名変更後も、マクロを動作させたいのですが?
データ入力用雛形ファイル(入力用.xls)に、データ入力完了後、保存用マクロでデータ部分だけをデータベース蓄積用ファイル(データ.xls)に、コピー・ペースト(数回に分けて)し、元の入力用.xlsを名前を変えて(日付&時間&ID番号.xls)別名保存する、マクロを作りました。 通常はうまくいくのですが、マクロの動作後、訂正箇所が発生したときに、現状ではマクロが正しく動作しません。(ファイル名が変わっているため?) どなたか教えていただけないでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- excelのマクロ操作
excelで以下の操作をマクロを用いて繰り返し行いたいのですがどのようになプログラムにしたらいいでしょうか? テキストファイルをexcelで読み込む ↓ グラフの作成 ↓ excelの保存
- ベストアンサー
- Visual Basic
- Excelマクロのファイルを名前を付けて保存について
Excelマクロの初心者です 保存方法についてわからなくて困っています。 雛形となるファイルがあります。 これにデータを貼り付けて、名前を付けて保存をしたいです。 ただ、この保存は、あるマクロに設定した動作の一部となります 個人の教科別点数データが入力してあるファイルAがあります。一人に付き1列で記入されています。 別のファイルBには、個人別成績表ファームを作成してあります。 ファイルAをファイルBにコピーして、個人の名前でファイルを保存する マクロを作成しています。 今、一列分(一人分)のデータをコピーして名前を付けて保存ができました。 次に、ループで、教科別点数データの次の列に移ろうとすると、デバックしました。ファイルBがないとのことです。 名前を付けて保存したから、名前が変わってしまったのでそのためでしょうか。 ファイルを開けたまま操作を進めているからいけないのでしょうか? どうしたら、元となるファイルにデータをコピーして、次々名前を付けて保存をしていけますでしょうか? OJTで勉強していけばいい、と言われ基本的なこともよくわからずに行っているので、はずかしいですが、教えてください。 お願いします。
- ベストアンサー
- Visual Basic
- エクセル マクロの組み方
初めて質問いたします。 1つの基本エクセルファイルから別名の2つ以上のエクセルファイルを選べ、どちらかを起動させるマクロが組め、 基本ファイルに入力し、別名ファイルにリンクし入力出来る様にマクロを組みました。 しかし、基本ファイルを起動させた後、選択できるエクセルファイルはどちらを起動させるかはその都度変化します。 そこで、どちらのファイルが起動しても大丈夫なように、ボタンを押せば保存、印刷をさせる追加マクロを教えてほしいのですが、誰か分かりますか?
- 締切済み
- オフィス系ソフト
- エクセルのマクロをファイル名で自動実行させたい
毎度お世話になっております。 エクセル2010で不慣れなマクロを作ったのですが、これを特定の名前のファイル名のBookに一括でコピー?、実行させるような方法はないでしょうか? ファイルを開く時に、マクロが動くようにAuto_Openマクロでやっと動くようになったのですが、ファイル名が「製品名(スペース)〇〇〇」の〇〇〇の付いたエクセルBookを開くときに、このマクロが自動で動くようにする方法は無いのでしょうか? ファイル数が結構あるので、これが出来れば非常に助かるのでお知恵をお貸しくださいませ。
- ベストアンサー
- Excel(エクセル)
- エクセルマクロで他のブックを複製するには?
件名の操作ができるマクロを書きたいのですが、どなたか教えて頂けるでしょうか。 エクセル2007で、マクロで同フォルダにある別のブックそのものをコピーし、 同フォルダに複製してできたブックに別名をつけて保存するという作業をしたいと思っております。 別ブックからシート情報をコピーする方法などは見つかったのですが、 他のブックそのものをコピーするという方法が見つかりませんでした。 これが可能な事なのかもわかっていません。 どうぞよろしくお願いします。
- ベストアンサー
- その他MS Office製品
お礼
merlionXXさん ありがとうございました。
補足
merlionXXさん ありがとうございます。 試してみましたら、次のようなエラーメッセージが出ました。 -------------------- 実行時エラー'1004' ファイル'c:\MyDocuments\Trrec'にアクセスできません。次のいずれかの理由が考えられます。 ・ファイル名またはパス名が存在しな可能性があります ・開こうとしているファイルは、ほかのユーザーまたはプログラムによって開かれています。他のプログラムで開いている場合、ファイルを閉じた後、もう一度実行してください。 ・保存しようとしているファイルと同じ名前のファイルが、既に読み取り専用のファイルと -------------------- ブック内の全シートがコピーされた \book1 ができています。 \Trrec は、記録用に作ったフォルダーです。