
No.5
- 回答日時:
こんにちは。
KenKen_SP です。試しにコードを書いていたら、Wendy02 さんに先を越されました(^^)
似たようなコードですが、折角書いたので(←自分勝手)アップさせて下さい。
Sub URL抽出()
Dim RegEx As Object
Dim strPattern As String
Dim objMatches As Object
Dim objItem As Object
Dim rngCell As Range
Dim Source As String
Dim lngCounter As Long
Dim Buf() As String
'URLパターン
strPattern = "((http|https|ftp)://[-_.!~*'()a-zA-Z0-9;/?:@&=+$,]+)"
'マッチング
lngCounter = 0
Set RegEx = CreateObject("VBScript.RegExp")
With RegEx
.Pattern = strPattern
.Global = True
For Each rngCell In Selection
If Not IsEmpty(rngCell) Then
Source = StrConv(Trim$(rngCell.Text), vbNarrow Or vbLowerCase)
Set objMatches = .Execute(Source)
For Each objItem In objMatches
ReDim Preserve Buf(lngCounter)
Buf(lngCounter) = objItem
lngCounter = lngCounter + 1
Next objItem
Set objMatches = Nothing
End If
Next rngCell
End With
Set RegEx = Nothing
'結果出力
With ActiveWorkbook.Sheets.Add
.Range("A1").Resize(UBound(Buf) + 1).Value = _
Application.Transpose(Buf)
End With
End Sub
No.4
- 回答日時:
こんにちは。
>むちゃくちゃな羅列のテキストがあるのですが、その中にいくつかhttp://~で始まる文があります。
マクロを希望されているので、設定等は細かく書きません。範囲をマクロで選択してからお使いください。むちゃくちゃな羅列のテキストというのは、どういうものか分かりませんから、URL の末尾の文字の判定をどうするか、少し、不安な部分があります。
現在、別シートというのを、「Sheet2」に設定してありますので、任意で変更してください。
'<標準モジュール>
Sub PickupURL()
Dim objRE As Object
Dim Match As Object, Matches As Object
Dim Rng As Range
Dim c As Range, i As Long, u As Long
Dim myArray() As Variant
Set Rng = Selection
Set objRE = CreateObject("VBScript.RegExp")
With objRE
.Pattern = "(http://\S+)"
.Global = True
For Each c In Rng
Set Matches = .Execute(c.Text)
For Each Match In Matches
ReDim Preserve myArray(i)
myArray(i) = .Replace(Match, "$1")
i = i + 1
Next
Next
End With
If i = 0 Then Exit Sub
u = UBound(myArray) - LBound(myArray) + 1
'別シートのA1から下に出力
Worksheets("Sheet2").Range("A1").Resize(u) = myArray
Set objRE = Nothing
End Sub
この回答への補足
ご回答ありがとうございました。
さっそく試してみましたが、最初に見つけたURLは抽出してくれたのですが、
その同じURLが複数リスト化されました。
どうも思っていた動きと違うみたいです。
修正しようにも自分には技量不足みたいです。。。
プログラムが組めてうらやましいです。
とても参考になりました。
本当にありがとうございました。
No.3
- 回答日時:
質問文でよくわからない点もあるんですが、探してきました。
検索したい文字列を入力すると、Sheet1のA列を検索して
該当するデータをSheet2に抽出するマクロ
http://park11.wakwak.com/~miko/Excel_Note/16-01_ …
ただこれでURL部分のみを抜き出したい場合、URLのみで構成される単独行でないとできません。
なんか質問文を見ると“あるテキストからURLのみを抜き出したい。”というのが目的で
EXCELでやるという必要性がうかがえないのですが。
もしEXCELでなくてもよいなら秀丸マクロを使う方法もあります。
http://hide.maruo.co.jp/lib/macro/listup101.html
こちらはやり方にも寄りますが、URL部分のみを抜き出せます。
No.1
- 回答日時:
こんにちは~
そのテキストは特定の列にあるんでしょうか?
そうだとして、作業列を使ってもよいなら以下の方法で。
テキストがSheet1のA列1行目からあり、作業列をB列とすれば、
B1に、
=IF(LEFT(A1,7)="http://",ROW(),"")
を入れ、下にフィルコピー
別シートのどのセルでもいいので、
=IF(COUNT(Sheet1!B:B)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(Sheet1!B:B,ROW(A1))))
を入れ、必要分、下にフィルコピー
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel>マクロ>特定のセルで同じ情報が登録されている行を1行にまとめたい(文字連結) 6 2023/01/05 16:30
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
- Excel(エクセル) Excel 文字列を結合するときに重複をなくしたい 関数・VBA 2 2022/12/12 10:40
- Excel(エクセル) Excelの担当者割当の表から担当者を抽出する方法 4 2022/07/16 14:05
- Excel(エクセル) Excelの関数でこんな処理ができますか 1 2023/02/08 13:46
- Visual Basic(VBA) SQLで抽出 4 2022/12/04 13:55
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) マクロ削除再抽出する方法を教えて下さい。 6 2022/11/26 11:03
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの保護で、列の表示や...
-
ExcelのVlookup関数の制限について
-
【VBA】シート名と見出しが一致...
-
エクセル 日報売上を月報に展開...
-
Excel セルに入っている日付を...
-
VLOOKアップ関数の結果の...
-
スプレッドシートでindexとIMPO...
-
Excel 複数シートから条件にあ...
-
シートをまたぐ条件付き書式に...
-
Excel 2段組み
-
Excelのセルの色を変えた行(す...
-
【VBA】ピボットテーブルを既存...
-
Excelでの並べ替えを全シートま...
-
【条件付き書式】countifsで複...
-
【エクセル】1列のデータを交...
-
エクセルで横並びの複数データ...
-
VBAで繰り返しコピーしながら下...
-
エクセル マクロ 標準モジュー...
-
【VBA】複数のシートの指定した...
-
Windows10×Microsoft365でのエ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelのVlookup関数の制限について
-
エクセルの保護で、列の表示や...
-
文字の色も参照 VLOOKUP
-
Excel の複数シートの列幅を同...
-
Excelでの並べ替えを全シートま...
-
VBAで繰り返しコピーしながら下...
-
【条件付き書式】countifsで複...
-
Excelのセルの色を変えた行(す...
-
エクセルで、チェックボックス...
-
エクセルの列の限界は255列以上...
-
VLOOKアップ関数の結果の...
-
Excelに自動で行の増減をしたい...
-
エクセル マクロ 標準モジュー...
-
【VBA】複数のシートの指定した...
-
Excel VBA ピボットテーブルに...
-
エクセルで横並びの複数データ...
-
【VBA】シート名と見出しが一致...
-
Excel 2段組み
-
SUMPRODUCTにて別シートのデー...
-
スプレッドシートでindexとIMPO...
おすすめ情報