Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9711 / 13646 ツリー ←次へ | 前へ→

【25865】文字を検索して行を取得 たいくん 05/6/17(金) 8:01 質問[未読]
【25866】Re:文字を検索して行を取得 ichinose 05/6/17(金) 8:27 発言[未読]
【25880】Re:文字を検索して行を取得 たいくん 05/6/17(金) 10:31 お礼[未読]
【25879】Re:文字を検索して行を取得 Kein 05/6/17(金) 10:30 回答[未読]
【25883】Re:文字を検索して行を取得 たいくん 05/6/17(金) 10:45 お礼[未読]

【25865】文字を検索して行を取得
質問  たいくん  - 05/6/17(金) 8:01 -

引用なし
パスワード
    ABC  D    E     F     G 
  
4   PR*** ****** ****** ******
5   MI*** ****** ****** ******
6   MH*** ****** ****** ******
7   MG*** ****** ****** ******
8   IG*** ****** ****** ******
9   IA*** ****** ****** ******

のようなデーターがあります。
このデーターのD列を4行から下に検索していき(最大37行まで)
1文字目にIが含まれている最初の行番号を取得してその行番号を
Dim i As Integer
i = ここに取得した行番号を入れる
の様な感じで変数として利用したいのですが可能でしょうか?
取得した行番号はいったん別のセルに書き込んでおいて、それを
変数として利用する様にしてもいいです。
どなたかご教授お願いします。

【25866】Re:文字を検索して行を取得
発言  ichinose  - 05/6/17(金) 8:27 -

引用なし
パスワード
   ▼たいくん さん:
おはようございます。

> ABC  D    E     F     G 
>  
>4   PR*** ****** ****** ******
>5   MI*** ****** ****** ******
>6   MH*** ****** ****** ******
>7   MG*** ****** ****** ******
>8   IG*** ****** ****** ******
>9   IA*** ****** ****** ******
>
>のようなデーターがあります。
>このデーターのD列を4行から下に検索していき(最大37行まで)
>1文字目にIが含まれている最初の行番号を取得してその行番号を
>Dim i As Integer
>i = ここに取得した行番号を入れる
>の様な感じで変数として利用したいのですが可能でしょうか?
>取得した行番号はいったん別のセルに書き込んでおいて、それを
>変数として利用する様にしてもいいです。
>どなたかご教授お願いします。
セルD4から多くてもD37までなら数式で可能ですね!!
どこかのセルに

「=MIN(IF(MID(D4:D37,1,1)="i",ROW(D4:D37)))」

という数式を入力して、セルから抜ける時は

通常のEnterキーではなく、

Ctrl+Shift+Enterキーで抜けて下さい。

これでiで始まるセルの最初の行番号が取得できます。

【25879】Re:文字を検索して行を取得
回答  Kein  - 05/6/17(金) 10:30 -

引用なし
パスワード
   数式で判定するなら、例えばAD列を作業列として

Dim MyRow As Long

On Error Resume Next
With Range("D4:D37").Offset(, 26)
  .Formula = "=IF(LEFT($D4,1)=""I"",1,"""")"
  MyRow = .SpecialCells(3, 1).Cells(1).Row
  .ClearContents
End With
MsgBox MyRow & " 行にありました", 64

てな感じで出来ると思います。

【25880】Re:文字を検索して行を取得
お礼  たいくん  - 05/6/17(金) 10:31 -

引用なし
パスワード
   ▼ichinose さん:

おはようございます。素早い回答有り難う御座います。

>「=MIN(IF(MID(D4:D37,1,1)="i",ROW(D4:D37)))」

上の数式で無事行番号が取得できました。

ichinose さん有り難う御座いました。

【25883】Re:文字を検索して行を取得
お礼  たいくん  - 05/6/17(金) 10:45 -

引用なし
パスワード
   ▼Kein さん:
おはよう御座います。

>Dim MyRow As Long
>
>On Error Resume Next
>With Range("D4:D37").Offset(, 26)
>  .Formula = "=IF(LEFT($D4,1)=""I"",1,"""")"
>  MyRow = .SpecialCells(3, 1).Cells(1).Row
>  .ClearContents
>End With
>MsgBox MyRow & " 行にありました", 64
>
無事動作し行番号を取得する事が出来ました。

Kein さん有り難う御座いました。

9711 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free