• ベストアンサー

文字を置き換えるマクロが知りたいです

こんばんは!会社で使用しているエクセルシートで困っていることがあります。 sheet1に各年度毎の表が作成されています(A列は平成25年度、B列は平成26年度…) sheet2の特定のセルに年度を入力すると、sheet2のA列に入力されている数式「=Sheet1!A○」の"A"を"B"等に置き換えるマクロが知りたいです。 分かりづらい説明で申し訳ありませんが、よろしくお願いします。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

図が全く見えませんので外しているかもしれませんが、マクロでやるよりHLOOKUP関数で解決できそうな気がします。

punipunimiyu
質問者

お礼

やりたいことができました♪ 図が全く見えないにも関わらず、意図を組んで早速ご回答いただき感謝してます!今後ともよろしくお願いします♪

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! No.1さんの方法が間違いがなくて良いと思います。 どうしても質問通りのようなコトをやりたい場合は、VBAでもできますが、 「置換」操作が一番簡単だと思います。 仮にA列に数式が入っている場合 A列すべてを範囲指定 → ctrl+Hキー → 「検索する文字列」に A と入力 → 「置換後の文字列」に B と入力 → 「すべて置換」 これで完了です。 ※ 注意点 ※  万一数式内に =AB○のようにAが含まれる数式がある場合、すべて置換されてしまいます。m(_ _)m

punipunimiyu
質問者

お礼

ご丁寧にご回答いただきありがとうございました! 勉強になりました♪ 今後ともよろしくお願いします♪

関連するQ&A

  • エクセルのマクロでの数式の入力に関しての質問です。

    エクセルのマクロでの数式の入力に関しての質問です。 特定のセルに =セルと同一行のA列の値 + セルの同一行のB列の値 というような数式を入力したいのですが 同一行の列の指定方法がわかりません。  例) 特定セル=C1 結果:C1=A1+B1 特定セル=C3 結果:C3=A3+B3 どなたかご教授よろしくお願いいたします。

  • エクセルのマクロを知りたい

    エクセルで,たくさんのデータが入力された【シートa】があります。 新しく【シートb】を作成して,そこに空白の表(1)~(10)までを作成します。 (ちなみに表(1)は1行から始まり100行まで,表(2)は101行から始まり200行まで・・・・といった感じです) 【シートb】の表(1)には,【シートa】でA列に「1」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。同様に,表(2)には,【シートa】でA列に「2」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。・・・というのを表(10)まで続けます。 上記のような命令をボタン一つで操作できるようなマクロを教えて欲しいのです。 お願いします。

  • エクセルでマクロを作りたいのですが上手くいきません

    エクセルで会社で使うファイルを作成していますが、ファイルサイズが大きくなりすぎたので、こういうマクロが作れないかと調べていたのですが、やり方がわからないので困っています。 わからないのは、入力シートのA列にデータを入力して、シート2のB列に自動的に表示する ことを自動的にやってくれるマクロです。 今はIF関数をシート2に入力している状態ですが、セルに関数を入れる方法だとファイルサイズが大きくなりすぎてしまいます。 (IF関数をあらかじめ入力しておくセル数がとてもたくさんある為) なお、入力シートA列がブランクの場合は、シート2のB列には何も表示されないようにしたいです。 大変困っております。よろしくお願いします。 

  • エクセルのマクロについて質問です。

    エクセルのマクロについて質問です。 マクロを発動した時に、あるセルに入力してある数値を参照し、その行のX列目に数値を張り付けるものを作成しようとしています。 例えば シート「1」の A1に日付を入力 B1にある数字を入力 シート「2」の A列にA1→1~A31→31の日付が入力されている時 マクロ発動時にシート「1」A1の日付と一致する シート「2」のB列にシート「1」のB1の値を貼り付け ↑たとえばシート「1」のA1が1日でB1が500だった場合 シート「2」の1日(A1)と同じ行でB列(B1に500を 貼り付けるものです。 かなり下手な説明だと自覚しておりますが、解読できる方 どうかご教授ねがいます。

  • エクセルの関数について。

    エクセルの関数。 Sheet1の作業列1のA2セルに =IF(COUNTA(Sheet2!2:2)=0,"",IF(Sheet2!A2="",A1,Sheet2!A2)) →数式1とする 作業列2のB2セルに =IF(A2=$D$2,ROW(),"") →数式2とする という数式を入れA2・B2セルを範囲指定 → B2セルのフィルハンドルで下へコピーしておきます。 (Sheet2の行数以上コピーしておく) そしてE2セルに =IF(COUNT($B:$B)<ROW(A1),"",INDEX(Sheet2!B:B,SMALL($B:$B,ROW(A1)))&"") →数式3とする という数式を入れオートフィルで列方向・行方向にコピーする。 教えて頂きたいことは、数式1、数式2、数式3が何を意味しているのか。 と、この数式を使って、表を作成したのですが、ある特定の数字(コード、D2セルに入力)を入力しても反応してくれない。 (E2~H2まで、空白セルの状態になります。) (sheet2は約1200行あります。) 教えて頂けないでしょうか?

  • エクセルのマクロで特定の文字があるときだけコピーできるようにしたい

    エクセルのマクロで特定の文字があるときだけコピーできるようにしたい エクセルでこういう表があるとします ココカラ 1 * 2 b 15 3 * 4 d 19 5 e 25 6 * 7 g 35 8 * 9 j 46 10 k 54 ココマデ このような表があるとき、マクロを使ってもしB列に「*」以外の文字(この場合アルファベットのb) があるときは左のセル(2)をずっと下のセルにコピー(仮にA50とします)した後、右のセル(15)をB51にコピー、 次は文字が「*」なのでコピーはせずにd列になったら4と19をC50,D51にコピー・・・ という作業をセルに「ココマデ」と書いているところまで繰り返す、というマクロを作りたいのですが、どうすれば いいのでしょうか?

  • 検索後、削除や抽出するマクロ

    エクセルのシート1、A列の1~1500のセルにテキストが入力されており ある特定のテキストを含むセルを全て シート2のA列に抽出したいのですが、検索してみましたがうまくできません。 作業の流れとしては シート1のA列を範囲指定し、編集-検索、検索する文字列を入力し、すべてを検索をクリック 検索結果をコピーし、シート2のA列に貼り付ける もうひとつはシート1、A列の1~1500のセルにテキストが入力されており テキスト1またはテキスト2を含むセルを全て削除するというマクロを作成したいです。 ご指導のほどよろしくお願いいたします。

  • エクセルのマクロで入力文字を一文字ずつ並んだセルに入れる

    エクセルマクロ超初心者です。 エクセルVBAでユーザーフォームを作成しました。 テキストボックスに入力した文字列を「登録」ボタン押下後、エクセルシートのセルに一文字づつ入るようにするにはどうすれば良いでしょうか? 例えばテキストボックスに「kohiro」と入力するとエクセルのsheet1のA1「k」、B1「o」、C1「h」、D1「i」、E1「r」、F1「o」となるようにしたいのです。入力する文字数は0~30文字までで、その都度長さは変わります。どうやって、文字をばらせばいいのか、またどうやって可変長の文字列を指定したセルに入力すればいいのかわかりません。どうかよろしくお願いいたします。

  • VLOOKUPで一致した場合に特定の数字を返す

    Excelファイル1に平成24年度版の商品の縦書き一覧表があります。(A2~A100までが商品名) 同じくExcelファイル2に平成23年度版の商品の縦書き一覧表があります。(A2~A100までが商品名) Excelファイル1における平成24年度の商品一覧表の各商品の横のセル(B2~B100)に、平成23年度にも販売していたのであれば「23」という数字を記入し、平成23年度に販売していなければ(平成24年度からの発売であれば)「24」という数字を記入したいとします。 簡単な方法としてはExcelファイル2のB2~B100に23を記入し、Excelファイル1のB2に VLOOKUP関数を入力し、Excelファイル1と2のA列が一致する場合、Excelファイル2のB列(23)を返し、一致しないセルのエラーを削除して24を記入するという方法が考えられます。 しかし、一つの関数入力で23年度の一覧表に一致する商品の隣のセルに23、23年度に販売されていなければ24という値を返すようにしたいと思います。 IF関数の中の論理式の部分をVLOOKUPに置き換えて入れ子にし真なら23、偽なら24とすればよいのかと思ったのですが、エラーになります。 どのような数式をつくればよいのでしょうか。

  • Excelのマクロを使って数字を入力したいのですが、方法がわかりません。

    ExcelのG列とI列にランダムに3桁の数字を作成しました(=ROUND(RAND()の数式を使いました)。 あいだのH列には‐(ハイフン)が入力されています。 これらを別のシートの同じ列に形式を“値”と選択してコピーしました。これらの数字をB列に入力したいのです。 具体的には、たとえば、G1セルに265,H1セルに-、I1セルに849と入力されているとしたら、B1セルに265-849と入力されるように設定したいのです。 それぞれの列にはランダムな数字が並んでおり、対応するB列のセルに同様に入力されるように設定したいのですが、方法がわかりません。マクロを使えばよいとのことですが、どなたか詳しく教えてください。 よろしくお願いします。