Excel VBA 質問スレ Part74

■ このスレッドは過去ログ倉庫に格納されています
2021/12/20(月) 01:40:59.22ID:jnlr9GaR0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ

ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ

※前スレ
Excel VBA 質問スレ Part73
https://mevius.5ch.net/test/read.cgi/tech/1631485799/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2デフォルトの名無しさん (ワッチョイ be8e-qezp)
垢版 |
2021/12/20(月) 15:47:59.42ID:xbGcPk/a0
いつものあいつの釣りとあまりに馬鹿過ぎる質問はお断りです
また、Excelの使い方すらわからない人はお帰りください
3デフォルトの名無しさん (ワッチョイ 4f68-FJAE)
垢版 |
2021/12/20(月) 21:37:30.62ID:PDhvjiKy0
>>2
というような、荒らしが出没しています
質問者は気軽に質問してok
4デフォルトの名無しさん (ワッチョイ 9710-+zQR)
垢版 |
2021/12/20(月) 22:50:29.00ID:xtbVIhZ20
>>3
とRubyキチガイこといつものあいつが書いてます
2021/12/21(火) 00:54:48.99ID:LQhGMorE0
本当にそう
Excelをろくに使えないヤツは質問禁止
2021/12/21(火) 02:17:40.60ID:A4PyOyUjM
俺が超初心者の質問に答えるのを誰も止められない
2021/12/21(火) 07:05:08.85ID:zyzYO5qO0
誰かやつを止めろー
2021/12/21(火) 08:50:24.71ID:OQH8SbIad
ここで回答者のメンバーを紹介しとこう!!
丸投げの竜!
宿題のケン!
エスパー塚本!
後出しの抜か八!
2021/12/21(火) 14:03:53.42ID:b1cO/LEr0
Excelで値のVLOOKUPが簡単にできないのはどう考えてもおかしい
2021/12/21(火) 19:59:23.56ID:NGMac6Im0
set phoneticが遅いんですが何か良い方法ありませんか・・・
2021/12/21(火) 20:21:57.86ID:JWVO4cJHd
シoア「使わなければどうということはない」
2021/12/21(火) 21:27:31.69ID:4sL7eE9Ld
帰る前か寝る前に走らせておけば翌日には終わってる
2021/12/21(火) 21:31:17.19ID:U18xdpJw0
奴隷かな
2021/12/22(水) 01:37:54.14ID:ArdRbsOD0
ここってExcel質問板の親戚なのでつか?
2021/12/22(水) 07:24:45.48ID:eXWgualad
そんなやつは知らん
赤の他人
2021/12/22(水) 17:49:42.98ID:ArdRbsOD0
互いにディスっている噂はマジもんだったのね
あっちは崩壊してる
2021/12/22(水) 18:18:46.40ID:qznVJzlcM
Excelの機能だけを使うかVBAで書くかは時と場合によるだろ
どちらかというとVBAの方が少しだけ得意とか少しだけ知ってるって人が回答側に回ってるだけでExcelの機能を蔑ろにはせんよ
俺なんか未だにピボットテーブルとか苦手だから使える人って凄いなって常々思ってる
2021/12/22(水) 20:20:19.34ID:R6Lyz+3SM
SUMIF関数こねくりまわすよりピボットテーブルの方が頭使わない
19デフォルトの名無しさん (ワッチョイ 4f68-FJAE)
垢版 |
2021/12/22(水) 21:22:09.96ID:THY0vMt/0
>>17
回答者としての素直な感想だけど、
「ピボットテーブル分からないとかMOS取ってないじゃん。それぐらいとっとけよ」だ
MOSエキスパートなんて一週間あれば取れる
絶対にとっておいてほしい
2021/12/22(水) 21:34:22.82ID:VzwTDf6r0
パワハラ野郎が一週間っつってるからだいたい一年か
むずかしそうだな
2021/12/22(水) 23:34:45.09ID:2iFoBA3x0
>>19
MOSなど取らなくてもピボットテーブルくらいは使えるけど、一週間でとれるMOSをわざわざ取る意味はありますか?
2021/12/23(木) 00:13:10.86ID:WhAc8Omnd
>>21
マウントの第一歩は資格から
23デフォルトの名無しさん (ワッチョイ 4f68-FJAE)
垢版 |
2021/12/23(木) 00:13:50.78ID:cFA/EfYi0
>>21
面接する側としては、MOS取ってるとすごく楽

「x年エクセル使ってきました!」→罫線引けるだけなのか、vlookup使えるのか、vba使えるのか、全然分からん


「MOS取ってます」→ピボット使えるのが一発で分かる。他に聞きたい事を色々と聞ける

技術も良いけど、「何を勉強すべきか」をわかってるという点も安心材料になる
2021/12/23(木) 00:41:43.27ID:z8TMb8cl0
資格取るかどうかぐらい自分で決めろよ、迷う程度なら無くても困らんだろ
2021/12/23(木) 00:50:29.82ID:T5zamiY20
>>19
MOS上級取ったがピボットテーブルが何だったか覚えてないわ〜
だって使わねーもん忘れるわ

関数も使ったセル数に比例して重くなるからあまり使わない
26デフォルトの名無しさん (ワッチョイ 6a8e-qezp)
垢版 |
2021/12/23(木) 01:25:21.58ID:yhxVrEG50
派遣かよ(笑)
2021/12/23(木) 05:40:54.98ID:ogtrdNkS0
>>23
MOSとやらの資格を持ってるとVBAもやってるか分かるの?
てことはMOSにVBAの問題も出るってこと?
2021/12/23(木) 06:26:23.14ID:W/nbBjGX0
うちの上さんにピボット教えたら課長に昇格したで
もともとは非正規社員だったのに
2021/12/23(木) 06:56:30.81ID:wGiTcijP0
レベルの低い会社だな
2021/12/23(木) 08:39:33.26ID:XNOwqpXCM
鶏口牛後
2021/12/23(木) 08:45:45.04ID:F08Xg9SRM
ピボットは高速だからいいよ
2021/12/23(木) 10:02:50.98ID:drYqNVEKM
>>27
横だけど出ないよ
人それぞれだと思うけれど正直VBAのほうが小回りが効く
2021/12/23(木) 15:44:49.15ID:u3bNwovs0
VBAできればそんな機能やらなんとか関数なんて覚えなくていいんじゃないの?
職場に全部VBAでExcelを運用している上司がそう言っていた。
「Excelはマクロで動かせば良いんだよ」って
2021/12/23(木) 15:48:58.80ID:hP3nIsI3d
それぞれ長所と短所があんだから、適切に使い分けれないのは無能
2021/12/23(木) 17:12:00.17ID:7F8qfhQc0
>>33
クソみたいな会社だね
2021/12/23(木) 17:27:03.01ID:u3bNwovs0
VBA=上級者なんでしょ?
2021/12/23(木) 18:14:09.06ID:z8TMb8cl0
上級者=人間です
2021/12/23(木) 18:37:09.81ID:ogtrdNkS0
そんなことより明日はクリスマスイブですよ
2021/12/23(木) 18:50:00.82ID:YP7dkfo90
今日はイブイブですよ
2021/12/23(木) 19:03:15.92ID:Q2iVuQydM
上皇陛下生誕記念日ですよ
2021/12/24(金) 11:39:11.20ID:CMtgWUns0
>>38-39
プレゼントくれ
2021/12/24(金) 13:14:14.04ID:dZUCpvkt0
どうせクリスマスイヴもクリスマスもExcelの練習してるんでしょ?
自分もだけど泣
2021/12/24(金) 13:38:02.83ID:YbcytTda0
Win11でIEが廃止されたんで、VBA/VBscriptでIEを操作できなくなったと思ったんですが、
最新のWin11だとIEが復活してないですか?
https://i.imgur.com/owo3i91.jpg
Win11を最新にしたら、IEが起動して操作ができるようになってる。
2021/12/24(金) 14:20:05.78ID:4not7NKLM
>>43
廃止されてない
最初からそうアナウンスされてたからVBA勢もとくに慌ててなかった
2021/12/24(金) 14:48:58.10ID:6jALRLih0
VBAの廃止はちょっと困るなぁ
VBSの廃止も少し困るけどいざとなったら
Javascriptに逃げる
2021/12/24(金) 23:15:00.50ID:pZVHkbp70
VBAで文字列x内のn文字以降で,文字Aと文字Bの間が数字だけの部分のBの位置を知る方法があれば教えて下さい.
47デフォルトの名無しさん (ワッチョイ eb68-425w)
垢版 |
2021/12/24(金) 23:19:31.78ID:my/u7ogk0
>>46

n=4

aaaergjoeriA3543Behwfhewu ←これのBの位置
bbbA3fewfew354Bffewo
cccfjewpfAf3e54f3w54Bfjeei

正規表現でA・Bの間が数字だけ、それをfindで見つける気がするけど飲みすぎて無理だー
2021/12/25(土) 00:32:33.67ID:VJJcYh0C0
>>47
酔いが覚めたらお願いします
49デフォルトの名無しさん (ワッチョイ 6b8e-V3ae)
垢版 |
2021/12/25(土) 00:49:36.50ID:/fiswOOz0
>>48
ヒント貰ったのだから後は自分で考えろ
2021/12/25(土) 00:58:09.02ID:VJJcYh0C0
>>49
そこまではヒントをもらわんでも俺でもわかる。
この先がわからんから聞いているのよ。

それにお前関係ないやつだよな。
貢献もしてないのに横からでてきて文句をいうな。
マスク警察みたいなやつだね(笑)
51デフォルトの名無しさん (ワッチョイ 6b8e-V3ae)
垢版 |
2021/12/25(土) 01:35:14.15ID:/fiswOOz0
>>50
馬鹿には無理ってことか
いや、Ruby基地外だろ
2021/12/25(土) 09:39:15.77ID:pMGYJdSE0
自分で自分の首を絞めるスタイル
2021/12/25(土) 09:45:38.27ID:pDRqI2zs0
逆にそこまでわかってて何がわからないの
2021/12/25(土) 10:05:17.74ID:xRiGY3nRM
検索する能力がない
応用力がない
2021/12/25(土) 10:16:27.24ID:UaFD4yqA0
向いていないからVBAやめろと言っているようなもんか
2021/12/25(土) 10:26:38.11ID:h6X2g2ddd
仕事ってのは、できるやつに頼みたいと思っても手持ちの人材をなんとかやりくりするしかないわけで
ベストは不可能だから、どうやったらベターな結果が得られるか考えるのが管理職の仕事
世の中そんなもん
2021/12/25(土) 10:40:38.77ID:VJJcYh0C0
Find はセルにしか使えない。instr関数は正規表現をサポートしてた。like 演算子は文字位置を返さない。何で行き詰まってる。
2021/12/25(土) 10:42:03.53ID:VJJcYh0C0
すまん誤字が多かった。

Find はセルにしか使えない。instr関数は正規表現をサポートしてない。like 演算子は文字位置を返さない。なんで行き詰まってる。
59デフォルトの名無しさん (ワッチョイ eb68-425w)
垢版 |
2021/12/25(土) 10:42:44.93ID:PWqR92MK0
正規表現使えばいいじゃん(いいじゃん)
2021/12/25(土) 10:51:58.85ID:CtJIiN4vM
>>58
WorksheetFunction.Find
2021/12/25(土) 10:58:39.79ID:6NqLFNqCM
正規表現でA-Bの文字列を取り出して
その文字列をfindかinstrにかければAの位置がわかる
あとはA-B文字列の長さを出せばBの位置もわかる
62デフォルトの名無しさん (ワッチョイ eb68-425w)
垢版 |
2021/12/25(土) 11:14:22.36ID:PWqR92MK0
飲みながら正規表現はキツイ

Sub foo()

a = "aaaergjoeriA3543Behwfhewu ←これのBの位置"
b = "bbbA3fewfew354Bffewo"
c = "cccfjewpfAf3e54f3w54Bfjeei"
n = 4 'n文字以降
str_start = "A"
str_end = "B"

'RegExpオブジェクトの作成
Dim reg As Object
Set reg = CreateObject("VBScript.RegExp")

'正規表現の指定
reg.Pattern = ".{" & n & "}" & str_start & "[0-9]*?" & str_end 'パターンを指定
reg.IgnoreCase = False '大文字と小文字を区別するか(False)、しないか(True)
Debug.Print reg.Pattern

'main1 この引数が検索対象
Set matches = reg.Execute(a)
63デフォルトの名無しさん (ワッチョイ eb68-425w)
垢版 |
2021/12/25(土) 11:14:27.46ID:PWqR92MK0
'無かったら終了
If matches.Count = 0 Then
MsgBox "見つからないので終了します"
Exit Sub
End If

'main2
For Each Match In matches
文字列長 = Len(Match.Value)
発見場所 = Match.firstindex
結果 = 文字列長 + 発見場所
Debug.Print 結果 & "文字目に見つかりました"
Next Match

End Sub
2021/12/25(土) 11:44:00.82ID:VJJcYh0C0
>>62,63
おお、ありがとうございます。
これです。

RegExpでVBAでも正規表現が使えるところまでは調べたのですが、具体的な使い方がわかりませんでした。
勉強します。

このような素晴らしい解決策をご教示していただける前は下のような手作り感満載の関数でしのいでおりました。
あとから見た時にわからなくなりそうなのでもっと定式化された解決策を探しておりました。

なお必要なのは最初にマッチした位置だけでいいです。

Function patternSearch(x As String, pattern As String, start As Long)
Dim i As Long
Dim isStartEndMatching As Boolean
Dim isNum As Boolean
Dim cond_StartEnd As String '前後の文字の一致を調べる
Dim cond_Numeric As String '間が数字であることを調べる

cond_StartEnd = Left(pattern, 1) & "*" & Right(pattern, 1)
cond_Numeric = Mid(pattern, 2, Len(pattern) - 2)

For i = 1 To Len(x) - (start - 1)
isStartEndMatching = Mid(x, start, i) Like cond_StartEnd
isNum = IsNumeric(cond_Numeric)
If isStartEndMatching And isNum Then
patternSearch = start - 1 + i
Exit For
End If
Next i
patternSearch = 0
End Function
2021/12/25(土) 11:52:30.46ID:S32KpRlOM
>>62
>>46 > VBAで文字列x内のn文字「以降」で
■ このスレッドは過去ログ倉庫に格納されています