• ベストアンサー

エクセルの使い方

エクセルを使い、自動で複式簿記の仕分けができるようにしたいので、次のようなことはできますか? 第1シートの表は入力されている行と入力されていない行があり、この表をもとに、第2シートに入力されている行のみを上から順に詰めた表が自動で作成されるようにすることはできますか? 説明が難しいなら、何を勉強すればいいですか?マクロとかVBAとかなら、何の部分になりますか?

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

  • ベストアンサー
回答No.2

> 1.Sheet2に表示させるデータを3行目からにする場合には、どのように変化させるのでしょうか? > 2.Sheet2に表示させるデータをA列からD列にする場合には、どのように変化させるのでしょうか? 修正しました。 Sub tenki02() Dim i As Integer, n As Integer n = 3 For i = 3 To 100 If Sheets("Sheet1").Cells(i, 1) <> "" Then Sheets("Sheet2").Cells(n, 4).Value = Sheets("Sheet1").Cells(i, 1) n = n + 1 End If Next End Sub

age1118
質問者

お礼

どうもありがとうございます。 大変助かりました。

その他の回答 (1)

回答No.1

VBAでやってみました。 シート1のA列にデータがとびとび入っていて、シート2のA列にデータを上から切れ目なく順番に表示させる方法です。 失敗するとまずいのでまずはバックアップをとってからテストしてみてください。 シート1のデータをとりあえず100行目まで対象にしましたが、For i = 1 To 100の100を変更すればいくつでもOKです。 1.Alt + F11 または、[ツール] メニューの [マクロ] をポイントし、 Visual Basic Editorをクリックします。 2.Visual Basic Editor ウィンドウのメニューから、  [挿入]→[標準モジュール] をクリックします。 3.表示されたコードウィンドウ(白く広い部分。カーソルが点滅していると思います。)に以下のマクロコード(SubからEnd Subまで)をコピペします。 4.ワークシートに戻り、[ツール] メニューの [マクロ] →「マクロ」で今貼り付けたマクロ名(tenki)を選択して、実行。 Sub tenki() Dim i As Integer, n As Integer For i = 1 To 100 If Sheets("Sheet1").Cells(i, 1) <> "" Then n = n + 1 Sheets("Sheet2").Cells(n, 1).Value = Sheets("Sheet1").Cells(i, 1) End If Next End Sub

age1118
質問者

補足

わざわざ、どうもありがとうございます。恐れ入りますが、もしできましたら、 1.Sheet2に表示させるデータを3行目からにする場合には、どのように変化させるのでしょうか? 2.Sheet2に表示させるデータをA列からD列にする場合には、どのように変化させるのでしょうか? あつかましくてすみません。

関連するQ&A