• ベストアンサー

EXCEL マクロ

EXCEL マクロ B1セルからF1 B2セルからF2 B3セルからF3 までとに文字"T"のデータであるセルがあります。 (1)各行で Tという文字の入っている、最左端のセルから最右端のセルまですべて 同じ文字Tで埋めるマクロをどのようにかけばいいですか。

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

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

補足欄を拝見する限り、Tは2つだけでしょうか? Option Explicit Sub sample() Dim i As Integer Dim j As Integer Dim k As Boolean For i = 1 To 3 k = False For j = 2 To 6 If k Then If Cells(i, j).Value = "T" Then Exit For Else Cells(i, j).Value = "T" End If Else If Cells(i, j).Value = "T" Then k = True End If End If Next j Next i End Sub

taktta
質問者

お礼

Sub sample() Dim i As Integer Dim j As Integer Dim k As Boolean For i = 1 To 3 k = False For j = 2 To 6 If k Then If Cells(i, j).Value = "T" Then Exit For Else Cells(i, j).Value = "T" End If Else If Cells(i, j).Value = "T" Then k = True End If End If Next j Next i End Sub 若干修正させていただきましたが、素晴らしい。 仕様通り動きます。 K=FALSEというのは、どういうことをやっているのでしょうか。 とりあえず厚くお礼申しあげます。

その他の回答 (2)

回答No.3

>K=FALSEというのは、どういうことをやっているのでしょうか。 k=True,k=Falseでも、k=0,k=1でもいいのですが、 セルの値がTだったときにそれが一つ目か二つ目かを判断するために用いています。 k=Falseのときに見つけたTは一つ目と判断し、k=Trueとします。以後のセルはTで埋めます。 k=Trueのときに見つけたTは二つ目と判断し、ループを抜けます。 iのループの最初ではまた一つ目から探し始めるので、k=Falseとしてリセットする必要があります。

taktta
質問者

お礼

よくわかりました。ご親切感謝いたします。

回答No.1

意味が分かりにくいです。 "T"文字が入っている、最左端のセルから最右端のセルまですべて 同じ文字Tで埋める って、元々"T"で埋まっているセルをまた"T"で埋めるんですか? マクロじゃなくて表計算や手動でやっても、作業時間的に変わらないと思うのですが?

taktta
質問者

お礼

CAFEAULAITさんへ 若干修正というのは、コピーしたとき動かなかったので私がコピーミスしていたためらしい。 修正なく動きました。失礼しました。

taktta
質問者

補足

          T        T    T                   T         TT となっていたら         TTTTTTTTTTTT    TTTTTTTTTTTTTTTTTTTTT         TT とすることですが。

関連するQ&A