[過去ログ]
VBAなんでも質問スレ Part2 [転載禁止]©2ch.net (1002レス)
VBAなんでも質問スレ Part2 [転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1432173164/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
978: デフォルトの名無しさん [sage] 2020/12/25(金) 06:38:58.19 ID:wEXLIZpl もしかしてフィルタで非表示になってるセルってVBAで値参照できない? http://mevius.5ch.net/test/read.cgi/tech/1432173164/978
979: デフォルトの名無しさん [sage] 2020/12/26(土) 04:11:48.30 ID:NJB8+QKa >>978 自己解決 http://mevius.5ch.net/test/read.cgi/tech/1432173164/979
980: デフォルトの名無しさん [] 2021/05/14(金) 13:33:45.79 ID:Kf/7Ycdt WordのVBAで質問させてください。 文書内の2種類の括弧「」『』の中にある改行だけを削除するマクロを作りたいと思っています。 例えば以下のような文章に対してマクロをかけたときに 「み か ん」 ば な な 「り ん ご 」 以下のような結果になるマクロです。 「みかん」 ば な な 「りんご」 つづきます http://mevius.5ch.net/test/read.cgi/tech/1432173164/980
981: デフォルトの名無しさん [] 2021/05/14(金) 13:34:48.74 ID:Kf/7Ycdt Sub 括弧内の改行を削除() Dim myRange As Range Set myRange = ActiveDocument.Range(0, 0) With myRange.Find .Text = "[「『""]*^13*[""』」]" .Forward = True .Wrap = wdFindStop .MatchWildcards = True Do While .Execute = True With myRange.Find .Text = "^13" .Replacement.Text = "" .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchFuzzy = False .MatchWildcards = True .Execute Replace:=wdReplaceAll DoEvents End With Loop End With Set myRange = Nothing End Sub http://mevius.5ch.net/test/read.cgi/tech/1432173164/981
982: デフォルトの名無しさん [] 2021/05/14(金) 13:35:33.64 ID:Kf/7Ycdt 自分なりに以上のようなマクロを組んでみたのですが、実行してみると、 最初の「みかん」の改行は削除されるのですが、そのあとの「りんご」の改行が削除されません やり方をお教えいただけると助かります。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/982
983: デフォルトの名無しさん [sage] 2021/05/14(金) 13:58:15.10 ID:dwsPOlKo 馬鹿には無理 http://mevius.5ch.net/test/read.cgi/tech/1432173164/983
984: デフォルトの名無しさん [sage] 2021/05/14(金) 20:08:25.19 ID:YZr2qR8x 正規表現使えば一発じゃん。 VBAって正規表現使えるんだっけ? http://mevius.5ch.net/test/read.cgi/tech/1432173164/984
985: デフォルトの名無しさん [sage] 2021/05/14(金) 20:22:39.22 ID:pWuJPMFY RegExpオブジェクトを使えば。 面倒だから俺はどうしてもというとき以外は使わない。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/985
986: デフォルトの名無しさん [sage] 2021/05/14(金) 20:24:37.07 ID:6X3W89ka Wordなら最初から正規表現もどきが使えるから、Excel VBAよりはちょっとだけ楽に文字列操作ができる http://mevius.5ch.net/test/read.cgi/tech/1432173164/986
987: デフォルトの名無しさん [sage] 2021/05/15(土) 04:20:48.68 ID:rI+eK0KL >>982 正規表現でマルチラインを設定して改行を空文字に置換 RegExpオブジェクトの使い方は、他の言語より面倒な書き方だったりするけど文字を操作するなら必須だと思うよ http://mevius.5ch.net/test/read.cgi/tech/1432173164/987
988: デフォルトの名無しさん [sage] 2021/06/10(木) 19:25:30.25 ID:CLREf/YK splitでいい感じに分割して判定してreplaceで改行無くしてくっ付けろ 「」は自分でつけたせ http://mevius.5ch.net/test/read.cgi/tech/1432173164/988
989: デフォルトの名無しさん [sage] 2021/08/25(水) 17:06:39.36 ID:qYcBJ8fd あんま実験してないから文句いうなよ まずはさ、アホでも考えられるような地道な形でやるべきだと思うわ そのあとに、効率性とか考えて無駄排除したりすればいいわ Sub MainProcess() Dim text As String text = Sheet1.Cells(1, 1) 'A1に括弧が含まれる文字列をいれろ Const right1 As String = "「" Const left1 As String = "」" Const right2 As String = "『" Const left2 As String = "』" text = MakeText(text, right1, left1) text = MakeText(text, right2, left2) 'B1に結果が返ってくるぞ。途中結果はメッセージボックスで順次表示されるからループ終わるまで何度もOKおせ Sheet1.Cells(1, 2) = text End Sub http://mevius.5ch.net/test/read.cgi/tech/1432173164/989
990: デフォルトの名無しさん [sage] 2021/08/25(水) 17:06:59.82 ID:qYcBJ8fd >>989の続き Function MakeText(text As String, rightChar As String, leftChar As String) As String Dim startPosition As Integer Dim endPosition As Integer Dim InstrStartPosition As Integer InstrStartPosition = 1 Do While InStr(InstrStartPosition, text, rightChar) <> 0 startPosition = InStr(InstrStartPosition, text, rightChar) If startPosition <> 0 Then endPosition = InStr(startPosition + 1, text, leftChar) End If Dim midText As String midText = Mid(text, startPosition, endPosition - startPosition + 1) Dim midTextChanged As String midTextChanged = Replace(midText, vbLf, "") text = Replace(text, midText, midTextChanged) InstrStartPosition = startPosition + Len(midTextChanged) MsgBox "無限ループになっちゃった時はctrl + Breakを押せ" & vbCrLf & vbCrLf & text Loop MakeText = text End Function http://mevius.5ch.net/test/read.cgi/tech/1432173164/990
991: デフォルトの名無しさん [sage] 2021/08/25(水) 17:07:53.23 ID:qYcBJ8fd つかさ、rightとleftが逆だったわ まぁ動くからいいわ http://mevius.5ch.net/test/read.cgi/tech/1432173164/991
992: デフォルトの名無しさん [sage] 2021/08/25(水) 17:18:37.37 ID:qYcBJ8fd あれだ、最期の方に「だけが単独であると無限ループだわな ループの条件にその辺の修正いれておいてくれ もう寝る http://mevius.5ch.net/test/read.cgi/tech/1432173164/992
993: デフォルトの名無しさん [sage] 2021/08/25(水) 17:34:31.79 ID:qYcBJ8fd おっきした >>990を↓に修正 Function MakeText(text As String, rightChar As String, leftChar As String) As String Dim startPosition As Integer Dim endPosition As Integer Dim InstrStartPosition As Integer InstrStartPosition = 1 Do While InStr(InstrStartPosition, text, rightChar) <> 0 startPosition = InStr(InstrStartPosition, text, rightChar) If startPosition <> 0 Then endPosition = InStr(startPosition + 1, text, leftChar) End If Dim midText As String midText = Mid(text, startPosition, endPosition - startPosition + 1) Dim midTextChanged As String midTextChanged = Replace(midText, vbLf, "") text = Replace(text, midText, midTextChanged) InstrStartPosition = startPosition + Len(midTextChanged) MsgBox "無限ループになっちゃった時はctrl + Breakを押せ" & vbCrLf & vbCrLf & text Dim textForCheck As String If textForCheck = text Then MakeText = text Exit Function End If textForCheck = text Loop MakeText = text End Function http://mevius.5ch.net/test/read.cgi/tech/1432173164/993
994: デフォルトの名無しさん [sage] 2021/08/28(土) 10:10:42.16 ID:rHnN1cM5 動けば良いんだよ http://mevius.5ch.net/test/read.cgi/tech/1432173164/994
995: デフォルトの名無しさん [sage] 2021/08/28(土) 12:36:26.70 ID:3DqqBWFs 腕が重くて http://mevius.5ch.net/test/read.cgi/tech/1432173164/995
996: デフォルトの名無しさん [sage] 2021/09/01(水) 00:13:05.25 ID:7BIbcRgh h http://mevius.5ch.net/test/read.cgi/tech/1432173164/996
997: デフォルトの名無しさん [sage] 2021/09/01(水) 00:13:11.43 ID:7BIbcRgh t http://mevius.5ch.net/test/read.cgi/tech/1432173164/997
998: デフォルトの名無しさん [sage] 2021/09/01(水) 00:13:18.16 ID:7BIbcRgh l http://mevius.5ch.net/test/read.cgi/tech/1432173164/998
999: デフォルトの名無しさん [sage] 2021/09/01(水) 00:17:13.66 ID:7BIbcRgh n http://mevius.5ch.net/test/read.cgi/tech/1432173164/999
1000: 小倉優子 ◆YUKOH0W58Q [sage] 2021/09/01(水) 00:17:27.14 ID:7BIbcRgh ∧,,,∧ ( ・∀・) 1000ならジュースでも飲むか ( ) し─J http://mevius.5ch.net/test/read.cgi/tech/1432173164/1000
1001: 1001 [] ID:Thread このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 2294日 13時間 24分 43秒 http://mevius.5ch.net/test/read.cgi/tech/1432173164/1001
1002: 1002 [] ID:Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。 運営にご協力お願いいたします。 ─────────────────── 《プレミアム会員の主な特典》 ★ 5ちゃんねる専用ブラウザからの広告除去 ★ 5ちゃんねるの過去ログを取得 ★ 書き込み規制の緩和 ─────────────────── 会員登録には個人情報は一切必要ありません。 月300円から匿名でご購入いただけます。 ▼ プレミアム会員登録はこちら ▼ https://premium.5ch.net/ ▼ 浪人ログインはこちら ▼ https://login.5ch.net/login.php http://mevius.5ch.net/test/read.cgi/tech/1432173164/1002
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.029s