Excel VBA質問箱 IV

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

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


13473 / 13644 ツリー ←次へ | 前へ→

【5154】数値の検索 ラッキー 03/4/23(水) 18:21 質問
【5160】Re:数値の検索 りん 03/4/23(水) 22:16 発言
【5175】Re:数値の検索 ラッキー 03/4/24(木) 10:56 質問
【5185】Re:数値の検索 Jaka 03/4/24(木) 15:45 回答
【5190】Re:数値の検索 ラッキー 03/4/24(木) 16:26 質問
【5207】Re:数値の検索 Jaka 03/4/25(金) 14:51 回答
【5231】Re:数値の検索 ラッキー 03/4/29(火) 15:54 質問
【5239】Re:数値の検索 Jaka 03/4/30(水) 12:21 回答
【5250】Re:数値の検索 ラッキー 03/4/30(水) 14:41 お礼

【5154】数値の検索
質問  ラッキー  - 03/4/23(水) 18:21 -

引用なし
パスワード
   あるセルにいくつか数値や文字などが並んでいる状態で
自分が決めた数値を検索するにはどのようにマクロ
を書くんですか?

例としては
23
aa
cd
45
80
a9
などと並んでいて
"80"
を見つけたい!
こんなときです。

【5160】Re:数値の検索
発言  りん E-MAIL  - 03/4/23(水) 22:16 -

引用なし
パスワード
   ラッキー さん、こんばんわ。

>あるセルにいくつか数値や文字などが並んでいる状態で
>自分が決めた数値を検索するにはどのようにマクロ
>を書くんですか?

Findメソッドではだめですか?
Findメソッドのサンプル
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=5062;id=excel

名前付き引数のうちの、What:= を探したい文字にすれば検索できます。
詳細はヘルプで。

【5175】Re:数値の検索
質問  ラッキー  - 03/4/24(木) 10:56 -

引用なし
パスワード
   おはようございます。
このFindで例えば
12 36
A5 56
80 78
89 15
B3 98
AA 25
B5 45
とセルに数値が並んでいるとして
80のとなりの78からB5のとなりの45までの
数値を別のセルに表示させるにはどうしたらいいですか?

【5185】Re:数値の検索
回答  Jaka  - 03/4/24(木) 15:45 -

引用なし
パスワード
   ラッキーさん、りんさん、こんにちは。
横レス失礼します,

詳細がわかりませんが...。

Sub ebi()
Dim CelA As Range, CelB As Range, RagAB As Variant
Set CelA = Columns("A").Find("80", After:=Range("A" & Rows.Count), _
      LookAt:=xlWhole, MatchCase:=True)
Set CelB = Columns("A").Find("B5", After:=Range("A" & Rows.Count), _
      LookAt:=xlWhole, MatchCase:=True)
If Not CelA Is Nothing And Not CelB Is Nothing Then
  RagAB = Range(CelA, CelB).Offset(, 1).Value
  Range("D1").Resize(UBound(RagAB)).Value = RagAB
  Erase RagAB
else
  msgbox "見つかりませんでした。"
End If
Set CelA = Nothing
Set CelB = Nothing
End Sub

【5190】Re:数値の検索
質問  ラッキー  - 03/4/24(木) 16:26 -

引用なし
パスワード
   ありがとうございます。

この方法で以下のようなことは可能でしょうか?
次のような感じでセルに並んでいるとします。

12 36  右の値はランダムとします。
A5 56  例えば、最初の80〜B5の隣の値は無視で、
80 78  2回目からの80〜B5の値をセルに出す。
89 15  そこで、3回目、4回目と同じことを行い、
B3 98  2回目の値にの下のセルに3回目、4回目を
AA 25  表示させる。
B5 45 
12 36
A5 56
80 78
89 15
B3 98
AA 25
B5 45
12 36
A5 56
80 78
89 15
B3 98
AA 25
B5 45
12 36
A5 56
80 78
89 15
B3 98
AA 25
B5 45

【5207】Re:数値の検索
回答  Jaka  - 03/4/25(金) 14:51 -

引用なし
パスワード
   こんにちは。

Sub ika()
Dim CelA As Range, CelB As Range
Dim SaveAdA As String, SaveAdB As String
Dim STB() As String, CN As Long
Set CelA = Columns("A").Find("80", After:=Range("A" & Rows.Count), _
      LookAt:=xlWhole, MatchCase:=True)
Set CelB = Columns("A").Find("B5", After:=Range("A" & Rows.Count), _
      LookAt:=xlWhole, MatchCase:=True)
If Not CelA Is Nothing And Not CelB Is Nothing Then
  SaveAdA = CelA.Address
  SaveAdB = CelB.Address
  Do
   CN = CN + 1
   ReDim Preserve STB(1 To 2, 1 To CN)
   STB(1, CN) = CelA.Address
   STB(2, CN) = CelB.Address
   Set CelA = Columns("A").Find("80", After:=CelA, _
     LookAt:=xlWhole, MatchCase:=True)
   Set CelB = Columns("A").Find("B5", After:=CelB, _
     LookAt:=xlWhole, MatchCase:=True)
  Loop Until SaveAdA = CelA.Address Or SaveAdB = CelB.Address
  For i = 2 To UBound(STB, 2)
   RED = Cells(Rows.Count, "D").End(xlUp).Row + 1
   Range(STB(1, i), STB(2, i)).Offset(, 1).Copy Destination:=Range("D" & RED)
  Next
End If

【5231】Re:数値の検索
質問  ラッキー  - 03/4/29(火) 15:54 -

引用なし
パスワード
   Jakaさん、こんにちは
やってみたのですがうまくいかないです。
結果の例をつけました。
このようにある列に2回目の後に3回目を数値を並べたいです。
2回目と3回目の数値は同じですが実際はランダムです。

どうか教えて頂きたいです。

<結果>
1つの列に並べる
78 2回目の数値
15
98
25
45
78 3回目の数値
15
98
25
45

12 36 
A5 56 
80 78 ↓無視する 
89 15 
B3 98 
AA 25 
B5 45 ↑ここまで
12 36
A5 56
80 78 ↓ここから(2回目)
89 15
B3 98
AA 25
B5 45 ↑ここまで(右の数値を抜き出す)
12 36
A5 56
80 78 ↓ここから(3回目)
89 15
B3 98
AA 25
B5 45 ↑ここまで(右の数値を抜き出す)
12 36
A5 56
80 78 ↓ここから(4回目)
89 15
B3 98
AA 25
B5 45 ↑ここまで(右の数値を抜き出す)

【5239】Re:数値の検索
回答  Jaka  - 03/4/30(水) 12:21 -

引用なし
パスワード
   良くわからないんですけど...。
データは、A列B列に入っているのではないのですか?
こんな感じに。
それと前のコードは、End Subがコピペ落ちしていました。

A列 B列
12 36 
A5 56 
80 78

上記のような物だったら、新規ブックにて提示されたデータをA、B列に書き込んで試してください。
結果がD列に書き込まれます。
データの間違い等のチェックまでしていません。

【5250】Re:数値の検索
お礼  ラッキー  - 03/4/30(水) 14:41 -

引用なし
パスワード
   もう一度直してみたら
うまくできました。
どうもありがとうございます。

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