| 
    
     |  | ▼みゆき さん: >はじめまして、VBAは初めてです。
 >業務で使用している顧客受付のエクセルファイルをVBAで操作したいと思い始めたところです。
 >別フォームに入力すべき事項をテキストボックスやコンボボックスなどでまとめその情報をエクセルへ流しこむプログラムです。
 >題名の通り、指定列の「セルが空白」の条件を満たすセルを検索してそこから入力を開始したいのですが、上手くいきません。
 >「B列」の4行目から検索を開始させたいのです。
 >ネットで検索してDo whileやfor文も使ってみましたが無限ループになってしまい抜けられなくなってしまいました。
 >使い方を理解していないのかも・・・。
 >
 >ご教授お願い致します。
 
 
 Aと1の交差した左上をぐいっと左クリックしたままにすると
 その上に
 65536Rx256C と表示されると思います。
 それが、セルの最大数です。 Rは行、Cは列です。
 つまり 65536行、256列しかあつかえないということです。
 ですから、ループのカウントもそれを越えないようにしないといけません。
 
 他の方がループを使わない簡単なやり方を説明されていますので
 無限ループの解消の参考までに
 
 Private Sub CommandButton1_Click()
 Dim ARow, ACol As Long
 Dim StartCell As String
 Dim i, j As Long
 
 ' 下に検索
 StartCell = "B4" ' 検索開始位置
 ARow = Range(StartCell).Row  ' B4の 行の数字を代入
 ACol = Range(StartCell).Column ' B4の 列の数字を代入
 
 For i = ARow To 65536 ' 行を操作
 If IsEmpty(Cells(i, ACol)) Then ' もし空白なら
 ' ここに処理
 ' i 行目、ACol 列目
 MsgBox (Cells(i, ACol).Address(0, 0) + " 空白発見")
 Exit For  ' for文をでる
 End If
 Next
 
 ' 右に検索
 For j = ACol To 256 ' 列を操作
 If IsEmpty(Cells(ARow, j)) Then
 ' ここに処理
 ' ARow 行目 、j 列目
 MsgBox (Cells(ARow, j).Address(0, 0) + " 空白発見")
 Exit For
 End If
 Next
 End Sub
 
 |  |