Excel VBA 質問スレ Part48 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 6f8e-Fc1g)
垢版 |
2017/05/16(火) 08:24:45.78ID:iIGA/64l0
!extend:checked:vvvvv:1000:512

スレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい

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

※前スレ
Excel VBA 質問スレ Part47 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1489557874/

※関連スレ
VBAなんでも質問スレ Part2
http://echo.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
http://echo.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 125
http://echo.2ch.net/test/read.cgi/bsoft/1481369538/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2017/05/22(月) 12:26:52.79ID:csbpN2HFr
>>128
ExcelとAccessのVBAの本なら腐るほどあるからここで聞かなくてもググれば良い
Word、Outlook、PowerPointのVBAとなると日本語ではかなり少なくなるので教えるまでもなくググれば出てくる
ググって出てこないなら英語書籍やネットブログを漁るか、MSDNを直接参照することになるね
2017/05/22(月) 12:56:42.47ID:AKn80VTzp
>>128
vbeでF2キー
2017/05/22(月) 13:29:08.29ID:o9BH+SoNH
>>128
メソッドやプロパティの方から網羅的に学習するのはきついので、やりたいことの方から網羅的に
説明してる本の方がいいと思う。

たとえば、
『Excel VBA逆引き辞典パーフェクト』
http://www.shoeisha.co.jp/book/detail/9784798146584

似たような『○○700』みたいなのがいくつかあるから、どれか選んで流し見するのがいいと思う。
2017/05/22(月) 14:44:41.19ID:nSxPTPKq0
本なんて必要か?

多少の英語カがあればインテリセンスの中からそれっぽいもの選んで実験+Web検索で十分だろ。
あとは、インタフェースへのセンス(絶対この場合だったらこんなプロパティがある筈という嗅覚)とかね。

初心者だったら以下に気を付けてコード書くと良い。

・マクロ記録したらコードの中で必要無い部分をとことん削るのが常識と考えよう。
・それで動作確認して問題無いことを確めよう。
・削って問題無いと思っても、その場では問題無くても場合により問題出ることあるから削って残った部分をWeb検索で皆はどうしてるのかを確認しておこう。

・英語的にそのコードの意味を考えよう。
'A1を選択
Range("A1").Select

'選択したものの値を1にする
Selection.Value=1

だったら当然
'A1の値を1にする
Range("A1").Value=1
ということになる。
2017/05/22(月) 15:17:01.68ID:o9BH+SoNH
>>132
そんな無駄な試行錯誤や調査を、たかだか2,3000円の本を読むだけで省略できるんだが。
入門書とか馬鹿にする人いるけど、たいてい>>132みたいな感じだね。
2017/05/22(月) 15:42:03.39ID:W5+S3ypfM
>>132
デジタルに調べる良さとアナログに調べる良さは別物だよ

アナログだと「調べるつもりもなかったけどたまたま見かけて使ってみたらいい感じになった」ってことはアナログならでは
2017/05/22(月) 15:47:18.44ID:0dv64TbrM
色々意見ありがとうございます
うちの会社ネット禁止なので本に頼るしかない事情があるのです…
ネット可ならネット検索でやりたいのが本音です
2017/05/22(月) 16:20:04.11ID:yUPIrMPGd
>>135
開発環境だけでなくどこからもネットに繋がらないというなら会社に文句をいうべき
煽りではなく
2017/05/22(月) 18:00:49.91ID:AKn80VTzp
>>133
その試行錯誤が無駄かどうか長期的に考えれば分からない
2017/05/22(月) 18:15:29.31ID:MyMt2epv0
業務なのか自主的なのかで話が変わってくると思うけど、
VBAいじるのにネット無しは辛いなぁ。
2017/05/22(月) 18:29:46.83ID:o9BH+SoNH
>>137
書籍で基本的な知識を学んだ後でも、試行錯誤はするでしょ。
その試行錯誤には意味がなく、>>132のような試行錯誤には意味があるという主張?
だとしたら、それは自分で勝手にやってくださいと言うしか。
2017/05/22(月) 18:56:05.69ID:pWkjNq5k0
おおむかしは、FAXでMicrosoftから資料を引き出していたものじゃ
先ず、目次を引っ張れるFAX番号に掛けて、延々何十枚もの目次をげっと
その目次から欲しい機能を探し出し、今度は欲しい機能のFAX番号へ掛けて
これまた延々と資料を文字通り引きずり出しておったわ

よく覚えてないけど、そんなかんじ
その頃のFAXはB4の感光紙で、うっかり陽の当たるところに置きっぱで
外出したりすると、帰社した時には真っ黒くろすけで愕然と膝から頽れたり
2017/05/22(月) 19:18:46.60ID:g3oHLvAy0
>>135
検索できるPCを用意してもらったほうが良い。もしくは自分で用意するか
ネットでその都度検索できないとあまりに効率が悪い
2017/05/22(月) 19:45:17.11ID:ewHRkUXfd
>>136
金融じゃ普通だぞ
いちいちググらないとコード書けないやつはお呼びじゃない
2017/05/22(月) 20:10:34.61ID:3QNKGHFQ0
>>142
金融案件みたいなデスマーチの温床に言われてもww
2017/05/22(月) 20:13:17.75ID:g3oHLvAy0
>>142
金融業界にvbaでセコセコやってるやつなんでいねーよwww
帳票システムは全部外注、ボタンひとつで出るようになってるんだよwww
しかもエクセルよりアクセスの方が使用頻度が高い

岡三証券とかは知らんけど
145デフォルトの名無しさん (ワッチョイ 0fc7-X+GT)
垢版 |
2017/05/22(月) 20:44:19.38ID:rXkCxzW60
なんかさあ…もう少しオープンに自分の無知をさらけ出そうぜ
無知ってそんなに悪いもんじゃないぜ?
2017/05/22(月) 21:21:30.49ID:yUPIrMPGd
>>142
金融でもいわゆるOA環境は与えられててネットは見れるだろ
2017/05/22(月) 23:25:21.82ID:KgZfg/yx0
>>139
どっちの試行錯誤も意味があるんじゃね
試行錯誤が無駄といったのはそっち
148デフォルトの名無しさん (ワッチョイ 8a2d-8zZG)
垢版 |
2017/05/22(月) 23:36:28.18ID:fGR6ky/u0
空白と重複をなくしたドロップダウンリストを作成したいんだけど、作業列つくらないと厳しいですか?
A列に重複がたくさんあるものから、重複を削除したリストをB2に追加したいですが、VBAでは厳しいですか?
2017/05/22(月) 23:39:29.41ID:W5+S3ypfM
>>148
繰り返しとifでいける
2017/05/22(月) 23:41:44.53ID:EzxM7okx0
vba使い始めた頃はヘルプに結構お世話になったけどなあ
最近のバージョンだとオフラインのヘルプが入ってないからきついよね
>>128のバージョンもダメなやつなのかな
151デフォルトの名無しさん (ワッチョイ 8a2d-8zZG)
垢版 |
2017/05/22(月) 23:43:11.76ID:fGR6ky/u0
>>149
ループでリストってできるんですか!!知りませんでした。
例えば1〜"A1に入力された数字"までのリストとかも可能ですか??
A1に20とあった場合、1・2・3・4・5・6・・・・20といった感じで。
2017/05/22(月) 23:49:46.04ID:g3oHLvAy0
>>151
Sub Macro1()
arr = ""
For tmp = 1 To Cells(1, 1).Value
arr = arr & "," & tmp
Next
Cells(1, 1).Validation.Delete
Cells(1, 1).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=arr
End Sub

>>148
vbaでもできるけど作業列作ったほうが早いと思う
俺なら作業列を使う
153デフォルトの名無しさん (ワッチョイ 8a2d-8zZG)
垢版 |
2017/05/22(月) 23:57:33.95ID:fGR6ky/u0
>>152
完璧すぎて鼻水でました
ありがとうございます
2017/05/22(月) 23:58:56.03ID:EzxM7okx0
俺も作業列勧めるな
直値で入れると文字数の制限があるだろ
2017/05/23(火) 00:12:52.19ID:fMtQNmiV0
>>149
If 俺 = "イケメン" Then
  俺 = 俺 & 彼女
End If
2017/05/23(火) 00:30:37.63ID:bLVWAbWWM
>>155
イケメンだったらおまえが消えて新しい命に書き換えられてしまうな
157デフォルトの名無しさん (ササクッテロル Sp03-8zZG)
垢版 |
2017/05/23(火) 01:06:28.10ID:G9caL/WXp
>>155
実行時エラー
型が一致しません。
2017/05/23(火) 01:16:03.77ID:aBKdrymv0
>>157
酷過ぎワロタwww
2017/05/23(火) 02:03:21.06ID:3SYK1IcP0
>>139
省略する人は試行錯誤を大してやらないよ。
答えを求める奴は結局身にならない。

昔、高校受験用に行ってた塾にいた天才共は英語の辞書を丸暗記してたが俺は天才じゃ無いので英語の使い方(しくみ)を勉強した。
プログラミングもしくみが重要で個々の単語は都度調べれば良い。

本は必要無いと思うけど有っても良いとは思うし、自分もかなり買う方だ。
でも自分が本を買うのは興味からだな。
あ、自分は今はVBAの本を買うことはありません。
初心者なら読んでおもしろそうだったら買ってみれば良いんじゃない?
2017/05/23(火) 06:24:30.98ID:2tE3UxZ+0
多分その天才どもは英語の仕組みは既に把握したうえで、
上積みとして単語を丸暗記してるんじゃないか?
仕組みがエンジン、単語がガソリンと考えたら、
エンジンだけでもガソリンだけでも走れない。
効率の良いエンジンは少しのガソリンでも遠くまで走れるし、
沢山ガソリン積めれば少々お粗末なエンジンでもやっぱり遠くまで走れる。
どっちが大事じゃなくて両方大事。
2017/05/23(火) 06:30:19.51ID:DZlqaxyP0
試行錯誤する事で答えが判らない事を解決するスキルが身につく
このスキルはVBAにとどまらない
他のことにも応用できる
2017/05/23(火) 06:50:44.94ID:3FTCY8r/r
本は嘘が書かれてたりするから厄介

想定読者の知識レベルに合わせる理由でいろんな説明を端折ってミスリーディングな表現になってしまってたりするし、著者の知識が根本から間違ってるときもある
2017/05/23(火) 07:27:49.86ID:pxpRUDcgM
結局身に付かないから自分で調べろとかw
ここで聞くってことは理解したいんじゃなくて答えが知りたいだけなんだよ
教える気がないなら黙ってろ
2017/05/23(火) 07:34:02.08ID:Y2XmHkKh0
>>163
勉強の仕方の話だよ
回答はする
2017/05/23(火) 10:12:46.48ID:3SYK1IcP0
>>163
ほら、これが弊害だ。
きちんとアンカー追っていけば初心者がどうやって勉強すれば良いかの話から来てるのがわかる筈。

直近のレスだけ見るような手っ取り早さを求めるような奴には教えても無駄になるだけだ。
2017/05/23(火) 10:34:38.44ID:BzWPCBXiH
>>159
一生、
> Range("A1").Select
> Selection.Value=1
> Range("A1").Value=1
みたいなレベルを手探りで探し出すようなことやってろよ。誰にも迷惑かからないし。
だが、人には勧めるな。
2017/05/23(火) 11:06:55.30ID:3CTg7HpXa
>>166
それが分からないようじゃレベルがうかがいしれるねw
というか、あれを書いた俺がそんなレベルに無いことなんて想像も出来ないのか?

多少出来る奴なら誰でもマクロ記録のままのゴミコードを否定するだろうよ。
2017/05/23(火) 11:58:25.09ID:IihgumLkM
>>167
時間が無駄だってことだと思う
お前の技術レベルの話じゃない

物事には期日があるんだからそんなどうでもいいことに時間使うんなら本買った方がいい
2017/05/23(火) 12:01:49.66ID:ZBpIQRDpM
>>167
コミュ障技術者にありがちなバランス感覚の無さだな
VBAを理解する事が目的じゃないんだよ
2017/05/23(火) 12:06:29.03ID:TeKp5Ts0d
Validationて何だ?
と思うくらいExcelのオブジェクトのことを知らない。
VBAばっかりだからなあ
2017/05/23(火) 13:08:14.56ID:BzWPCBXiH
>>167
> というか、あれを書いた俺がそんなレベルに無いことなんて想像も出来ないのか?
お前のレベルなんか知ったこっちゃない。

> 多少出来る奴なら誰でもマクロ記録のままのゴミコードを否定するだろうよ。
ケースバイケースだし、議論する価値ない話題だね。
2017/05/23(火) 13:09:17.49ID:TeKp5Ts0d
友達じゃあるまいしな
2017/05/23(火) 13:19:37.53ID:DZlqaxyP0
>>168
それは答えが判ってる事にしか使えない
仕事では誰にも答えが判らない事を解決する事も多い

答え合わせができる問題で訓練した方が良い
2017/05/23(火) 13:26:08.31ID:DZlqaxyP0
答えが判ってることを効率的に片付けるには
答えを聞いたり調べれば良いけど

答えが判っていない新しいことを実現するには
その方法は使えない

自分で考えずに答えを求める事が
日本でイノベーションとかが比較的少ない原因かもな
2017/05/23(火) 13:29:05.48ID:BzWPCBXiH
新しい何かを始めるにあたって、入門書を読むとこから始めるのが「答えを求めること」なのか
2017/05/23(火) 13:36:08.12ID:S9zv8N7Q0
そして、答えはひとつだけでは無い
2017/05/23(火) 13:40:08.67ID:DZlqaxyP0
>>176
答えは一つじゃないから
入門書にこだわる必要はないな

入門書は何のために読むの?
小説か何か?
自分が判らないことの答えを知るためじゃないのか?
2017/05/23(火) 13:47:15.75ID:OJ3bnrAra
>>168
>>169
>>171

>一生、...みたいなレベルを手探りで探し出すようなことやってろよ。

に対してのレスだからコミュ障はオマエラだよ。
そもそもの話のはじまりは>>128だから具体的な案件で期日が既にあるという話じゃない。

コミュニケーションの取れない奴はこれだから困る。
2017/05/23(火) 13:56:20.46ID:BzWPCBXiH
>>178
この流れのそもそもの始まりは、>>128に対して>>132みたいなレスをしたからだ。

そもそも>>128は、おすすめの入門書を聞いてるんだよ。
それを本なんか不要とするからこうなった。
2017/05/23(火) 14:43:29.82ID:YXklfP5tx
お勧めの本は知りません
をやたら回りくどくやるのなw
2017/05/23(火) 15:12:36.24ID:zqdwD1uL0
>>180
マは性格捻くれたクソ野郎が多いからw
2017/05/23(火) 16:36:03.71ID:ZjKWQBEz0
たしかに>>132はクソレスだな
質問スレなんだから、素直におすす目入門書を挙げれば済む事
2017/05/23(火) 18:13:36.59ID:PCM7pP9za
横レスだけど128の質問も少し違和感がある。
"詳しい入門書"というのはなかなかないんじゃないか。

128は少なくとも全然vbaが分からないわけでわなくプロパティやメソッドの使い方が難しいと言ってるわけだから求めてるのはもはや入門レベルとは思えない。
感覚としては優しく丁寧に書いてある、という意味かもしれないが。
2017/05/23(火) 18:22:11.37ID:IihgumLkM
>>173
それは設計の話だな
実装からスタートする案件だとしたら話は変わってくるけど、、、
2017/05/23(火) 18:45:32.25ID:YXklfP5tx
早く教えて挙げて
2017/05/23(火) 18:53:06.25ID:IihgumLkM
>>131
187デフォルトの名無しさん (ワッチョイ 0fc7-X+GT)
垢版 |
2017/05/23(火) 20:04:53.74ID:vE+85AhN0
逆引き系の本てやりたい事がズバリ書いてある事ってどんだけあるの?
本当に使えるのかいまいち信用できん
188デフォルトの名無しさん (ワッチョイ d3b9-cm4/)
垢版 |
2017/05/23(火) 20:24:44.89ID:4WGZqsHw0
星君の業務改善でいいじゃん
2017/05/23(火) 20:25:40.01ID:Y2XmHkKh0
逆引きは、逆引きがいらない事に気づかせてくれるありがたい本だよ
2017/05/23(火) 20:59:03.89ID:mDga4JbQ0
そう、誰も、
本を
読んでいないのである・・・
2017/05/23(火) 21:24:06.93ID:PaLG7AjU0
勤務表を作りたいと考えています
A1からの各セルにA1勤務開始時間、A2勤務終了時間、A3休憩時間と入れたら
A4からの各セルにA4割増無の勤務時間、A58時間以上の勤務時間、A6休日労働時間、A7深夜労働時間
とVBAを使用して入れたいのですがA7に入れる深夜労働時間の求め方が思い浮かびません
深夜勤務は22:00〜5:00の間なのですが21:00〜4:00、18:00〜6:00みたいな勤務の場合どうやって深夜労働時間を求めればいいのでしょうか?
2017/05/23(火) 21:35:35.13ID:z+zsvOR8p
>>191
就業規則をよめ
2017/05/23(火) 21:41:04.89ID:Y2XmHkKh0
昔作ったなぁ

まず概念として、
0-5,5-22,22-29,29-46
と4つの区分に分ける。0-5と22-29を分けるのが味噌。一緒にするとややこしくなる
俺は甲時間 乙時間 丙時間 丁時間と名付けていた

入力は3項目じゃなく6項目。
出勤、退勤、甲乙丙丁それぞれいつ休み時間を取ったかわかるようにする

残業代は労働時間の合計-8時間になり、
休日は休日フラグを作り、勤務時間*割増分を別枠で付ける。

で、
21:00〜4:00の場合の考え方は
開始時間が5:00以前なら5:00△開始時間が甲時間(仮)。終了時間が5:00以前なら更に5:00△終了時間を甲時間(仮)から引く。これが甲時間。今回は0
乙時間も似たような感じで、開始時間が5:00~22:00なら22:00△開始時間が乙時間(仮)。終了時間が22:00以前なら更に22:00△終了時間を乙時間(仮)から引く。これが乙時間。今回は1:00
あとは丙時間、丁時間も同じように求める

個人的には関数の方が修正しやすい、見通しも良いで作りやすいと思う

>>192
無能の自己紹介はいらないよぉ
2017/05/23(火) 21:41:20.14ID:Y2XmHkKh0
>>193>>191へのレスね
2017/05/23(火) 22:01:45.26ID:ADqqpGm90
以前、ここでシフト表を作りたいって人がいて、んで別スレまで出来てあれこれ皆が頑張っていたけど、途中で多分本人がやる気なくしてw
アボンだったな
2017/05/23(火) 22:07:18.85ID:z+zsvOR8p
>>193
残業代(金額)が、労働時間-8時間(時間)
とかw

好意的に解釈して残業代じゃなくて残業時間だとしても
-8時間かどうかは就業規則を読まないと判らないだろ
2017/05/23(火) 22:34:24.97ID:D2f+EUmlM
>>191
timevalue関数はご存知かな?
日時の時間部分だけをDate型に変換してくれるけど、Date型の値は24時間(=1日)を1とした数値として扱える。
以下、日付を跨ぐ値は1(=24時間)を足してます。

深夜開始 = TimeValue("22:00:00")
深夜終了1 = TimeValue("5:00:00")
深夜終了2 = TimeValue("5:00:00") + 1
出勤 = TimeValue(Range("A1").Value)
退勤 = TimeValue(Range("A2").Value)
If 出勤 > 退勤 Then 退勤 = 退勤 + 1
休憩 = TimeValue(Range("A3").Value)

労働時間 = 退勤 - 出勤 - 休憩
深夜労働時間 = IIf(出勤 < 深夜終了1, 深夜終了1 - 出勤, 0)
If 出勤 < 深夜終了2 And 退勤 > 深夜開始 Then
深夜労働時間 = 深夜労働時間 + IIf(退勤 < 深夜終了2, 退勤, 深夜終了2) - IIf(出勤 > 深夜開始, 出勤, 深夜開始)
End If

たぶんこんな感じ。
出勤表なんて作ったことないからテキトーですw
おかしかったら誰か直して〜
2017/05/23(火) 22:55:16.52ID:Y2XmHkKh0
?cells(1,1).Address
で絶対参照の$A$1は取得できますが、
行のみ相対参照の$A1を取得する方法はありますか?
2017/05/23(火) 22:59:09.40ID:p/2ZNHs9p
それくらいヘルプ見れ
https://msdn.microsoft.com/ja-jp/library/office/ff837625.aspx
2017/05/23(火) 23:08:02.98ID:Y2XmHkKh0
>199
ありがとうございます、解決しました
2017/05/23(火) 23:10:34.50ID:Y2XmHkKh0
Range.Address プロパティ (Excel)について質問です

AddressはRangeオブジェクト内の関数ですが、vbaだと、値を取得する場合はプロパティと呼ぶのでしょうか?
引数があってもプロパティと呼ぶのですか?

他言語ではオブジェクトのメンバを直接取得したり値を設定するのがプロパティ、式がメソッドと思っていたのですが、
vbaが特別なのでしょうか。それとも他にこういう区分けの言語はあるのでしょうか
http://piyo-js.com/01/keyword.html
2017/05/23(火) 23:39:33.41ID:kSdgf1uK0
プログレスバー使ったら値更新するたびにフォーカス奪うようになって別ウィンドウで文字入力とかスクロールしてると邪魔される
せっかくの長い処理中に別作業できるメリットが損なわれるようになってしまって困ってるんだけど何か解決策ないでしょか…?
プログレスバーないと処理中不安になって長く感じるのでできれば使いたいです
ちなみにWindows7上で使ってるExcel 2010です
2017/05/23(火) 23:44:33.10ID:CFQVOeJer
>>201
Addressは要はgetterですよね
Rangeクラス内部から見ればメソッドのように見え、クラス利用側から見るとメンバ変数のように振る舞いますが、
実態はString型の変数を返すメソッドでふ
メソッドがパラメーターを持つのは普通のことじゃないですかね
2017/05/23(火) 23:47:22.57ID:CFQVOeJer
でふって何だよ馬鹿かよ俺
2017/05/23(火) 23:52:40.77ID:Y2XmHkKh0
>>191
暇だから作った
http://www.dotup.org/uploda/www.dotup.org1258917.xlsx.html

>>203
そうそう、そうなんです
で、vbaではそれをプロパティと呼ぶの?という質問なんです
このリンク先ではaddressをプロパティと言っています
https://msdn.microsoft.com/ja-jp/library/office/ff837625.aspx
2017/05/23(火) 23:55:26.87ID:CFQVOeJer
>>201
引数つきのgetter/setter(プロパティへのアクセサ)を作れるかどうかは言語仕様によります。
VBでは作れる、というだけの話
2017/05/24(水) 00:16:59.54ID:jVvBcvpG0
今日飲んだビール.TopValue
2017/05/24(水) 01:48:09.41ID:nPuq94IW0
>>205
自作クラスで言うと、
property get/set/let で定義するのがプロパティ、
sub/function で定義するのがメソッド。

range.addressみたく、getだけ定義されているプロパティとfunctionは外から見たら同じようなものだし、気にする意味がないと思う。
2017/05/24(水) 07:02:03.86ID:NmLbt9VS0
>>206>>208
なるほど、ありがとうございました
色々な考え方があるのですね

>>207
韓国産でしたっけ?危険ですのでやめたほうが良いと思います
お金のために健康を捨てるのはもったいないです
2017/05/24(水) 10:47:49.12ID:ktSIKEk8H
>>202
ステータスバーに進捗状況を表示するようにしたら?
211デフォルトの名無しさん (ワッチョイ 031f-QnPL)
垢版 |
2017/05/24(水) 14:14:59.56ID:9bsixbB10
VBA勉強中の初心者です。
最終的にやりたいのはテキストエディタから一部データを抜き出すのをしたいんですが抜き出し方がわかりません。
メモ帳にログが取り込まれてそこから必要なデータを取り除きたいです。

コンビニのレシートがデータしてるものと考えてください。
それでそのレジの最後の一台当たりの発売金額がわかるんですけど発売金額を抜き出したいのですが何をどうしたらいいのでしょうか?
まだ変数と制御構文くらいしか理解していません。
2017/05/24(水) 14:38:10.49ID:ktSIKEk8H
>>211
正規表現(RegExp)を使うと、指定したパターンに適合する文字列を抜き出せる。
以下は、"発売金額 \1,000"という文字列から"1,000"を抜き出すコード。

Sub foo()
  Set regex = CreateObject("VBScript.RegExp")
  regex.Pattern = "発売金額 \\([\d,]+)"
  
  Set res = regex.Execute("aaa発売金額 \1,000 bbb")
  If res.Count > 0 Then
    Set res2 = res(0).SubMatches
    Debug.Print res2(0)
  End If
End Sub
213デフォルトの名無しさん (ワッチョイ 031f-QnPL)
垢版 |
2017/05/24(水) 14:44:53.85ID:9bsixbB10
おお!ありがとうございます。
これを元に一つ一つググりながら理解していこうと思います。
2017/05/24(水) 14:53:05.51ID:9OGm2Cju0
>>211
VBAからADO使ってログファイル読み込みその際にSQL使って絞り込み

>>212
fooを使うんじゃねえhg
2017/05/24(水) 18:37:48.65ID:NmLbt9VS0
なんでfoo使うのダメなの?
2017/05/24(水) 18:45:27.67ID:BVqzNkwop
>>214
何でテキストファイルを読み込むのにSQLとかADO使うの?
2017/05/24(水) 18:52:32.09ID:qKRKK3Glx
>>216
適材適所
2017/05/24(水) 19:02:38.69ID:LTICL+DVa
HYPERLINK関数(mailto:)を使って、メールを送信するシートを作成しました。
B2からB30セルまで、ハイパーリンクが設定されている状態です。
この、B列に並んだハイパーリンクを全てクリックして自動で実行したいのですが、どのようなコードを使えばよいのか分かりません。

Hyperlink.Followメソッドでは、関数によるハイパーリンクを開けないことは分かったのですが、何か代替手段はあるでしょうか?
2017/05/24(水) 19:18:29.39ID:NmLbt9VS0
>>218
マクロ4.0でいけるっぽい
https://oshiete.goo.ne.jp/qa/7192323.html
2017/05/24(水) 20:09:08.13ID:YRGsLxEEr
>>218
なぜハイパーリンクしてるの?
VBAでセルの文字列データを取得して、それを使ってふつうにメールアイテムを作成して送信すれば良さそうだが
221デフォルトの名無しさん (ワッチョイ 0fc7-X+GT)
垢版 |
2017/05/24(水) 20:17:47.99ID:WW1YGaoR0
>>220
それはあらゆる場面において最低の解法
なぜかは自分で考えてね
2017/05/24(水) 20:48:39.32ID:42FTyawn0
だから、ちゃんと教える気がないなら黙ってろと
2017/05/24(水) 20:49:24.31ID:NmLbt9VS0
>>221
横からだけどさっぱり分からない
教えてください
2017/05/24(水) 21:12:42.89ID:9OGm2Cju0
>>216
>>211見てなんで使わないと思ったの?
2017/05/24(水) 21:23:52.71ID:YRGsLxEEr
>>221
あらゆる場面で、というのは随分と強い主張だな
シートのUI上でハイパーリンクを設定すべきかどうか、コード側でメールアイテム作成を制御すべきかどうかは設計次第だろ
2017/05/24(水) 23:00:58.40ID:LLuwxDnS0
>>193
>>205
ありがとうございます。入力フォーマットが既に決まっていて変更できず休憩時間を手入力させるのは難しいです
21:00〜6:00の場合、22:00〜5:00の時間が何時間含まれているかわかればいいんですがいいロジックが思い浮かびません
今思い浮かんだのは1ヶ月間を0〜744時と考えて、24(n-1)を足せば求められるんではと考えてしまいます


あと今日VBAでSQLのクエリ文を作っていたのですがString型って文字数制限があるんですか?
それにに引っかかったみたいで途中クエリが消えてしまい原因がわからずかなり苦戦しました
2017/05/24(水) 23:03:01.52ID:BVqzNkwop
>>224
何でテキストをsqlで読もうとするの?
2017/05/24(水) 23:06:50.11ID:NmLbt9VS0
>>226
数式読みなよ、全部書いてる
http://www.dotup.org/uploda/www.dotup.org1258917.xlsx.html

あとstringに制限は事実上ない
一旦varchar(255)辺りに入れてない?テーブルの制限に引っかかってる気がする
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況