なずなず VBA教習所~初級:転記の準備~
おつかれさまです。なずなです。
今回は少しコードの書き方を変えてみました。
初心者の頃は返ってこういう方が覚えやすかった記憶です。
だ、だれかっ 感想あったらおしえてね!!
今回もコードだけ並べます。
解説は気力が出たらやってみま~す。
1. 九九入力
Sub 九九入力()
Dim sh As Worksheet
Set sh = ThisWorkbook.Worksheets("Sheet1")
Dim i As Long
Dim k As Long
sh.Range(sh.Cells(1, 1), sh.Cells(20, 20)).Clear
For i = 1 To 9
For k = 1 To 9
sh.Cells(i, k).Value = i * k
Next
Next
End Sub
2. シート作成
Dim 追加シート As Worksheet
If Worksheets.Count < 3 Then
Set 追加シート = Worksheets.Add
On Error Resume Next
追加シート.Name = "書き込み"
End If
3. ダイレクト
Sub ダイレクト()
Dim 読み取りシート As Worksheet
Dim 書き込みシート As Worksheet
Set 読み取りシート = Worksheets("Sheet1")
Set 書き込みシート = Worksheets("書き込み")
Dim i As Long
Dim k As Long
i = 1
Do While 読み取りシート.Cells(i, 1).Value <> ""
'kの初期化位置注意です!
k = 1
Do While 読み取りシート.Cells(i, k).Value <> ""
書き込みシート.Cells(i + 2, k + 2).Value = 読み取りシート.Cells(i, k).Value
k = k + 1
Loop
i = i + 1
Loop
End Sub
4. 配列に入れてみる
Sub 配列に入れてみる()
Dim 読み取りシート As Worksheet
Set 読み取りシート = Worksheets("Sheet1")
Dim tmp()
Dim 行数 As Long
Dim 列数 As Long
行数 = 読み取りシート.Cells(10000, 1).End(xlUp).Row
列数 = 読み取りシート.Cells(1, 300).End(xlToLeft).Column
ReDim tmp(行数, 列数)
Dim i As Long
Dim k As Long
For i = 1 To 行数
For k = 1 To 列数
tmp(i, k) = 読み取りシート.Cells(i, k)
Next
Next
Dim t
'0のところには入ってないのをかくに~ん
For Each t In tmp
Debug.Print t
Next
End Sub
5. オブジェクトを使って格納
Sub オブジェクトを使って格納()
Dim 読み取りシート As Worksheet
Set 読み取りシート = Worksheets("Sheet1")
Dim 行数 As Long
Dim 列数 As Long
Dim rng As Range
Dim tmp()
Set rng = Range("A1").CurrentRegion
'確認してみましょ~
Debug.Print rng.Address
tmp() = rng
Dim t
For Each t In tmp
Debug.Print t
Next
Dim 書き込みシート As Worksheet
Set 書き込みシート = Worksheets("書き込み")
'削除しときます
書き込みシート.Range("A1:AA1000").Clear
'1次元配列だとできないです
書き込みシート.Range("A1:AA9") = tmp()
End Sub
今回はここまで!!
さらっとこのくらいまで書けると、
転記に苦労しなくなるまであと少しです!!
この記事が気に入ったらサポートをしてみませんか?