!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付ける
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part66
https://mevius.5ch.net/test/read.cgi/tech/1589085825/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part67
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 33da-3+hg)
2020/06/26(金) 02:01:29.56ID:uDfmpksE02デフォルトの名無しさん (ワッチョイ 3f01-bXJj)
2020/06/26(金) 07:58:40.55ID:PIx3bjtD0 >>1
おちゅ
おちゅ
3デフォルトの名無しさん (ワッチョイ 8fba-x+MM)
2020/06/26(金) 19:07:55.93ID:ZjxMZdyJ0 VBAでgrep検索を使いたいんだが教えてくれ。
https://website-note.net/vba/excel-grep-macro/
上のサイトのコードをコピペして動くまではいいんだけど、もう一つ条件を加えて
'キーワードを含むセルの情報をアウトプット時にキーワードの右のセルをアウトプットさせるようにしたい。
そこでOptionButtonを2つ作ってOpB1がtrueのときに普通に動いて、falseのときに
キーワードの右をアウトプットさせるコードを書いたんだがうまくいかない。
ifもselectcaseも試したんだけどだれか教えてくれ、VBA初心者で頭かかえてる。
つくったもの↓
'キーワードを含むセルの内容
If OptionButton1.value =then
省略 .Cells(lcnt, 7).Value = rFoundCell.Value
else
省略 .Cells(lcnt, 7).Value = rFoundCell.offset(0,1).Value
https://website-note.net/vba/excel-grep-macro/
上のサイトのコードをコピペして動くまではいいんだけど、もう一つ条件を加えて
'キーワードを含むセルの情報をアウトプット時にキーワードの右のセルをアウトプットさせるようにしたい。
そこでOptionButtonを2つ作ってOpB1がtrueのときに普通に動いて、falseのときに
キーワードの右をアウトプットさせるコードを書いたんだがうまくいかない。
ifもselectcaseも試したんだけどだれか教えてくれ、VBA初心者で頭かかえてる。
つくったもの↓
'キーワードを含むセルの内容
If OptionButton1.value =then
省略 .Cells(lcnt, 7).Value = rFoundCell.Value
else
省略 .Cells(lcnt, 7).Value = rFoundCell.offset(0,1).Value
4デフォルトの名無しさん (ワッチョイ 8f01-Zl/h)
2020/06/26(金) 20:08:11.16ID:SBXE4EMs0 ・OpB1って何ですか?丁寧に書いて
・せめてoutputCellInfoのソースは全部書いて
・=thenがガチなのかタイポなのか分からんから直打ちじゃなくてコピペして
・せめてoutputCellInfoのソースは全部書いて
・=thenがガチなのかタイポなのか分からんから直打ちじゃなくてコピペして
5デフォルトの名無しさん (ワッチョイ 3f01-bXJj)
2020/06/26(金) 20:20:30.07ID:PIx3bjtD0 日本語訳:
上のサイトのコードだと
キーワードを含むセルの値が、G列に出力されます。
これを以下のように変更したいです
キーワードを含むセルを検索したあと、このセルの値だけでなく、このセルのすぐ右側のセルの値をH列に出力したいです。
できたら、オプションボタンを新設して、右側セルの値を出力するかしないかを選択できるようにしたいです
面倒だから後はお前らにまかせた
上のサイトのコードだと
キーワードを含むセルの値が、G列に出力されます。
これを以下のように変更したいです
キーワードを含むセルを検索したあと、このセルの値だけでなく、このセルのすぐ右側のセルの値をH列に出力したいです。
できたら、オプションボタンを新設して、右側セルの値を出力するかしないかを選択できるようにしたいです
面倒だから後はお前らにまかせた
6デフォルトの名無しさん (ワッチョイ 8fba-x+MM)
2020/06/26(金) 20:26:55.66ID:ZjxMZdyJ0 >>4すみません、コードはります
Private Sub outputCellInfo(ByVal sTmpPath As String, ByVal sFilePath As String, ByVal sTmpSheetName As String, _
ByVal rFoundCell As Range)
Dim OptionButton1 As Boolean
If OptionButton1 = True Then
With ThisWorkbook.Sheets(STR_GREP_SHEET_NAME)
.Cells(lcnt, 2).Value = lcnt - 7
.Cells(lcnt, 3).Value = sFilePath
.Cells(lcnt, 4).Value = sTmpPath
.Cells(lcnt, 5).Value = sTmpSheetName
.Cells(lcnt, 6).Value = convertRange(rFoundCell.Column) & rFoundCell.Row
.Cells(lcnt, 7).Value = rFoundCell.Value
End With
lcnt = lcnt + 1
Else:
With ThisWorkbook.Sheets(STR_GREP_SHEET_NAME)
.Cells(lcnt, 2).Value = lcnt - 7
.Cells(lcnt, 3).Value = sFilePath
.Cells(lcnt, 4).Value = sTmpPath
.Cells(lcnt, 5).Value = sTmpSheetName
.Cells(lcnt, 6).Value = convertRange(rFoundCell.Column) & rFoundCell.Row
.Cells(lcnt, 7).Value = rFoundCell.Offset(0, 1).Value
End With
lcnt = lcnt + 1
End If
End Sub
Private Sub outputCellInfo(ByVal sTmpPath As String, ByVal sFilePath As String, ByVal sTmpSheetName As String, _
ByVal rFoundCell As Range)
Dim OptionButton1 As Boolean
If OptionButton1 = True Then
With ThisWorkbook.Sheets(STR_GREP_SHEET_NAME)
.Cells(lcnt, 2).Value = lcnt - 7
.Cells(lcnt, 3).Value = sFilePath
.Cells(lcnt, 4).Value = sTmpPath
.Cells(lcnt, 5).Value = sTmpSheetName
.Cells(lcnt, 6).Value = convertRange(rFoundCell.Column) & rFoundCell.Row
.Cells(lcnt, 7).Value = rFoundCell.Value
End With
lcnt = lcnt + 1
Else:
With ThisWorkbook.Sheets(STR_GREP_SHEET_NAME)
.Cells(lcnt, 2).Value = lcnt - 7
.Cells(lcnt, 3).Value = sFilePath
.Cells(lcnt, 4).Value = sTmpPath
.Cells(lcnt, 5).Value = sTmpSheetName
.Cells(lcnt, 6).Value = convertRange(rFoundCell.Column) & rFoundCell.Row
.Cells(lcnt, 7).Value = rFoundCell.Offset(0, 1).Value
End With
lcnt = lcnt + 1
End If
End Sub
7デフォルトの名無しさん (アウアウウー Sad3-fXbV)
2020/06/26(金) 20:40:26.18ID:nEhmFRZ4a なんでElseに:ついてんだ?
8デフォルトの名無しさん (アウアウウー Sad3-d3ZO)
2020/06/26(金) 20:40:29.37ID:1oZqQJala 張り付けたオプションボタンと定義したのは別物じゃね
9デフォルトの名無しさん (ワッチョイ 3f01-bXJj)
2020/06/26(金) 20:50:43.26ID:PIx3bjtD0 つか、そもそもそのサイトのコードって正確に動く?
キーワードを含むセルを網羅しないんだけど
nothingになるRangeを比較対象に置いてるあたりがあれだ
キーワードを含むセルを網羅しないんだけど
nothingになるRangeを比較対象に置いてるあたりがあれだ
10デフォルトの名無しさん (ワッチョイ 8fba-x+MM)
2020/06/26(金) 21:05:20.01ID:ZjxMZdyJ011デフォルトの名無しさん (ワッチョイ 8f01-Zl/h)
2020/06/26(金) 23:24:58.46ID:SBXE4EMs0 >>6
ぱっと見で分かるのは、OptionButton1が再定義されてて目的の値を参照してない事
Dim OptionButton1 を消して、>>3で自分で書いたようにOptionButton1.valueを評価してみて
あと、オブジェクト名にButtonって入ってるからコントロールだと思うけど、
もしコマンドボタンならこの用途でValueプロパティは使えないから、チェックボックスにしよう
解説サイトのソースも修正
grepExcelSheetメソッド
Loop While rTmpFoundCell <> rFoundFirstCell
↓
Loop While rTmpFoundCell.Address <> rFoundFirstCell.Address
openExcelFilesメソッド
sTmpPath = Dir(sFilePath & "*.xls")
↓
sTmpPath = Dir(sFilePath & "*.xls?")
それに伴って Do While sTmpPath <> "" 内の文を
If Not sTmpPath Like "*." & ThisWorkbook.Name Then 〜 End If
で括る
細かいこと言うと、Blean型を判定するときにリテラルと比較(= True や = False)はカッコ悪いから止めた方がいい
解説サイトではやってるけどね
ぱっと見で分かるのは、OptionButton1が再定義されてて目的の値を参照してない事
Dim OptionButton1 を消して、>>3で自分で書いたようにOptionButton1.valueを評価してみて
あと、オブジェクト名にButtonって入ってるからコントロールだと思うけど、
もしコマンドボタンならこの用途でValueプロパティは使えないから、チェックボックスにしよう
解説サイトのソースも修正
grepExcelSheetメソッド
Loop While rTmpFoundCell <> rFoundFirstCell
↓
Loop While rTmpFoundCell.Address <> rFoundFirstCell.Address
openExcelFilesメソッド
sTmpPath = Dir(sFilePath & "*.xls")
↓
sTmpPath = Dir(sFilePath & "*.xls?")
それに伴って Do While sTmpPath <> "" 内の文を
If Not sTmpPath Like "*." & ThisWorkbook.Name Then 〜 End If
で括る
細かいこと言うと、Blean型を判定するときにリテラルと比較(= True や = False)はカッコ悪いから止めた方がいい
解説サイトではやってるけどね
12デフォルトの名無しさん (ワッチョイ 8fba-U8IO)
2020/06/26(金) 23:25:32.05ID:ZjxMZdyJ0 >>3です
無理やりですが自己解決しました
標準モジュール2にアウトプットのコードをさわったものをコピペして
コマンドボタンクリックしたときの動作をIfでCallするようにしたら出来ました
でもやっぱりこのコード重いですね。どうにか軽くする方法無いものですかね。
無理やりですが自己解決しました
標準モジュール2にアウトプットのコードをさわったものをコピペして
コマンドボタンクリックしたときの動作をIfでCallするようにしたら出来ました
でもやっぱりこのコード重いですね。どうにか軽くする方法無いものですかね。
13デフォルトの名無しさん (ワッチョイ 8fba-U8IO)
2020/06/26(金) 23:28:15.39ID:ZjxMZdyJ0 >>11修正ありがとうございます、提案されたやり方も試してみます!
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】流行語年間大賞に高市早苗首相「働いて働いて働いて働いて働いてまいります/女性首相」 [Ailuropoda melanoleuca★]
- モーニングショーで女性弁護士、「世界中の国を見渡しても日本ほど中国ともめている国は今はどこもない」「挑発しちゃっている状況」 [muffin★]
- 高市首相「いいから黙って全部オレに投資しろ」“進撃の巨人”のセリフで対日投資呼びかけ [おっさん友の会★]
- 【流行語大賞】2025 T&D保険グループ新語・流行語大賞、高市早苗首相の「働いて働いて働いて働いて働いて」が年間大賞! [煮卵★]
- 【速報】長期金利、一時1.850%に上昇 ★2 [蚤の市★]
- 日テレ、国分太一の「答え合わせ」を却下 「答え合わせをするまでもない」「心当たりがあると述べられている」 [muffin★]
- 細田守さん、脚本家をめちゃくちゃバカにしていたインタビューが発掘されてガチ炎上 [329329848]
- 青山繁晴環境副大臣「南鳥島のレアアースは、中国産の約20倍の純度がある」 [834922174]
- 高市早苗ちゃん。 流行語大賞をゲット [485983549]
- 人○してぇ
- 横須賀市、老朽化した上水道の入れ替え工事中に配水管の止水弁が取れて破裂。水があふれ出す [663766621]
- 【悲報】立憲「トンデモ論者に乗っ取られた高市政権」高橋洋一「プリンストン大時代のオレの先生はノーベル経済学賞受賞なのでよろしく [733893279]
