• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:excel 記号変換 表)

Excel記号変換表とマクロの使い方

このQ&Aのポイント
  • ExcelのSheet(入力)にはD10:AH44まで記号があります。Sheet(マスタ)にはB5:E83の範囲でマスター登録をしています。マクロを使ってSheet(入力)の値をSheet(提出)に転写し、Sheet(マスタ)の値を一括入力したいです。
  • VLOOK関数を使用してマクロを実行することができますが、その後の処理で値を特定の形式に変換したい場合もあります。具体的には、「001」「002」という値が欲しいです。
  • この質問ではExcelの記号変換表とマクロの使い方について尋ねています。マクロを使ってSheet(入力)の値をSheet(提出)に転写し、特定の形式に変換したい場合にはVLOOK関数を使用することができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.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

pop2003
質問者

お礼

本当にありがとうございました。方法1ですると上手く動かなかったので方法2でやりました。

その他の回答 (2)

回答No.2

http://okwave.jp/qa/q7686801.html 結局何も見えん!! 帳票以前の問題?? 何をやりたいのか?? 下手に抽象化しないで、何をやりたいのかだけ書いた方が??

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>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

pop2003
質問者

補足

ありがとうございます。何度もすいませんでした。 方法2:元のマクロ(遅い) で上手くいきました。質問内容など本当に申し訳ございません。 途中変更などがあり、私自身理解していなかったです。 もうひとつだけ教えていただきたいです。 c.offset(0, 3).copworksheets("提出").y destination:=worksheets("提出").range(h.address) のworksheets("提出")で範囲の変更が可能でしょうか?B10:AF44の範囲で提出Sheetは貼り付けたいのですが・・h.addressだと当然ずれてしまうので教えてください。初心者で本当に申し訳ございません。

関連するQ&A