質問: 1 'セルごとの処理 loop end with end sub 列指定をlong (1)あるいはstring ("a")で渡す方法もありますが、worksheetを別途指定する必要があるので、出来れば避けたいです。何かいい方法はないでしょうか?
回答: こんにちは。 column というのは、range オブジェクトのプロパティですね。 データ型は、long型です。 一応、コードのミスを訂正しておきます。 '// call cleanup(colmns("a")) ↓ call columntreat(columns("a")) '質問内容から、変更します。ただし、ここは、もうひとつ工夫が必要かもしれません。 ''range型で渡そうが、数値型で渡そうが、文字型で渡そうが、間違いがなければ、結果オーライだと思います。 ''しかし、状況にも依存しますが、rangeの変数(例:rng) で渡すのが、ベターだと思います。columns("a")のような、リテラルな方法ではなく、初心者の人がなにげに無茶する方法で、sheet を含めたrange型変数が、実は、そこには結構テクニックがあって、何かと簡単にさせてくれます。悪い方法は、文字型のアドレスです。再度、rangeを指定しなければならないから二度手間です。 '// sub columntreat(byref tcol as column) ’★ ↓ sub columntreat(byref tcol as range) '// for each c in range(.cells(1), .cells(rows.count).end(xlup)) c.value = 1 'セルごとの処理 loop ↓ for each c in range(.cells(1), .cells(rows.count).end(xlup)) c.value = 1 'セルごとの処理 next c 'loop ではなく、next '//