人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VBA初心者です。if文がなぜ機能しないのか分かりません。教えて下さい!

内容としては794行目から820行目の間の文字列が変わるところに改行が入れられるものを作りたいのですが、どうにもうまく出来ません。

きっと基本的なことが分かっていないからだと思うのですが、どなたかご教授下さい。
よろしくお願い致します。


Sub 改行挿入()
'
' 改行挿入 Macro
'

'
Dim i As Long
For i = 794 To 820
If Cells(i, 1) = Cells(i + 1, 1) Then
HPageBreaks.Add Before:=Cells(i, 1)
End If
Next i
End Sub

●質問者: enoyoshi
●カテゴリ:ビジネス・経営 趣味・スポーツ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● ku__ra__ge

とりあえず「文字列が変わるところ」の判定がしたいなら、
☓ If Cells(i, 1) = Cells(i + 1, 1) Then
○ If Cells(i, 1) <> Cells(i + 1, 1) Then
こうですね。


2 ● きゃづみぃ
ベストアンサー

Dim i As Long
For i = 794 To 820
If Cells(i, 1) = Cells(i + 1, 1) Then
else
HPageBreaks.Add Before:=Cells(i, 1)
exit for
End If
Next i
End Sub

文字列が変わるところにというのは 現在行と次の行がイコールじゃないときとなります。

また、改ページは 何度も入れるようなものではないのかと思います。


ま、質問からすると 一度だけでいいような感じなので 改ページを入れたら そのループから 抜け出すことを オススメします。


enoyoshiさんのコメント
皆様、回答ありがとうございます! そうですよね。ノットイコールですよね。 うっかりミスをしておりました。 〉改ページは 何度も入れるようなものではないのかと思います。 改ページを何度も入れたかったのですが、 その場合は、どこがどのように変わるのでしょうか? おんぶにだっこで申し訳ありません!

きゃづみぃさんのコメント
何度も入れる場合は exit for で 抜けなければいいのです。 つまり この行を削除すればいいでしょう。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ