dポイントプレゼントキャンペーン実施中!

初めまして、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列の計上の月度が違う場合、それぞれ添付の投資エクセルには●月度、計上エクセルには●月度、に金額を転記することは可能でしょうか?

出来ればサンプルコードをいただけると助かります。。

「エクセルVBA、別ブックへ転記する。につ」の質問画像

質問者からの補足コメント

  • 転記元も転記先も、拡張子はxlsxでした。(補足質問の見落としすみません……)

      補足日時:2024/05/17 13:47
  • また、転記先のフォルダをいくつか作ると先に進んだため、別のエラーのご相談なのですが、
    〇転記先ブックのシートチェック のメッセージボックス「転記先ブックの2つのシートの行数が不一致です」が出てしまいます。
    たしかに投資、計上の見えている行?がちがうようなのですが、どの部分を変えれば良いかわからず……
    「国内_連結修正後」はD列から、「国内_計上連結修正後」はE列から始まっていることに気付き、(非表示になってました)これが問題なのかな?と思っております。
    いくつも聞いてすみません、解決策などありますか……?

      補足日時:2024/05/20 14:03
  • ここまでしっかり作りこんでいただけると思ってませんでしたので、添付の画像はざっくり伝わればいいや、とわたしが制作したものです。
    実際のエクセルシートを添付しますので、どうぞよろしくお願いいたします。
    こちらは計上のシートになります。
    非表示の列の違いはありますが、内容は同じです。

    「エクセルVBA、別ブックへ転記する。につ」の補足画像3
    No.10の回答に寄せられた補足コメントです。 補足日時:2024/05/21 08:38
  • 装置名変換そのものが動いてないようなのです。
    管理へは添付のように入力しているのですが、(これは転記先に装置名があるのを確認済みです)変換結果シートが白紙になってまして……

    「エクセルVBA、別ブックへ転記する。につ」の補足画像4
    No.17の回答に寄せられた補足コメントです。 補足日時:2024/05/21 13:47
  • D6125シート内に記載されているデータです。
    先程の補足に添付した促進槽も、転記されていないので添付いたします。

    「エクセルVBA、別ブックへ転記する。につ」の補足画像5
    No.20の回答に寄せられた補足コメントです。 補足日時:2024/05/21 15:29
  • 転記先データに転記されていないのですが、画像が小さいので見えますかね……?

    「エクセルVBA、別ブックへ転記する。につ」の補足画像6
    No.20の回答に寄せられた補足コメントです。 補足日時:2024/05/21 15:31

A 回答 (30件中11~20件)

>→変換結果シートを見る→白紙(管理シートに記載したパターン名は残っている)



変換結果シートになにも出力されていない。と理解しました。
これが、起こるケースは、以下の何れかです。
転記元のデータ1行分について考えると
①その管理番号の装置名が転記先にあるので、その転記先に金額を転記した。
②その管理番号の装置名が転記先にないので、変換表のパターンをA2行以降
検索したが、マッチしたパターンが存在しなかった。

1行分で構いませんので、実際に金額が転記されなかった転記元データを提示していただくことは可能でしょうか。
この回答への補足あり
    • good
    • 1

No17の回答の補足をみました。


例として
BP0050* 促進槽
についてですが、転記元が
BP00501SAMP 小型機 2024/09 2024/10 4,000
のようになっていると、
上記のパターンにはマッチしますが、そもそも、小型機が転記先に存在するので、小型機に転記されます。
転記元の装置名が転記先に存在しない場合のみ、変換表を参照して、変換を行います。

あなたの希望としては、
転記元の装置が、転記先にあろうがなかろうが、
変換表にあるなら、変換表で設定した変換先に転記してほしい。
というように読み取れますが、そのようなことでしょうか。
    • good
    • 1
この回答へのお礼

空白を無視していただけるとのことで、ありがとうございます。


違うんです違うんです。
作成いただいたマクロを回す→「完了」のメッセージボックスが出る→変換結果シートを見る→白紙(管理シートに記載したパターン名は残っている)
さらに新しく作成された「_●月予測」のエクセルも転記がされてない

という状態でして・・・

どう説明すればいいのかわからないのですが、
・マクロは問題なく回っている
・新しく「_●月予測」のエクセルも出力されている
・なぜか金額の転記がされていない
・エラー等は出ていない

以上の結果から、なにかわかりますか・・?

お礼日時:2024/05/21 15:00

1.空白については、無視するようにします。



2.下記の件
>転記のパターンを掲示の例でお話すると、
>パターン
>BP0050* 電気炉
>と入力しておくと、「BP00501ENDO 測定装置」(500の枝番分)も「電気炉」のセルに転記される。ということでしょうか?

回答:はい、その通りです。
管理番号の先頭6桁が、"BP0050" であれば、それ以降の文字がどのようなものでも電気炉へ転記対象となります。


>また、別でご質問なのですが、
>小型機や、転写機に関しては①でご説明の通り、装置名が転記先にあるので>記載は不要、という認識でよいでしょうか?

回答:はい、その通りです。
逆に言えば、小型機は、転記先にあるので、
BP00100FUJITA  小型機   2024/09 2024/10 4,000
のデータを処理するとき
パターン  装置
BP00100* 電気炉
と登録しても、電気炉には転記されません。
    • good
    • 1

装置名変換が期待した結果になってないようでしたら、


装置名を変換して、転記したいデータを2,3件提示していただくことは可能でしょうか。
その場合、A列(管理番号)、B列(装置名)は必ず提示してください。

また、その時の管理シートに登録した、データ(2行目以降のA,B列)
も提示していただけませんでしょうか。
この回答への補足あり
    • good
    • 1
この回答へのお礼

こちらに関して、補足を載せました。
お手数をおかけしますが、ご確認をお願いしたいです、、

お礼日時:2024/05/21 13:48

>空白でもエラーになってしまうんですね!


余白がたくさん入っていたので、不要な部分を消したら無事にマクロが回りました!

回答:空白がない前提で作成していました。空白を無視するようにすることは可能です。但し、その場合は、同一行の2シートの装置名が共に、空白でないとエラーになります。そのように修正しましょうか。


>ただ、新規保存されたシートに転記されておらず……

回答:
パターンに関係のない装置、あなたが最初に提示された
BP00100FUJITA  小型機   2024/09 2024/10 4,000
BP00300TAKEDA 転写機    2024/10 2024/10 6,000
の転記は、正常に行われてますか。

転記は以下のようにして行っています。
①転記元の装置名が転記先にある場合、その装置の行へ転記を行う。
②転記元の装置名が転記先にない場合、管理シートのパターンをA2から下へ検索する。転記元元の管理番号が、管理シートのパターンにマッチすれば、
該当装置の転記先へ転記し、その管理番号の転記を終了とする。A2から最終行まで検索してもマッチしない場合は、転記しない。

>マクロ入りエクセルA2から下へパターン入力したのですが、、
>転記元に入っているすべてのパターンを入力してマクロを回すと、枝番(パターンで指定したもの)も含めて転記される。という認識で間違いないですか?
回答:
「転記元に入っているすべてのパターンを入力してマクロを回すと、枝番(パターンで指定したもの)も含めて転記される。」
すみません。この意味がよくわかりません。具体的に例を挙げて説明していただけませんでしょうか。
    • good
    • 1
この回答へのお礼

説明が下手ですみません。。

空白についてですが、今装置が全部で78件分入っています。
これは1年ごと(年度ごと)に更新され、毎年違う数になります。
現在319行から586行まで空白なのですが、年度が変わって装置数が増減してもエラーなく回るよう修正をお願いできますか・・?
わたし以外の方も使うので、出来れば空白を消す、という作業をなくしたくて・・

転記のパターンを掲示の例でお話すると、

パターン
BP0050* 電気炉

と入力しておくと、「BP00501ENDO 測定装置」(500の枝番分)も「電気炉」のセルに転記される。ということでしょうか?

また、別でご質問なのですが、
小型機や、転写機に関しては①でご説明の通り、装置名が転記先にあるので記載は不要、という認識でよいでしょうか?

お礼日時:2024/05/21 13:45

ブレイクポイントの設定方法は、下記にも表示されています。



https://kabu-macro.com/detail.php?dir=word&dir2= …

VBA ブレイクポイント で検索するといくつかヒットします。
    • good
    • 1

>装置名の並びはまったく同じように見えるのですが……なにか確かめる方法等ありますか?



装置名が空白の場合も、このエラーがでます。
空白の装置名がないか確認してください。
(但し、最後の4行分は合計用なので無視して構いません。)

もし、上記で解決しない場合は、マクロの
106行 のMsgBox ("転記先ブックの2つのシートの装置名の並びが不一致です")
にブレイクポイントを設定して、実行してください。
(106行の左端をクリックすると●印が現れます。それでブレイクポイントの設定完了です)

マクロを実行すると、その行で止まります。
1つ上の行にkey1,key2があるので、それにマウスを当てるとその内容が表示されます。それが、2つのシートの各々の装置名です。
それを確認してください。
又、102行に wrowがありますが、それがシートの行番号です。その値も確認してください。
    • good
    • 1
この回答へのお礼

空白でもエラーになってしまうんですね!
余白がたくさん入っていたので、不要な部分を消したら無事にマクロが回りました!

ただ、新規保存されたシートに転記されておらず……
マクロ入りエクセルA2から下へパターン入力したのですが、、
転記元に入っているすべてのパターンを入力してマクロを回すと、枝番(パターンで指定したもの)も含めて転記される。という認識で間違いないですか?

お礼日時:2024/05/21 12:42

下記にアップしました。


https://ideone.com/SB0PoN
これで確認してください。

>非表示を解除→マクロ→保存→非表示、という流れで問題ないでしょうか?
はい、それで問題ありません。
上記で正常に動作することが確認できましたら、
列の非表示を解除せずにマクロを実行してみてください。
その場合も、正常に終了するはずです。
行が非表示になるのは、まずいですが、列が非表示になるのは問題ありません。
    • good
    • 1
この回答へのお礼

ありがとうございます。
すべて再表示し、マクロを回してみたのですが
「転記先ブックの2つのシートの装置名の並びが不一致です」のエラーが出ました。

装置名の並びはまったく同じように見えるのですが……なにか確かめる方法等ありますか?

お礼日時:2024/05/21 11:43

補足の画像を拝見しました。

不明点及び確認です。

1.最終行を決めるための列(計画、?予、予測、実績)は、J列で間違いないでしょうか。
J列の最後に「実績」の文字が設定されているセルが最終行のセルになります。

2.装置名が記述されている列は、I列で間違いないでしょうか。
(小型機、転写機、電気炉などが設定されている列です)

3.装置名は、必ず、7行,11行,15行、・・・のように7行目から開始して、4行間隔で設定される。
で間違いないでしょうか。

4.提示された画像の最後の4行は、合計を表示するための行であり、転記の対象にはならないと解釈しましたが
それであってますか。(I列に装置名も設定されていない)
従って、転記の対象になる行は、7行目から最後の4行を除いた範囲内の予測の行になります。

上記の確認が、取れ次第、マクロの修正を行います。実際のレイアウトと最初に提示されたレイアウトに
かなり違いがありますので、多少修正に時間がかかります。
今後、画像を提示される場合は、実際のレイアウトを提示するようにしてください。
    • good
    • 1
この回答へのお礼

アップロードされた画像が思っていたより画質が粗めだったので心配だったのですが、確認いただけたようで安心しました。

不明点の回答いたします。
1、(計画、前予、予測、実績)の列は投資・計上ともにJ列で間違いありません。
ただ、J列「実績」の最終行の隣のセルにはSUM関数が入っています。
問題ないようでしたらそのままお願いいたします。

2、装置名が入っているのはどちらもE列になります。

3、tatsumaruさんの認識の通りです。
7行目、11行目、15行目・・・と4行間隔で記載されています。

4、K列、R列、Y列から先(Z方向)にはSUM関数が入っています。
転記したいのは、L~Q列(4月度から9月度)とS~X列(10月度から3月度)の予測行です。

すみません、その通りです・・
次回より気を付けます。。作り直し等でお手数をおかけしてしまい申し訳ないです。
よろしくお願いいたします。

お礼日時:2024/05/21 10:23

追伸:


>念のため、(齟齬を避けるため)
>「国内_連結修正後」の画像と「国内_計上連結修正後」の画像をアップしていただけませんでしょうか。
>(勘定科目がどこの列なのか、最初にあなたから提示された画像では想像がつきません)

と回答しましたが、
「国内_連結修正後」と「国内_計上連結修正後」とが、全く同じレイアウトなら、「国内_連結修正後」の画像のみで構いません。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A