エクセルVBAに関してのご質問です。
一つのbookにア、イの2sheetがあるとします。
sheetアのA1セル~A4セルに①関東、関西、東北、九州などが記入され、B1セル~B4セルに②50、15、0、8などの数値が記入されます。
sheetイのZ1、Z3、Z5、Z7セル、、、、のような同列の一行飛ばしのセルに、①の文字を②の回数分、順番に表示させるにはどのように表現すればよろしいでしょうか。上記の例でいえば、まず関東をZ1、Z3、Z5、、、に50回入力し、その続きのセルに関西を15回入力していくイメージです。
No.2ベストアンサー
- 回答日時:
こんにちは!
Sub Sample2()
Dim i As Long, k As Long, cnt As Long
Dim wS As Worksheet
Set wS = Worksheets("ア")
With Worksheets("イ")
.Range("Z:Z").ClearContents
For i = 1 To wS.Cells(Rows.Count, "A").End(xlUp).Row
If wS.Cells(i, "B") > 0 Then
For k = 1 To wS.Cells(i, "B")
cnt = cnt + 1
.Cells(cnt * 2 - 1, "Z") = wS.Cells(i, "A")
Next k
End If
Next i
End With
End Sub
こんな感じですかね。m(_ _)m
No.4
- 回答日時:
>例えば、sheetアの(A1~A5及びB1~B5には他の不必要な値が入っているので飛ばして)A6~A9、B6~B9を参照する場合です。
6行目~9行目というのは固定ですかね?
No.2のコード内の
>For i = 1 To wS.Cells(Rows.Count, "A").End(xlUp).Row
の部分が「1行目~A列のデータが入っている最終行まで」というループになりますので、
ココを6~9に変更すれば大丈夫です。
>For i = 6 To 9
とするだけです。m(_ _)m
No.3
- 回答日時:
No.2です。
>Z1ではなくZ7など列の途中から・・・
単に行合わせだけの問題になります。
OFFSETを使っても良いですが、前回のコードをそのまま利用すると
>.Cells(cnt * 2 - 1, "Z") = wS.Cells(i, "A")
を
>.Cells(cnt * 2 - 1 + 6, "Z") = wS.Cells(i, "A")
に変えるだけ、すなわち
>.Cells(cnt * 2 + 5, "Z") = wS.Cells(i, "A")
にするだけです。
※ 一旦Z列のデータを消去するようにしていますが、
消去不要なら
>.Range("Z:Z").ClearContents
を消してください。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります 1 2022/11/14 21:03
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセル表作成について 5 2023/03/12 13:25
- Excel(エクセル) エクセルの自動更新のタイミングについて 1 2022/07/20 16:12
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) VBAにてエクセルをpdf化する方法 1 2023/03/10 16:20
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- 日本語 読解力の質問です(Excel含む) 12 2022/08/02 13:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
i=cells(Rows.Count, 1)とi=cel...
-
DataGridViewの各セル幅を自由...
-
【Excel】指定したセルの名前で...
-
Excelで指定した日付から過去の...
-
EXCELで変数をペーストしたい
-
Excel vbaで特定の文字以外が入...
-
Sub 要具ライフ() ActiveSheet....
-
Excel VBA、 別ブックの最終行...
-
【EXCEL VBA】Range("A:A").Fi...
-
特定の文字を条件に行挿入とそ...
-
指定文字以外のカウント
-
VBA実行後に元のセルに戻りたい
-
連続する複数のセル値がすべて0...
-
VBAでセルに値が入ったときにイ...
-
Word版VBで表の任意の箇所を...
-
screenupdatingが機能しなくて...
-
Excelのハイパーリンクにマクロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
Excelで指定した日付から過去の...
-
【Excel】指定したセルの名前で...
-
Excel vbaで特定の文字以外が入...
-
特定の文字を条件に行挿入とそ...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
Excelのプルダウンで2列分の情...
-
EXCELで変数をペーストしたい
-
連続する複数のセル値がすべて0...
-
Excel VBA、 別ブックの最終行...
-
VBAを使用した時間管理
-
エクセルVBAでコピーして順...
-
セル色なしの行一括削除
-
【EXCEL VBA】Range("A:A").Fi...
-
VBA コピーして次の値まで貼り...
-
VBA初心者です。結合セルを保持...
おすすめ情報
迅速なご回答ありがとうございます。直ぐのご回答に驚きました。
追加でご質問なのですが、シートイのZ列への表示の際、Z1ではなくZ7など列の途中から表示を開始する場合は、コードをどのように修正すればよろしいでしょうか。
ありがとうございます。前よりコードの内容が理解できてきました。
三度のご質問で恐縮ですが、参照するsheetアのA1~A4、B1セル~B4セルのそれぞれについても列の途中からの場合の指定方法についてご教示いただけませんでしょうか。
例えば、sheetアの(A1~A5及びB1~B5には他の不必要な値が入っているので飛ばして)A6~A9、B6~B9を参照する場合です。