質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

712閲覧

Excel VBAでのレコード処理と、それをシート別に貼付し登録するプログラム

nobi-man

総合スコア5

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

1クリップ

投稿2020/03/25 14:17

前提・実現したいこと

①Eexcel VBAで、ブック1でボタンを押すと、ブックが作成され、さらにそのファイル名がbook1などではなく、
テストyyyymmddとなるようにしたい。

②①をもとに、条件を指定し貼付データを処理し、それを加工したものをシートに登録させるようにしたい。

発生している問題・エラーメッセージ

①debugすると、値は取れていますが ファイル名がbook1のまま ②データ加工し、それを別ブックのシート毎に処理させることはできるのでしょうか。

該当のソースコード

Excel

12Sub 新規作成() 3 4 Dim newFilename As Workbook 5 6 Workbooks.Add 7 Workbooks(1).Activate 8 newFilename = Activebook 9 10 newFilename = "テスト" & Format(Now, "yyyymmdd") 11 12 'イミディエイトには「テストyyyymmdd」が出力される。 13 Debug.Print newFilename 14 15End Sub 16 1718Sub シートを作成する() 19 20 Dim sheet1 As Worksheet 21 Dim sheet2 As Worksheet 22 Dim Sheet3 As Worksheet 23 Dim Sheet4 As Worksheet 24 Dim Sheet5 As Worksheet 25 26 Sheets(1).Name = "01 あ" ' 1 番目のシートの名前を変更 27 Range("A1").Select 28 ActiveCell.FormulaR1C1 = "あいうえお" 29 Range("B1").Select 30 ActiveCell.FormulaR1C1 = "かきくけこ" 31 Range("C1").Select 32 ActiveCell.FormulaR1C1 = "さしすせそ" 33 Range("D1").Select 34 ActiveCell.FormulaR1C1 = "たちつてと" 35 36End Sub 37 3839②で加工したデータを、別ブックのシートに転記したい 40 41### 補足情報(FW/ツールのバージョンなど) 42 43Windows10, Excel 2016 44 45よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2020/03/26 00:38

newFilenameをシート名にする処理が書かれていないかと思いますが。
nobi-man

2020/03/26 01:21

ありがとうございます。 obj.SaveAs FileNameの処理を加えたところ、ブック名が変更された状態で保存できました。
guest

回答2

0

ご回答いただき、ありがとうございます。

Aブック(マクロを書いた側)でBブックを作成&保存するマクロをコードを書きました。

現時点でとくにブックが増えたりしていないので、意図したとおりになりました。

投稿2020/03/26 10:03

nobi-man

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

んと。。。
誤解を恐れずに書くと、
エクセルのファイルを開くと、エクセル君から見たら、それは「ワークブック」という存在になります。
これは元のファイルとは紐づけはされてますが、別物です。
「上書き保存」とすると、紐づけされた情報に基づき、ファイルが上書きされます。
編集をした後、「保存をしない」で終了すると、編集は無かったことになります。
そして、「名前を付けて保存」とすると別ファイルとして保存されます。

なので、新規ブックの名前を変えたいと思ったら、「名前を付けて保存」を
することになります。

つまり、
何も考えずに編集して、名前を付けて保存をすればいいです。

しかし、
マクロを書いているブックでそれをすると、
同じマクロが書いてあるブックがどんどん増えていくことになります。
それでもいいかもしれませんが、
運用面で支障が出てくる場合があります。

こういう時は、
マクロを書いておくブックと、
編集をするブックを分けておき、
マクロで、
1)編集したいファイルを開く
2)データを編集する
3)名前を付けて保存
4)そのブックを閉じる
という作業の流れを自動化することになります。

投稿2020/03/26 08:43

mattuwan

総合スコア2136

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問