初めまして、VBA初心者です。
エクセルVBAについてご教示お願いします。
A列 B列 C列 D列 E列
管理番号 名称 投資 計上 金額
BP00100FUJITA 小型機 2024/09 2024/10 4,000
BP00300TAKEDA 転写機 2024/10 2024/10 6,000
BP00500ENDO 電気炉 2024/09 2024/09 8,000
BP00501ENDO 測定装置 2025/05 2025/02 5,000
上記のようなデータがあり、これを添付のデータに転記したいのです。
添付のものは同じ形式で投資用・計上用があります。
質問としまして
①A列(管理番号)のBP●●500~とBP●●501~を、添付の11~14行目(同じ名称)の該当する月度に金額を転記することは可能でしょうか?
②C列の投資、D列の計上の月度が違う場合、それぞれ添付の投資エクセルには●月度、計上エクセルには●月度、に金額を転記することは可能でしょうか?
出来ればサンプルコードをいただけると助かります。。
No.30
- 回答日時:
>最初に指定するフォルダの位置なのですが、このマクロ入りExcelが入っているフォルダ、と指定したい場合、なんと入れればいいんでしょうか?
調べたところ、ThisWorkbook.Pathなるものを見つけたのですが、これだけでは位置の指定にならないようでして……
転記元も転記先もマクロを格納してあるフォルダと同じにしたいということでしょうか。
それであれば、Folder1とFolder2を全てThisWorkbook.Pathで置き換えれば、実現可能です。
但し、Folder1とFolder2が数か所で使われているので、以下のようにした方が簡単です。
1.以下の2行をコメントアウトするか削除するかしてください
先頭に'をつけると、コメントになります。
'Const Folder1 As String = "d:\goo\data10\OUT" '転記元ブック格納フォルダ
'Const Folder2 As String = "d:\goo\data10\OUT" '転記先ブック格納フォルダ
2.その2行の下へ以下の行を追加します。
Dim Folder1 As String
Dim Folder2 As String
3.マクロの先頭で、以下の行を追加します。
Folder1 = ThisWorkbook.Path
Folder2 = ThisWorkbook.Path
Application.ScreenUpdating = False
の次へ追加しておけばよいです。
以上で終了です。
No.29
- 回答日時:
>別件で、このマクロを他に使う方と相談したところ、転記元のブックと転記先のブックを同じフォルダにしておくほうが管理が楽、という話をいただきまして。
。>今作成いただいたのですと、転記元と転記先が別フォルダにそれぞれ保存された状態からスタートだと思うのですが、同じフォルダに格納しても大丈夫でしょうか?
上記の件ですが、
同じフォルダにした場合、転記先は、ファイル名を指定して読み込むので、問題ありません。
転記元は、ワイルドカード("*.xlsx")を指定して該当するものを全て処理しているので、転記先のブックも読み込んでしまいます。
転記元ファイルのファイル名が必ず「設備投資入力」から始まることが、保証されていれば、可能です。
ワイルドカードを"設備投資入力*.xlsx"にすれば、対応可能です。
転記元と転記先のフォルダ名を同じにした場合は
64行目の
bname = Dir(Folder1 & "\*.xlsx")
を
bname = Dir(Folder1 & "\設備投資入力*.xlsx")
に変えてください。
そうすれば、対応可能です。
出来ました!
0もすべてに入っており満足してます!
何度も質問すみません。
最初に指定するフォルダの位置なのですが、このマクロ入りExcelが入っているフォルダ、と指定したい場合、なんと入れればいいんでしょうか?
調べたところ、ThisWorkbook.Pathなるものを見つけたのですが、これだけでは位置の指定にならないようでして……
No.26
- 回答日時:
>ひとつご質問なのですが、転記が行われなかったセル(例えば、BP00100FUJITAだと投資は9月度に転記されるので、4月度から8月度、10月度から3月度までのセル)に0を入れるとなると、いただいたマクロにものすごい修正が必要でしょうか?
これは、転記先の2つのシート(国内_連結修正後、国内_計上連結修正後)
についてのことでしょうか。以下、その前提で進めます。
このシートは、1年間は雛型として、使用できるので、最初に、手作業で設定しておけばよいと考えていました。
このシートの行数が非常に多いということでしょうか。
もし、0を設定する場合は、転記が行われる前に、全て0に設定しておく
という方法になります。それで良ければ、可能です。
その場合、0クリアの対象となる列は4月~9月、10月~3月です。
対象となる行は、
①装置名が空白でない行(計画、前予、予測、実績)
②上記のうちの予測の行
で良いでしょうか。
(計画、前予、実績は0クリアしません。必要であればクリアも可能ですが)
雛形として使える件なのですが、
毎月「★【PGB】2024~2029年度 電源国内_PGB 投資予測_帳票.xlsx」を別マクロから出力しており、このブックを別フォルダへコピーするので、0を最初から入れておくことが難しいんです、、(行が多いことも要因ではありますが)
ですので、転記前に0を設定していただき、転記したときに上書きする。という方法がありがたいです。
ご説明いただいている通り、予測の行だけで問題ありません。
計画、前予に関してはすでに数値が入っている予定ですので、Oに設定しなくて大丈夫です。
予測と実績のみ0だとありがたいです。。
また、関数の入っている行も大丈夫です。
別件で、このマクロを他に使う方と相談したところ、転記元のブックと転記先のブックを同じフォルダにしておくほうが管理が楽、という話をいただきまして。。
今作成いただいたのですと、転記元と転記先が別フォルダにそれぞれ保存された状態からスタートだと思うのですが、同じフォルダに格納しても大丈夫でしょうか?
No.25
- 回答日時:
>「転記元シート[D6110]投資月エラー」
>と出ています。
>これはシートがおかしい、ということでしょうか?
はい、その通りです。
エラーで止まったとき、エラーのセルのが選択された状態で止まります。
その内容は、どのようになっていますか。
yyyy/mm
のようになっていて、mmの値が01~12の範囲にないときにえらーになります。(1~12ではありません。01~12にないとエラーになります)
ありがとうございます。
シートがおかしい、セルが選択される、とご指摘いただいたので見てみたところ、空白が数行入っていました。
空白を削除したところうまく回り、
処理完了
処理ブック件数=2
処理シート件数=4
処理データ件数=40
と出ました。
新規保存されたブックに転記もされてました!
思った通りに動いており感動してます!
ひとつご質問なのですが、転記が行われなかったセル(例えば、BP00100FUJITAだと投資は9月度に転記されるので、4月度から8月度、10月度から3月度までのセル)に0を入れるとなると、いただいたマクロにものすごい修正が必要でしょうか?
であれば手入力するので問題ないのですが、ここにこのモジュール入れたらいいよ!程度であればマクロでやっていただきたいな〜と思ってしまいました……
No.24
- 回答日時:
>No20の回答の補足ですが、
>転記先ではなく、転記されるはずの
>転記元のデータを提示していただけませんでしょうか。
転記元のデータは提示されていました。失礼しました。
パターン 転記先装置
BP0050* 促進槽
上記が、管理シートに登録されていれば、
BP00501ENDO
BP00502ENDO
は、促進槽に転記されるはずです。
BP00500ENDOが転記先の促進槽に転記されているなら、マクロのバグの可能性があります。
BP00500ENDOが転記されていないなら、そもそも、このシートが処理されていない可能性があります。
最後に提示したマクロは、処理されたブック数、シート数、データ件数
を表示しますので、その数字を提示していただけませんでしょうか。
No.22のご確認内容ですが、
①の転記がすでに行われていないようなのです。
②③についてはその通りです。
本日さっそくいただいたマクロを回してみたのですが
「転記元シート[D6110]投資月エラー」
と出ています。
これはシートがおかしい、ということでしょうか?
No.23
- 回答日時:
転記先シートの装置名の空白を無視するようにしました。
下記をURLにアップしました。
https://ideone.com/Z9JpEN
また、処理終了時に転記元ファイルの処理対象となった、ブック件数、シート件数、データ件数を表示するようにしました。
データ件数は、転記された1行を1件とカウントします。
(実質は投資用1件、計上用1件で2件となります)
No.22
- 回答日時:
No20の回答の補足ですが、
転記先ではなく、転記されるはずの
転記元のデータを提示していただけませんでしょうか。
念のため確認ですが、
①小型機、転写機等の、転記先に存在する装置については、転記が行われている。
②転記元のフォルダには、転記元のブックが1件以上存在する。
③転記元のブックには、"D6110", "D6120", "D6125", "D6560"の何れかのシートが存在する。
上記の①~③は、全て成立していると理解して良いでしょうか。
問題なのは、装置名が転記先にない場合の、変換表による装置名変換が行われていないことのみと理解して良いですか。
もし、そうであれば、以下のマクロを登録し、実行してください。
(現行マクロと同じモジュールには格納しないでください。他のモジュールに格納してください)
Public Sub 変換試験()
Dim kanri As String
Dim ptn As String
kanri = "BP0050XYZ" '①
ptn = "BP0050*" '②
If kanri Like ptn Then
MsgBox ("変換対象です")
Else
MsgBox ("変換対象外です")
End If
End Sub
①の箇所に試験したい転記元データの管理番号を設定し
②の箇所にパターンに登録する文字列を設定してください。
「変換対象です」が表示されれば、変換対象になります。
①と②をいろいろ変えて確認してみてください。
No.21
- 回答日時:
追伸:
そもそもの話になりますが、転記されないデータは、下記のいずれかのシートに属していますか。
"D6110", "D6120", "D6125", "D6560"
上記以外のシートのデータは処理されません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBAでデータ転記 1 2024/01/28 20:11
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける (再質問) 4 2022/09/14 22:51
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
- Excel(エクセル) 【マクロ】転記ツール。転記先にデータがある場合、上書きするか消すか質問をして欲しい 2 2023/10/29 22:52
- Visual Basic(VBA) エクセル VBAでの転記の方法について 1 2023/10/22 19:14
- Visual Basic(VBA) VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。 13 2023/02/26 09:31
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
Excel初心者です。 詳しい方、効率の良いやり方を教えてください。 職場で、抽出したデータの表を見
Excel(エクセル)
-
(マクロ)データをAブックからBブックへコピー、データを入っているセルまでだけコピーする為には
Excel(エクセル)
-
【マクロ】顧客番号にて一致させ、情報を表へ上書きする為には
Excel(エクセル)
-
-
4
【マクロ】ファイル名の変更について
Excel(エクセル)
-
5
エクセル共有したが、アクセスできなくかった
Excel(エクセル)
-
6
VBAについての質問です
Excel(エクセル)
-
7
エクセル関数に詳しい方教えてください
Excel(エクセル)
-
8
VBA バックグラウンドで別ブックを開いてデータ転記
Excel(エクセル)
-
9
Excelにてある膨大なデータを管理しています。 そこで、特定の市町村にのみ色を付けたいです。 Ex
Excel(エクセル)
-
10
スマートな関数を教えて下さい。
Excel(エクセル)
-
11
Excel初心者です。 詳しい方、効率の良いやり方を教えてください。 職場で、抽出したデータの表を見
Excel(エクセル)
-
12
エクセルでの作業計算方法について
Excel(エクセル)
-
13
【関数】適切な文字数の数字を取り出したい
Excel(エクセル)
-
14
はがきについて。
Excel(エクセル)
-
15
VBAで大量のファイルをシート名ごとに転記やらいろいろしたい!
Visual Basic(VBA)
-
16
エクセルで年休を管理する方法について
Excel(エクセル)
-
17
【マクロ】名前を保存する際に、同じファイルがあった場合に、メッセージを表示
Excel(エクセル)
-
18
エクセルを使っていて2024/5/15と入力したのに令和元年とかででるのでしょうか?何か設定分かる方
Excel(エクセル)
-
19
【関数】先頭だけにある、半角スペースを、とりのぞく事はできますか?
Excel(エクセル)
-
20
時間によってファイル名が変わるエクセルをほかのエクセルでデータを参照する方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
非表示列の再表示に失敗
-
VBAで文字列を数値に変換したい
-
エクセルで最初のスペースまで...
-
2つのエクセルのデータを同じよ...
-
エクセル 文字数 多い順 並...
-
エクセルで文字が混じった数字...
-
エクセルの表から正の数、負の...
-
エクセル(勝手に太字になる)
-
エクセルの並び変えで、空白セ...
-
エクセルで、列の空欄に隣の列...
-
オートフィルターをかけ、#N/A...
-
エクセル 同じ値を探して隣の...
-
Excelで半角の文字を含むセルを...
-
「B列が日曜の場合」C列に/...
-
基準となる列を参照して、別の...
-
エクセルのセル内の文字の一部...
-
Excel、市から登録している住所...
-
【VBA】特定列に文字が入ってい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
2つのエクセルのデータを同じよ...
-
エクセルで最初のスペースまで...
-
エクセルVBA、別ブックへ転記す...
-
エクセル 文字数 多い順 並...
-
エクセル(勝手に太字になる)
-
VBAで文字列を数値に変換したい
-
エクセルで文字が混じった数字...
-
エクセルの表から正の数、負の...
-
「B列が日曜の場合」C列に/...
-
Excelで半角の文字を含むセルを...
-
エクセルの並び変えで、空白セ...
-
Excel、市から登録している住所...
-
エクセル 同じ値を探して隣の...
-
EXCELで 一桁の数値を二桁に
-
エクセル初心者です 関数の入れ...
-
A列がない・・・A列が非表示に...
-
オートフィルターをかけ、#N/A...
-
エクセルで、列の空欄に隣の列...
おすすめ情報
転記元も転記先も、拡張子はxlsxでした。(補足質問の見落としすみません……)
また、転記先のフォルダをいくつか作ると先に進んだため、別のエラーのご相談なのですが、
〇転記先ブックのシートチェック のメッセージボックス「転記先ブックの2つのシートの行数が不一致です」が出てしまいます。
たしかに投資、計上の見えている行?がちがうようなのですが、どの部分を変えれば良いかわからず……
「国内_連結修正後」はD列から、「国内_計上連結修正後」はE列から始まっていることに気付き、(非表示になってました)これが問題なのかな?と思っております。
いくつも聞いてすみません、解決策などありますか……?
ここまでしっかり作りこんでいただけると思ってませんでしたので、添付の画像はざっくり伝わればいいや、とわたしが制作したものです。
実際のエクセルシートを添付しますので、どうぞよろしくお願いいたします。
こちらは計上のシートになります。
非表示の列の違いはありますが、内容は同じです。
装置名変換そのものが動いてないようなのです。
管理へは添付のように入力しているのですが、(これは転記先に装置名があるのを確認済みです)変換結果シートが白紙になってまして……
D6125シート内に記載されているデータです。
先程の補足に添付した促進槽も、転記されていないので添付いたします。
転記先データに転記されていないのですが、画像が小さいので見えますかね……?