- ベストアンサー
Excel記号変換表とマクロの使い方
- ExcelのSheet(入力)にはD10:AH44まで記号があります。Sheet(マスタ)にはB5:E83の範囲でマスター登録をしています。マクロを使ってSheet(入力)の値をSheet(提出)に転写し、Sheet(マスタ)の値を一括入力したいです。
- VLOOK関数を使用してマクロを実行することができますが、その後の処理で値を特定の形式に変換したい場合もあります。具体的には、「001」「002」という値が欲しいです。
- この質問ではExcelの記号変換表とマクロの使い方について尋ねています。マクロを使ってSheet(入力)の値をSheet(提出)に転写し、特定の形式に変換したい場合にはVLOOK関数を使用することができます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
方法1の方がはるかに簡単なんですけどね。 方法1: sub Commandbutton1_Click() with worksheets("提出").range("B10:AF44") .numberformatlocal = "000" .formula = "=IF(入力!D10="""","""",VLOOKUP(入力!D10,マスタ!$B:$E,4,FALSE))" .value = .value end with end sub 方法2: sub CommandButton1_Click() dim h as range dim c as range for each h in worksheets("入力").range("D10:AH44") if h <> "" then set c = worksheets("マスタ").range("B5:B83").find(what:=h.value, lookin:=xlvalues, lookat:=xlwhole) if not c is nothing then c.offset(0, 3).copy destination:=worksheets("提出").range(h.offset(0, -2).address) end if end if next end sub
その他の回答 (2)
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
http://okwave.jp/qa/q7686801.html 結局何も見えん!! 帳票以前の問題?? 何をやりたいのか?? 下手に抽象化しないで、何をやりたいのかだけ書いた方が??
- keithin
- ベストアンサー率66% (5278/7941)
>Sheet(入力)にはD10:AH44まで記号があります D10からなのですか? それとも「例」のように実はB5からなのですか? まぁ、自力で修正してください。 方法1:さっき回答済み sub Commandbutton1_Click() with worksheets("提出").range("D10:AH44") .formula = "=IF(入力!D10="""","""",VLOOKUP(入力!D10,マスタ!$B:$E,4,FALSE))" .value = .value end with end sub 方法2:元のマクロ(遅い) sub CommandButton1_Click() dim h as range dim c as range for each h in worksheets("入力").range("D10:AH44") if h <> "" then set c = worksheets("マスタ").range("B5:B83").find(what:=h.value, lookin:=xlvalues, lookat:=xlwhole) if not c is nothing then c.offset(0, 3).copy destination:=worksheets("提出").range(h.address) end if end if next end sub
補足
ありがとうございます。何度もすいませんでした。 方法2:元のマクロ(遅い) で上手くいきました。質問内容など本当に申し訳ございません。 途中変更などがあり、私自身理解していなかったです。 もうひとつだけ教えていただきたいです。 c.offset(0, 3).copworksheets("提出").y destination:=worksheets("提出").range(h.address) のworksheets("提出")で範囲の変更が可能でしょうか?B10:AF44の範囲で提出Sheetは貼り付けたいのですが・・h.addressだと当然ずれてしまうので教えてください。初心者で本当に申し訳ございません。
お礼
本当にありがとうございました。方法1ですると上手く動かなかったので方法2でやりました。