Excel VBA質問箱 IV

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

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


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

【46297】文字列の数字だけ読み込みたい himiko 07/1/29(月) 20:39 質問[未読]
【46301】Re:文字列の数字だけ読み込みたい かみちゃん 07/1/29(月) 21:09 発言[未読]
【46303】Re:文字列の数字だけ読み込みたい himiko 07/1/29(月) 21:50 発言[未読]
【46304】Re:文字列の数字だけ読み込みたい himiko 07/1/29(月) 21:58 発言[未読]
【46305】Re:文字列の数字だけ読み込みたい かみちゃん 07/1/29(月) 22:15 発言[未読]
【46306】Re:文字列の数字だけ読み込みたい himiko 07/1/29(月) 22:20 お礼[未読]

【46297】文字列の数字だけ読み込みたい
質問  himiko  - 07/1/29(月) 20:39 -

引用なし
パスワード
   説明がうまく出来ないのですが、
たとえば、
一つのセルに「T−A15−0016」と入力されていて
その「0016」だけを読んで、0016のデータを反映させたいのですが・・・
どうしたらいいですか?

「例」
セル1(シートA) T−A15−0016(入力) 

セル1(シートB) 0016 晴れ(←データ)

セル4(シートA) 晴れ      ←これだけ呼び出したい

説明へたですみません(^▽^;)

【46301】Re:文字列の数字だけ読み込みたい
発言  かみちゃん  - 07/1/29(月) 21:09 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>一つのセルに「T−A15−0016」と入力されていて
>その「0016」だけを読んで、0016のデータを反映させたい

ちょっと仕様がわかりづらいのですが、たとえば、以下のような感じですか?

Sub Sample()
 Dim strData1 As String
 Dim strData2 As String

 strData1 = "T−A15−0016"
 strData2 = "0016 晴れ"
 If InStrRev(strData1, "−") > 0 Then
  MsgBox Trim(Replace(strData2, Mid(strData1, InStrRev(strData1, "−") + 1), ""))
 Else
  MsgBox """−""がありません" & vbCrLf & strData1
 End If
End Sub

これでいいようであれば、strData1、strData2を実際のセルの値を設定するようにして、
MsgBox のところは、出力先のセルにすればいいことになります。

【46303】Re:文字列の数字だけ読み込みたい
発言  himiko  - 07/1/29(月) 21:50 -

引用なし
パスワード
   ▼かみちゃん さん:
すみません、説明がうまく出来ないので・・・

シートA    A     B    C   ☆
     1 T-P15-0016  ●●
     2
     3
     4

--------------------------------------------------
シートB    A     B    C
     1  0015    晴れ
     2  0016    曇り
     3  0017    ・
     4  0018    ・

と、二つのシートがあって「☆」を押すと、シートBのデータを読み込むんですが、シートAの「T-P15-」は読まず、下4桁の数字を見て抽出して、シートBのセルB2の「晴れ」をシートAのセルB1に反映させたいんです汗

・・・わかりにくいですよね、すみません。
なんせ初心者なんでさっぱり・・・
もしご理解いただけたら返信していただけると嬉しいです。

【46304】Re:文字列の数字だけ読み込みたい
発言  himiko  - 07/1/29(月) 21:58 -

引用なし
パスワード
   訂正です。

>と、二つのシートがあって「☆」を押すと、シートBのデータを読み込むんですが、シートAの「T-P15-」は読まず、下4桁の数字を見て抽出して、シートBのセルB2の「曇り」をシートAのセルB1に反映させたいんです汗

【46305】Re:文字列の数字だけ読み込みたい
発言  かみちゃん  - 07/1/29(月) 22:15 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>二つのシートがあって「☆」を押すと、シートBのデータを読み込むんです
>が、シートAの「T-P15-」は読まず、下4桁の数字を見て抽出して、シートBのセ
>ルB2の「曇り」をシートAのセルB1に反映させたい

それでは、以下のような感じでできると思います。
"-"か"−"はどちらが正しいのかわかりませんので、ちょっと注意してください。

Sub Sample2()
 Dim LastCell As Range
 Dim c As Range
 Dim c2 As Range
 Dim strData1 As String
 Dim intPos As Integer

 Set LastCell = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp)
 For Each c In Sheets("Sheet1").Range("A1", LastCell)
  strData1 = c.Value
  intPos = InStrRev(strData1, "-")
  If intPos > 0 Then
   strData1 = Mid(strData1, intPos + 1)
   With Sheets("Sheet2").Columns("A")
    Set c2 = .Find(strData1, , xlValues, xlWhole)
    If Not c2 Is Nothing Then
     c.Offset(, 1).Value = c2.Offset(, 1).Value
    Else
     c.Offset(, 1).Value = "検索値なし" & strData1
    End If
   End With
  Else
   c.Offset(, 1).Value = """-""がない"
  End If
 Next
End Sub

【46306】Re:文字列の数字だけ読み込みたい
お礼  himiko  - 07/1/29(月) 22:20 -

引用なし
パスワード
   ▼かみちゃん さん:
ありがとうございました!!
やっと解決できました(^▽^;)

凄く助かりました、ありがとうございます!!

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