• ベストアンサー

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

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

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

>入力シートのA列にデータを入力して、シート2のB列に自動的に表示する  これが曖昧です。入力シートのA1に入力された値を、シート2のB1に表示(つまりB列の同じ行数のセルに表示)するということでしょうか それでよければ以下のマクロを入力シートの「シート名タブ右クリック」→「コードの表示」で開く画面に貼り付けて、入力シートのA列に値を入力して見てください。シート2のB列に表示されるはずです。 ただしマクロ中のシート名(Sheet2)は実際の「シート2」のシート名に変更して下さい Private Sub Worksheet_Change(ByVal Target As Range)  If Target.Column = 1 Then    Sheets("Sheet2").Cells(Target.Row, "B").Value = Target.Value  End If End Sub

yu-ka86
質問者

お礼

体調不良でお礼が遅くなり、大変申し訳ありませんでした。 説明足らずで申し訳ありません。zap35様がおっしゃる通りのことをやりたかったのです!!!今試してみてできました。すごいびっくりしました。素晴らしいです。こんなやり方があるなんて・・・・。 本当にありがとうございました。感動しました。まだまだマクロはわからず、関数ばかりで作成していましたが、マクロではこんなすごいことが簡単な構文でできてしまうのですね。 本当にありがとうございました。

yu-ka86
質問者

補足

回答ありがとうございました。 早速zap35様から教えて頂きましたマクロをそのまま利用してみましたが、何点かまた分らない事項が出てきまして、一旦回答をしめきり、再度質問させて頂きます。知識不足でスイマセン・・・。

その他の回答 (1)

回答No.1

いろいろな手法はありますが 数値の値複写をするマクロで如何でしょうか Sub 数値転写() Columns("A:A").Select Selection.Copy Sheets("Sheet2").Select Columns("B:B").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub マクロのキー記録で作成しました ご参考まで

yu-ka86
質問者

お礼

ありがとうございます。 マクロで数値をコピーする方法は思いつきませんでした・・・。 値転写というやりかたなんですね。 こちらも利便性が非常によさそうなマクロですので、今後活用させて頂きたいと思います。ありがとうございました。

関連するQ&A