開発備忘録のコーナーです。こばとが覚書を残していくための場所だから、間違って入ってきちゃった人はどこかもっと面白い記事へ行ってね。たとえばこういうコーナーがおすすめだよ。
サブルーチンの引数をループさせる
英語例文自動作成のためのマクロなんだけど、とりあえず構造を考え直したいから、日本語文章だけのコードに単純化してみたよ。 out シートに予め並んでいる「ひな型」の単語を入れ替えていくんだけど、そのループを サブルーチンの外に出してすっきりさせる ことにした。
For j = 1 To 5
test j
Next j
End Sub
Dim rd As Long, ct As Long
Dim k As Integer
Dim myrg As Range
Dim nm As String, w1 As String
Randomize
For k = 1 To 2
'リストの行数を数えます
ct = Worksheets("sample").ListObjects(k).ListRows.Count
nm = Worksheets("sample").ListObjects(k).Name
rd = FRANDBETWEEN(1, ct)
Set myrg = Worksheets("sample").ListObjects(k).DataBodyRange
w1 = myrg.Cells(rd, 1)
'セルA1に含まれている特定単語を[w1]に変えます
'結果は out シートに出力します
Worksheets("out").Cells(j, 1).Replace what:=nm, replacement:=w1
Next k
End Sub
test マクロは j 行 1 列の部分の特定単語を入れ替える。
だから j はこのマクロの引数となってるね。その j を test 実行マクロで 1 から 5 まで動かして、out シートのセル A1 から A5 まで文章を変換するという仕組みになんだ。
鬼越淑光さんは八尾清水に住んでいます
というわけで、こんな文章が出来あがった。
鬼越淑光(おにこし よしみつ)と申します。八尾清水に住んでいます。
初めまして。油屋怜治(あぶらや れいじ)です。八尾清水出身です。
東野朝霞(あずまの あさか)さんは曽我原に住んでいます。
覚幸朱(かくゆき あけみ)さんは現在八尾清水に住んでおられるそうです。
東野朝霞(あずまの あさか)さんは土出に引越したそうです。
...... で、八尾清水ってどこなの?
...... 人気の場所なのかな? こばとも行ってみようかな。