Excel VBA 質問スレ Part57at TECH
Excel VBA 質問スレ Part57 - 暇つぶし2ch200:デフォルトの名無しさん
18/09/18 23:57:53.79 J2IpRlny.net
VBAは作ってからが本当の地獄だぞ

201:デフォルトの名無しさん
18/09/19 06:01:57.35 S2C8yCMr.net
おっと野田工房さんの悪口はそこまでだ
URLリンク(qiita.com)

202:デフォルトの名無しさん
18/09/19 06:47:53.78 wCu+CcEF.net
office.tanakaのコードには俺も前から疑問持ってた。vbaにクソコードが多い原因とまで言っちゃうのはちょっと言過ぎだが。
vbaの場合、入門書にロクなのが無いってのが大きいと思う。

203:デフォルトの名無しさん
18/09/19 08:11:46.01 3pMh17++.net
少なくともオブジェクトが解放されてないとか文句言ってるのは別言語に移行すれば解決するな

204:デフォルトの名無しさん
18/09/19 08:16:58.74 Q3mSx79m.net
他人のせいにしちゃいかんな
モダンな文法や機能の導入
Excel.Applicationのインターフェース改善
洗練されたIDEの導入
これらを怠った結果でしょう
特にIDEの影響が大きいと見たね
インテリセンス、サジェスチョン、ワーニング、リファクタリングツールが充実してると大分変わる

205:デフォルトの名無しさん
18/09/19 08:27:16.54 qT/e110f.net
すくなくともVBEは変えるよな
素人マクロじゃなくて業務開発ならば

206:デフォルトの名無しさん
18/09/19 08:30:56.76 LVCMaoiR.net
>>163
それでもスレに来るのは何なの

207:デフォルトの名無しさん
18/09/19 09:05:12.30 eB9Wvzp/.net
>>198
とにかくVBAをけなして自分のチンケなプライドを満足させたい、その一点のみ w

208:デフォルトの名無しさん
18/09/19 09:07:56.31 hRx0sgGQ.net
啓蒙してユーザー需要を減らせれば、皆がハッピーになると信じている…のかも

209:デフォルトの名無しさん
18/09/19 11:59:42.56 9eFLiOtU.net
暇つぶしの問題
あるセルとその下のセルに数値データが入っている
この2つのセルの中身を他のセルを使わずに入れ替えてください

210:デフォルトの名無しさん
18/09/19 12:11:03.24 3D7E1PKU.net
○○では××できない!糞!って騒ぎ立てることで
いや○○でもこうすれば××できるんやでという回答を引き出すメソッドや

211:デフォルトの名無しさん
18/09/19 12:13:54.07 3D7E1PKU.net
なおVBAの場合ほんとにできないのであまり効果的でない模様

212:デフォルトの名無しさん
18/09/19 12:39:07.72 f2RidzcJ.net
>>201
Dim Rng_Target As Range
Dim Val_Target As Long
Set Rng_Target = 目的のセルを取得するexpression
Val_Target = Rng_Target.Value
Rng_Target.Value = Rng_Target.Offset(1, 0).Value
Rng_Target.Offset(1, 0).Value = Val_Target

213:デフォルトの名無しさん
18/09/19 18:17:37.52 r5xYEE0l.net
If Not RangeA Like RangeB then
RangeA = RangeA Xor RangeB
RangeB = RangeA Xor RangeB
RangeA = RangeA Xor RangeB
End If

214:デフォルトの名無しさん
18/09/19 18:40:15.75 AVetNhWj.net
xor交換て数値型全部に使えるんだっけ

215:デフォルトの名無しさん
18/09/19 18:41:10.33 5nElZyy0.net
>>198
確認だけど日本語は読めるよね?
VBAの使い道を探してるって書いてあるけど見えなかったのかな

216:デフォルトの名無しさん
18/09/19 18:52:28.00 0/ft7j2l.net
>>207
いや、必要もないのに探す意味がわからないし
暇なの?

217:デフォルトの名無しさん
18/09/19 18:58:31.13 5nElZyy0.net
>>208
ん?
高い金出して買ったExcelを使い�


218:アなさなきゃもったいないだろ



219:デフォルトの名無しさん
18/09/19 19:21:40.70 0/ft7j2l.net
>>209
プライベートで有効に活用できないかってことね
趣味にもよるしなあ

220:デフォルトの名無しさん
18/09/19 23:25:17.18 J1A7PsDE.net
プロも実はエクセル使えないの悔しいんやなwプロさんのくせにw

221:デフォルトの名無しさん
18/09/19 23:28:02.58 xLP4ypV2.net
プロはセルで関数つかっても
vbaはつかわない

222:デフォルトの名無しさん
18/09/19 23:34:32.23 f2RidzcJ.net
ワークシートでユーザー定義関数使いたいときはVBA使う

223:デフォルトの名無しさん
18/09/19 23:47:39.17 3pMh17++.net
>>193
なんやかんや言いつつ文句の対象がVBAだけなの草

224:デフォルトの名無しさん
18/09/20 00:20:27.12 EYF8wRp8.net
頭の悪い人がVBA覚えると数式でも工夫すればできることもVBAでやろうとするよね
VBAは所詮「実行できる操作手順」だから、慣れてしまえば頭が弱くても分かりやすい
数式の方が論理的な思考が必要で突き詰めれば難しい

225:デフォルトの名無しさん
18/09/20 00:23:10.21 5+Hsdig+.net
ハイハイ偉い偉い

226:デフォルトの名無しさん
18/09/20 00:37:45.52 grTR8BoD.net
まるでVBAで数式を表現できないみたいじゃないか
変なこというヤツだな

227:デフォルトの名無しさん
18/09/20 00:41:53.76 zLqp8E23.net
むしろ数式の途中結果を使いながら何列もつかって最終結果にたどりつく
途中で確認するからな
複雑な数式を一行やろうとなんか考えない

228:デフォルトの名無しさん
18/09/20 01:26:44.94 SZObeV+C.net
語彙力、たぶん関数って書きたかったんだろ

229:デフォルトの名無しさん
18/09/20 01:42:01.91 iN76uuvx.net
VBの組み込み関数とワークシート関数のどっちの話をしてるんだか

230:デフォルトの名無しさん
18/09/20 05:12:33.95 We2hiCPZ.net
Visual Basic Editorは20年前に発売されてとっくに引退したVB6のIDEの流用?で
なぜか20年間全く変わらないままだな、もうアホかと
Visual Studioで言うところの「すべての参照の検索」ぐらいできないと不便でしょうがない

231:デフォルトの名無しさん
18/09/20 08:13:11.22 nFH62DW3.net
そりゃMSにとってはVBAはもはやレガシーもいいとこであり滅ぼしていきたいものだからだ
君の愛する Visual Studio にも昔はExcel VBAと同様にCOMオートメーションによるマクロ機能とその専用開発環境が付属してたけど、いつの間にか消えただろ?
完全に時代遅れの死んだ技術なんだよ
Excel VBAを削除したら大量の自称プロが露頭に迷って電車のダイヤに多大な影響が出るから踏み切れない、
でも車内のポリシー的にレガシー技術への新規投資はできない、というわけで放置するしかないわけ

232:デフォルトの名無しさん
18/09/20 11:47:27.86 lix+OrrW.net
プロなんてものの数に入らないだろう
圧倒的に多いのは一般のオフィスワーカー
なくなったらむしろプロの側はビジネスチャンスじゃん

233:デフォルトの名無しさん
18/09/20 12:03:27.50 xZtTWzui.net
質問です
タブ区切りtxtファイルを複数読み取り,指定の場所に貼り付けるVBAをMacOS上で制作したいのですが,ファイルパスの仕様?などの関係でうまくいきません

どなたかMacOSでのVBAに詳しい方はいらっしゃいませんか?

234:デフォルトの名無しさん
18/09/20 12:07:06.97 liPfzeAw.net
>>224
まずコードを貼れよ。話はそれからだ

235:デフォルトの名無しさん
18/09/20 12:24:51.29 xZtTWzui.net
>>225
恥ずかしながら,コードはまだ完成していないのです.
そもそも他ファイルの読み込みすらままならないので・・・
練習として,同じフォルダ内にあるEXCELファイル(Sample.xlsx)を開くだけのコードを描いてみたのですが,それすらうまく回りません.
同様のコードでwindowsでは問題なく回ったのですが・・・
Sub Sample()
 Workbook.Open Filename:=ThisWorkbook.Path & "./Sample.xslx"
End Sub
この問題の解決法から教えていただけるとうれしいです.
初心者で右も左も分からず,基本的な質問になってしまい申し訳ありません

236:デフォルトの名無しさん
18/09/20 13:02:40.95 liPfzeAw.net
>>226
ドットが不要。マックは知らんけどWindowsは本来パスはバックスラッシュ、拡張子はxlsxな

237:デフォルトの名無しさん
18/09/20 13:09:09.59 SZObeV+C.net
今開いているファイルが
/boot/hoge/fuga.xlsm
だとして同じ階層の
/boot/hoge/Sample.xlsx
を開きたいなら
相対指定では../Sample.xlsx
.ではだめ。

238:デフォルトの名無しさん
18/09/20 17:49:38.92 lix+OrrW.net
グローバルなRangeプロパティへの参照を機械的に検知するアイディア
URLリンク(qiita.com)
なるほどこの発想はなかった

239:デフォルトの名無しさん
18/09/20 18:03:18.90 hYohggeS.net
>>222
むしろプロは喜ぶね
Vbaそのものが目的化してるアマチュアのほうがきついんちゃう?

240:デフォルトの名無しさん
18/09/20 18:30:13.49 5eDdLMhs.net
VBAが使えるのを売りにしてる事務員は多いからね
さすがにそろそろVBEは標準では付属しなくなって、
MSのサイトの分かりにくい場所から別途ダウンロードが必要になるくらいの弾圧施策は打ってくるんじゃないかな

241:デフォルトの名無しさん
18/09/20 18:36:30.44 49SYfM/r.net
事務員にそんなもの期待してない

242:デフォルトの名無しさん
18/09/20 19:29:49.01 lix+OrrW.net
冷静に考えたらプロは喜ばないか
営業が喜ぶかもしれないってだけだな

243:デフォルトの名無しさん
18/09/20 20:28:39.42 qGj9TL9d.net
>>222
2019にPythonが実装されるという噂だが…
結局COMやらないと駄目、ってなったら旨味がほぼゼロ。
Excelが.NETに完全対応するんならVBAとか今すぐ無くなっていい。

244:デフォルトの名無しさん
18/09/20 21:44:20.01 MjJalB6Y.net
>>234
ん?
Excelに搭載するならVBA並みに使えるようにするだろ
COMで使うなら今でも使えるし

245:デフォルトの名無しさん
18/09/20 21:59:37.62 whO82xMw.net
マルチプラットフォーム、クラウドに注力してるのに
わざわざローカルのOSベッタリの技術にリソースは割きたくないでしょ
というかVBAの前にIEが消えると思う

246:デフォルトの名無しさん
18/09/20 22:42:00.54 oVrOG/N2.net
IEはガチのオワコンだからしゃーない

247:デフォルトの名無しさん
18/09/20 22:54:11.74 tLKfXY5t.net
>>234
そんな噂はねーよ
とっくの昔に否定されてる

248:デフォルトの名無しさん
18/09/21 01:31:15.05 MqKbhYRD.net
ところがここだけの話そうでもないんだよねーあんまり詳しくは言えないけどね

249:デフォルトの名無しさん
18/09/21 02:38:37.17 ITZv+Gmc.net
>>239
負け惜しみ言ってるんじゃねーよ、死ねよ

250:デフォルトの名無しさん
18/09/21 09:35:36.97 mvgA0QsA.net
どんなのが搭載されても関係無いだろ。
それに合わせるだけだ。
逆に待ち望んでた奴らはまたコレジャ・・・がダメとか言い出すんだろう。
結局今と変わらない。
自分の能力の低さを言語のせいにするような奴らなんだから。

251:デフォルトの名無しさん
18/09/21 16:53:09.50 Qvv9rksr.net
事務仕事でVBA使えると業務効率すごく良くなるの?
作業自動化とか見て心がわくわくするけど、うちの会社誰もVBA使えなくていまいちどんな感じなのか想像できない

252:デフォルトの名無しさん
18/09/21 17:42:59.81 CSX4ORRK.net
>>242
自分でやってるExcelの仕事を、この部分を自動で出来たらどうなるかって考えてみたらよろしいやん。
出来るところ出来ないところ色々あるだろうけどさ。

253:デフォルトの名無しさん
18/09/21 17:54:42.09 r3aTV2Xy.net
まだ始めたばったりで基本もまだまだだけど、実際の業務で自動化できそうな簡単な課題を考えて試行錯誤してるんだけどこんな感じで身につくかな?

254:デフォルトの名無しさん
18/09/21 17:56:20.06 xQShnEjp.net
>>242
今からやるならdotnetやpythonがいいよ
どの言語でもエクセルを処理できる
業務はエクセルだけじゃない
だからどうせなら簡単で色々できてパワフルな別の言語を使ったほうがいいというわけ

255:デフォルトの名無しさん
18/09/21 18:04:23.10 liVyxOie.net
メモ帳でC#組めるし.NETはオススメだね

256:デフォルトの名無しさん
18/09/21 18:06:59.84 2TZ1ouJm.net
VBAスレまできてPythonのステマとか
やっぱりPython信者は一味違うな

257:デフォルトの名無しさん
18/09/21 18:11:58.90 mvgA0QsA.net
dotnetもpythonもExcel上で使うには力不足。
VBAが一番都合が良いんだね。

258:デフォルトの名無しさん
18/09/21 18:16:59.14 xQShnEjp.net
エクセルはビジネスのごくわずかな領域でしかない
なのでエクセル依存のVBAはビジネスではイマイチなんだね

259:デフォルトの名無しさん
18/09/21 18:29:31.75 liVyxOie.net
やっぱり.NET、Python、PowerShellで決まりだよ

260:デフォルトの名無しさん
18/09/21 18:33:05.98 MQAmc69g.net
ユーザー定義ワークシート関数作れるようになってから出直せ

261:デフォルトの名無しさん
18/09/21 18:35:03.52 uQKWYjQl.net
>>242
凄く良くなるかは分からん
業務の種類と自分が出来る自動化のスキルによる
うちはシステム化ダメダメだったから日報を2時間掛けて作ってたらしいそれを2分で出来るようにした
土日も作ってるらしいからそこそこになった

262:デフォルトの名無しさん
18/09/21 18:40:23.75 Qvv9rksr.net
なるほどー。普段の業務考えてみたらルーチン作業ばっかしてるし自動化できそう

>>252
まさにそんな感じで日報も作ってるわ。部署ごとにわけて~で2時間は余裕でかかってる
これがもし2分で終わったりしたら夢あるなぁ

263:デフォルトの名無しさん
18/09/21 18:44:00.14 liVyxOie.net
C#あたり使ってVBEのコードペインにユーザー定義関数用のVB6コードを差し込むようにすれば大丈夫だと思うの

264:デフォルトの名無しさん
18/09/21 18:46:12.21 MQAmc69g.net
>>254
で、そのファイルは他の人が開いたらどうなるんや

265:デフォルトの名無しさん
18/09/21 18:50:57.60 liVyxOie.net
ブックのコードペインに差し込んでスタンドアロンなVBAプログラムとして保存すれば他のユーザーがそのブックを開いても普通に関数として使えるじゃん

266:デフォルトの名無しさん
18/09/21 18:56:13.68 xQShnEjp.net
>>251
何に使うの?
ユーザー定義関数を定義する事が目的化してない?

267:デフォルトの名無しさん
18/09/21 19:01:09.32 MQAmc69g.net
>>257
標準関数で書くと低速になるような式のとき、VBAに移す事で大幅に高速化できる。
必要になった時にその場で作るものだから、c#の場合VS起動してコンパイルしてとか論外。
その後、計算書完成したから後よろしくって上司に渡すとかよくある

268:デフォルトの名無しさん
18/09/21 19:17:25.97 FvpQrvJK.net
計算書なんて何度も計算するものじゃないだろ?
それに経過の計算を残すことが重要な書類じゃないのか?
無意味に速度なんて気にして誰も解読できないオナニー関数とか使うなよハゲ

269:デフォルトの名無しさん
18/09/21 19:22:37.61 xQShnEjp.net
え?それだけ?
定義した関数をデリゲートとして渡してコレクションをソートしたり
メタデータを取得してデコレーターを生成したり
再利用�


270:ツ能なモジュールとしてシステムに登録したり とかできないの? 使い捨てのシートに表示するのを高速化するだけのために重いエクセルとVBEを開いてVBAで我慢強くコーディングして動作確認とか辛いんですけど



271:デフォルトの名無しさん
18/09/21 19:30:10.67 liVyxOie.net
必要になったときに手軽に使うのはPowerShell

272:デフォルトの名無しさん
18/09/21 19:31:16.07 MQAmc69g.net
そういうのが作りたいなら好きにしてくれ。
VBAが適している場面もあるって話や
あと数秒で計算終わるなら必要ない。物によっては諸元入力のたびに再計算に1分かかる場合とかあるんよ。
エクセルエアプには分からなくても仕方がないが。

273:デフォルトの名無しさん
18/09/21 19:35:55.04 FvpQrvJK.net
どうせSUMPRODUCTとか使いまくって悦に浸ってんだろ
エクセルプロ()さんは凄いですね

274:デフォルトの名無しさん
18/09/21 19:42:04.04 xQShnEjp.net
リアルタイム更新はエクセル弱っちいよね
非同期処理のサポートが残念だから
入力するたび重い計算を同期で待ちってユーザーが激怒する典型的なパターンだよ

275:デフォルトの名無しさん
18/09/21 19:54:44.02 liVyxOie.net
大容量データをエクセルで扱うならパワーピボット使おうよって思うし、ワークシートで行列計算の評価を何重にも行うならそれ全部外部の高速なプログラムにオンメモリでやってもらおうよって思うの

276:デフォルトの名無しさん
18/09/21 20:16:40.40 4Tb64i1X.net
>>260
お前、VBAに何やらせようと思ってるの?
VBAはあくまでOfficeアプリケーション上で使える便利機能でしかないんだよ?
お前が言ってることはデカいシステム作ることに対応した言語持ってきて
アレが出来ないコレが出来ないと騒いでいるに過ぎない。
そもそもそういうことをやるならそれなりのフレームワークを使ってEXCEL吐き出させろ。

277:デフォルトの名無しさん
18/09/21 20:23:25.18 +w5W7Qw1.net
>>258
標準の関数ってスピードすごい早いプログラムじゃないの?
自作のほうが上回るとかあるんか

278:デフォルトの名無しさん
18/09/21 20:28:26.36 dSxNadcR.net
>>267
VB6標準の組み込み関数じゃなくてエクセル組み込みの標準的なワークシート関数のことを言ってるんじゃないかと理解してたんだけど違うのか?

279:デフォルトの名無しさん
18/09/21 20:33:56.46 xQShnEjp.net
>>266
デカイシステム?
日常的な規模のツールもC#やパワーシェルのほうがいいよ
小規模ならまあほとんどパワーシェルだな
エクセルはスケールデカイときは論外だけど
便利で基本的なクラスや言語機能がないからスケールの小さいちょっとした物にも実はそんなに向いてないんだな
外部コマンドの出力結果をパースして並び替えてフィルターしてエクセルに出力してファイルをwebサーバーにHTTPポスト
これぐらいの簡単な作業ですら着手に躊躇してしてしまう

280:デフォルトの名無しさん
18/09/21 21:47:31.39 c6u7OXiZ.net
>>268
いやワークシート関数で合ってると思うけどあれを超えられるユーザー定義関数を作る自信はないわ

281:デフォルトの名無しさん
18/09/21 22:47:22.07 oOcVj6Vd.net
上で言ってるような重い処理じゃないけど、文字列操作系は自作したほうが便利なことが多いよな。
たとえばSplit関数がワークシートに無いのでパスをバラすときとか糞めんどい。
A1:C:\hoge\fugafuga\piyo
C:・・・・・=MID(A1,1,SEARCH("\",A1,1))
hoge・・・=MID(A1,SEARCH("\",A1,1)+1,SEARCH("\",A1,SEARCH("\",A1,1)+1)-SEARCH("\",A1,1)-1)
fugafuga・・・=MID(A1,SEARCH("\",A1,SEARCH("\",A1,1)+1)+1,
SEARCH("\",A1,SEARCH("\",A1,SEARCH("\",A1,1)+1)+1)-SEARCH("\",A1,SEARCH("\",A1,1)+1)-1)
しかしこれを定義するだけでシンプルになる。
Function SPLIT2(v, deli, idx)
SPLIT2 = Split(v, deli)(idx - 1)
End Function
C:・・・・・=SPLIT2(A1,"\",1)
hoge・・・=SPLIT2(A1,"\",2)
fugafuga・・・=SPLIT2(A1,"\",3)
だから文字列変換が出てきたら大抵VBAで関数組むかな

282:デフォルトの名無しさん
18/09/21 22:52:30.61 oOcVj6Vd.net
>>271
書いてから思ったけど、パス分解するだけなら区切り文字で出来るから例が悪かったわ
上の関数は文字を数式で繋いでコネコネするときによく使う

283:デフォルトの名無しさん
18/09/21 22:53:01.55 /N0VzHQb.net
splitがめんどいのは同意だけどなんでワークシート関数にするの?
vbaで処理完結したほうが良いと思うけど

284:デフォルトの名無しさん
18/09/21 23:05:24.48 oOcVj6Vd.net
>>273
それも場合によるかと
帳票、単票みたいなのをササっと作るときは、セル毎に式を組まないといけないから適してる。
あと行・列挿入が多い表に埋め込むときとか。
たぶんPowerShellerが想像してる表から表に変換するような場合にはあまり適してないね。
あと元の値が頻繁に変化するものは、そのたびにマクロ走らせないといけないから更新漏れが起こるのが困る。

285:デフォルトの名無しさん
18/09/21 23:37:14.57 3Rh/KByq.net
考え方なんかなワークシートで式使われる方がめんどく感じる
大量にあったりすると重いしメンテしづらかったりするし

286:デフォルトの名無しさん
18/09/21 23:47:44.41 dSxNadcR.net
Lispの糞コードいじる気分になるよね

287:デフォルトの名無しさん
18/09/21 23:50:48.56 UZbX0jXb.net
ワークシート関数なら他にはマネ出来ない
データ処理するだけならPowerShell使えって奴も多いんじゃね

288:デフォルトの名無しさん
18/09/21 23:50:54.80 MqKbhYRD.net
盛りすぎプロさんw

289:デフォルトの名無しさん
18/09/22 00:01:13.95 96L85sWt.net
SPLITみたいなのはワークシート関数にする派だな
汎用的な関数をワークシート内で使ったほうが見通しがいい
他にもMAP、FILTER、REDUCEみたいなのも自作して使ってるわ

290:デフォルトの名無しさん
18/09/22 00:04:01.76 /LVptLz+.net
JSPやASPの失敗を繰り返しとるな
帳票にデータを埋め込みたいなら式じゃなくシンプルにセル参照を使うといいよ
参照先はプレーンなデータ専用シートね
こうしとけばセキュリティ監査的に面倒なマクロ付きにしなくていい、
データ供給元の言語に依存しなくなる、
データ供給元のコードがシンプルになる、
データモデルがわかりやすくなる、などなどメリットが多い

291:デフォルトの名無しさん
18/09/22 00:17:31.94 T/6XWx9j.net
>>279
MAPやREDUCEに渡す無名関数はどうやってる?

292:デフォルトの名無しさん
18/09/22 02:18:36.18 niETRueG.net
ワークシート関数って”使う”のにかかる手間が少ないのがメリットだと思う。
関数の入力と出力だけ書いておけばVBA読めない人でもすぐに理解できる。
ワークシート関数使うのは使い捨ての帳票が大半だろうし>>280は全然違うものを想像してそう。

293:デフォルトの名無しさん
18/09/22 02:24:34.84 FJlDOW+X.net
お前ら本当にもっと会社の利益になる事を頑張ってくれよ
やらせてるのは女の子がやる様な簡単な仕事なんだからこんなどーでも良い大して役に立たないVBAなんかに時間を使わずに他の人を手伝うとかちゃんと勤務中は仕事してね
分かったね?

294:デフォルトの名無しさん
18/09/22 07:40:51.79 z7BGc1C3.net
自作のワークシート関数作るとエラー処理とか面倒
特にエクセルの柔軟すぎる型変換は予想しない結果になってしまう
>>283
君はまずハローワークに行こうな

295:デフォルトの名無しさん
18/09/22 08:08:03.84 T/6XWx9j.net
>>283
老害かな

296:デフォルトの名無しさん
18/09/22 09:49:40.55 /LVptLz+.net
>>282
使い捨て帳票ならそれこそ手入力で十分
デザインするついでにデータも入れればいい
プログラムするものは何度も繰り返し出力するもの、何人もの社員が出力するものだ
そういうのは先ほどレスした理由でセル参照を使ったほうがいい

297:デフォルトの名無しさん
18/09/22 09:55:14.40 MP8LoRbH.net
質問です
パワーシェルって.Net Freamworkの寄生虫みたいなもので
単体だとただのシェルと変わらないって本当です?

298:デフォルトの名無しさん
18/09/22 09:58:32.80 WimPZWqW.net
VBAがOffice製品の寄生虫なのと一緒

299:デフォルトの名無しさん
18/09/22 11:14:47.29 KDDLtPfl.net
VBAは個々の重いOfficeアプリを起動しないと動かせないけどPowerShellはIDEでも普通のPSコンソールでもPSだけでサクサク動かせるからそこが違う

300:デフォルトの名無しさん
18/09/22 11:36:15.01 mc091pM3.net
PowerShell自体がたかがコマンドラインシェルのくせに起動ゲロ遅いから目糞鼻糞

301:デフォルトの名無しさん
18/09/22 11:38:46.45 CkoNNNs2.net
Cmdプロの人の嫉妬かな

302:デフォルトの名無しさん
18/09/22 11:55:38.81 mc091pM3.net
使ってるよ?
最近はだいたいbashで済ませてるけど

303:デフォルトの名無しさん
18/09/22 21:13:08.35 +NSfHsNE.net
質問です。
ソルバー 機能をvbaで使ってるんだけど、目的や制約をセルを対象じゃなく、vba内の変数に対して適用したいんだけど不可能?

304:デフォルトの名無しさん
18/09/22 22:34:22.71 96L85sWt.net
>>281
クッソダサいしなんちゃってmapだけど文字列で渡してる
=MAP(A1:A10,”$$*EXP($$)”)
みたいな感じで

305:デフォルトの名無しさん
18/09/22 23:03:40.40 iO7YjT3j.net
「=SUM(A1:A10)」のようにSUM関数の引数に計算範囲をして合計値を表示したあとで
その計算範囲のセルの値を書き換えた場合に合計値が更新されないことがあるのですがなぜでしょうか?
そのあと値を書き換えたセルでF2を押して入力状態にし、そのままエンターを押すとようやく合計値が更新されます。

306:デフォルトの名無しさん
18/09/22 23:53:28.61 niETRueG.net
>>295
自動再計算が手動になっているのでは?

307:デフォルトの名無しさん
18/09/23 13:25:57.01 6+b91Fhf.net
>>279
是非使いたいから公開してよ

308:デフォルトの名無しさん
18/09/23 15:33:34.28 aZjrg24v.net
>>254
似たようなことやってる。
ユーザー定義関数じゃないけど昔のAPIビューアをドッカブルにした奴をVB.netで作って使ってる。

309:デフォルトの名無しさん
18/09/23 15:35:54.14 aZjrg24v.net
>>258
ただ、ワークシート関数は重くなる場合もあるし自分は敬遠する傾向だな。
でも一長一短でワークシート関数の方が良い場合も当然ある。

310:デフォルトの名無しさん
18/09/23 15:38:28.44 aZjrg24v.net
>>260
バカ丸出しだなあ。
あのね、それで使う側にとって何が良くなるの?
そこを語るべきだろ。
それが納得できるような話が今まで殆ど語られたことがない。

311:デフォルトの名無しさん
18/09/23 15:47:46.09 aZjrg24v.net
>>269
何度言っても分からない人だねえ。
エクセルのファイル作るだけなら何使っても良い。
別にVBAが有利なことも無い。
逆にファイル開いた状態から動かす時は1ファイルで済むVBAが有利だろう。
だからVBAの話題になってるこのスレなんかもメインはそういうVBA有利な場面の話なんだよ。
実際、VBA不利な場面なんていくらでも知ってるけど、不思議とアンチの言葉とは丸っきり被らない。
アンチの言葉は全く説得力がない。
被れば、こっちも「確かに」となる筈なんだけどね。

312:デフォルトの名無しさん
18/09/23 16:04:30.67 xERBcwZj.net
まーた1ファイル論争になってるのか、もう神学論争だよねこれ
VBA以外の言語でもCOMオブジェクトとしてアクティブなブックを操作できるわけだし、想定ユーザーのスキルレベルや運用条


313:件や処理の内容によってVBAを使うべきか使わなくても良いかの判断なんて変わってくるでしょ



314:デフォルトの名無しさん
18/09/23 16:04:32.08 9e4CRvDY.net
大将、ドーナッツ一丁!

315:デフォルトの名無しさん
18/09/23 16:30:52.15 H5quPExp.net
自分の場合はそもそもエクセルを開いた状態で動かしたいプログラムというのがあまり無いです
VBAを普段使いしているひとはどういう用途・目的でエクセルを開いた状態でマクロを使っているのでしょうか?

316:デフォルトの名無しさん
18/09/23 16:46:09.55 yOUnCcQA.net
つまりVBAなんて必要ないって事だよね
そんなクソ言語を覚える意味ないもんな

317:デフォルトの名無しさん
18/09/23 16:49:36.19 aZjrg24v.net
>>302
だから、それはそもそも何の言語でも良い話だろ。
VBAのスレなんだからVBA有利な話になるのが当たり前なんだよ。
だから1ファイルの話になるのが当然なの。
何で当たり前のことも出来ない話をしなきゃならんのかって話。

318:デフォルトの名無しさん
18/09/23 16:54:56.19 aZjrg24v.net
>>304
それはそもそもVBAである必要の無い話だろうに。
何でこのスレに来てるんだということになる。
こっちは殆どブック開いた状態が基本だよ。
だから最初から噛み合わない。
CSVなら分かるけどExcelのブックは開いて人の判断なりを使って何かするのが基本。
じゃなかったらそもそも人間が理解出来る表である必要もなく、単なるバイナリのデータで良いわけだ。

319:デフォルトの名無しさん
18/09/23 16:59:47.48 xERBcwZj.net
落ち着こうや、常にVBAが有利なわけじゃないよねって言っただけだぞ

320:デフォルトの名無しさん
18/09/23 17:00:28.44 9e4CRvDY.net
みんながみんなそういう狭い世界で生きてるわけじゃない
キミのエクセルに対する姿勢はそうだってだけで
他の人は閉じた状態でもエクセルを扱う、
複数のファイルを扱う、エクセル以外との連携もする
その前提は崩しちゃいかんと思うのよ

321:デフォルトの名無しさん
18/09/23 17:04:15.89 0vXeudiz.net
みんながエクセル使えないわけやないんやでw

322:デフォルトの名無しさん
18/09/23 17:06:10.83 bxERXRN+.net
だからさー、、、、話し相手が居ない淋しいプログラマの皆さんは、プログラ「ム」板のExcel VBAスレはなく
上にあるプログラマー板のどっかそういうスレで話し相手探せっつーの
それすら判らんようになってんのかいな。
ここで思いっきりマウンティングしたいというか、ここでないとマウンティング出来ないのは判るけどさー

323:デフォルトの名無しさん
18/09/23 17:08:31.58 xERBcwZj.net
このスレに来る目的とかVBAに対して取るべき態度とかそんなの人の勝手じゃんよ

324:デフォルトの名無しさん
18/09/23 17:11:49.59 aZjrg24v.net
>>309
違うっちゅうの。
閉じた状態でブック触るならそもそも何の言語でも良いし、というよりむしろVBAは不利なんじゃないの?
じゃあ、何でVBAのスレが有るかと言えばそれは開いた状態で何かする話をしたいからだろ。
そりゃ、VBAだってある程度は汎用的に使えるから閉じた状態からVBAでどうにかする話題が有っても良いけどメインじゃないでしょ。

325:デフォルトの名無しさん
18/09/23 17:15:40.69 xERBcwZj.net
C#とかでCOM経由でエクセル触る前提だけどエクセルのオブジェクトモデルについてだけ質問したいと思った人がこっちに来る可能性だって十分あるんだよなぁ

326:デフォルトの名無しさん
18/09/23 17:16:23.42 0vXeudiz.net
ガキかいなw
そもそもvbaがいらない場面でvba使おうとして、あげくの果てにvbaが有利やないとか
訳わからん事言いだすプロさんがおると質問が収束せんねんw
端的に言って迷惑やねんプロさんw
>>312おまえの事やでw

327:デフォルトの名無しさん
18/09/23 17:50:56.48 icVHbGJq.net
自演で荒らすのはよくないよPyキチ君

328:デフォルトの名無しさん
18/09/23 18:06:38.73 cRG95Xcq.net
vbaとrubyはイロイロと空気がにてる
ゴミっぷりも似てる

329:デフォルトの名無しさん
18/09/23 18:07:15.36 cRG95Xcq.net
エクセルは優秀な表計算ソフトウェア
コレは間違いない
しかしエクセルのオマケ機能のvbaはウンコ
コレは間違いない

330:デフォルトの名無しさん
18/09/23 18:09:15.69 H5quPExp.net
>>307



331:キいませんあなたが何を言いたいのかよくわかりません ブックを開いた状態から起動するマクロで有用な具体例はなにかありませんか? 抽象的な答えでごまかそうとしてませんか?



332:デフォルトの名無しさん
18/09/23 18:31:08.96 RgL9otrm.net
ハンカクでまた別人アピールしてるの?
いい加減に板を荒らすのは止めな

333:デフォルトの名無しさん
18/09/24 00:45:26.83 LqyRy1HC.net
ちょっと質問です。
とあるコードで
If 条件1 Then
MsgBox "メッセージ1"
End
ElseIf 条件2 Then
MsgBox "メッセージ2"
End
Else
End If
という記述を見たんですけど、Ifの中でEnd使うことってあるんですか?
やってる内容は
If 条件1 Then
MsgBox "メッセージ1"
End If
If 条件2 Then
MsgBox "メッセージ2"
End If
と同じなのかなと思ったんですけど、ご存知の方御教示頂ければ幸いです。

334:デフォルトの名無しさん
18/09/24 00:51:36.52 cyCxPH/A.net
>>321
Endのことはさておき、そのふたつのコードの意味は異なるよ

335:デフォルトの名無しさん
18/09/24 01:02:46.39 LqyRy1HC.net
>>322
本来意味が異なるのは分かるんですが、処理内容がそんな感じだったのでEndにはそういった意味があるのかな?と思って質問した次第です。

336:デフォルトの名無しさん
18/09/24 01:54:26.03 GrunNCaI.net
>>321
全く意味が違う。END使ったらプログラムが強制終了されてしまう。絶対に使うべきではない。
Sub main1()
Call sub1(True, True)
MsgBox "main終了"
End Sub
Sub sub1(条件1 As Boolean, 条件2 As Boolean)
If 条件1 Then
MsgBox "メッセージ1"
End
ElseIf 条件2 Then
MsgBox "メッセージ2"
End
Else
End If
End Sub
'結果:メッセージ1しか出ない
Sub main2()
Call sub2(True, True)
MsgBox "main2終了"
End Sub
Sub sub2(条件1 As Boolean, 条件2 As Boolean)
If 条件1 Then
MsgBox "メッセージ1"
End If
If 条件2 Then
MsgBox "メッセージ2"
End If
End Sub
'結果:メッセージ1、メッセージ2、main終了

337:デフォルトの名無しさん
18/09/24 03:08:18.87 3gV95ADu.net
Exit Sub とか Exit Function とかと違って、呼び出し元のプロシージャに返ることもなく一切のプログラムがそこで終了するコードってことだ。
Ifの中でEndを使うことがあるのかと訊かれれば、文法上は問題ないが俺だったら使わん。
もっとも、「早く返す」や「早く終了する」を追い求めたその人なりの結果かもしれんので、見かけたとしても内容次第で、問題のあるコードでなければとやかくは言わない。

338:デフォルトの名無しさん
18/09/24 05:43:58.48 sHYzq55w.net
>>321
Endステートメントを使うと、単にコードの実行が止まるだけでなくアプリケーションで保持していた全ての変数の値がリセットされ、アプリケーションに対する外部プロセスからの参照も遮断される
モードレス表示でフォームを表示している場合、値管理やカスタム常駐クラス使用のためにグローバル変数を使っている場合等には問題が生じるので本当に要注意

339:デフォルトの名無しさん
18/09/24 07:37:11.59 E4VB1fuR.net
状況わからんからなんとも言えんが致命的なエラー時に強制終了させるぐらいしかないと思う
>>321のコードは微妙にそう言うコード片な感じもするし

340:デフォルトの名無しさん
18/09/24 09:12:46.29 ALTh+r7C.net
>>321
多分エラーメッセージの後、後続処理をやりたくないのでendって書いたんだろう
exit subで抜けても呼び元に帰って続行するから

341:デフォルトの名無しさん
18/09/24 09:24:57.98 LqyRy1HC.net
皆さまありがとうございます。
ちゃんと読んでみたら終了するコードでした…お恥ずかしい…
今後質問する際は頭をリフレッシュさせて読み直してからに致します。
ご迷惑をお掛けしました。ありがとうございました!

342:デフォルトの名無しさん
18/09/24 09:47:07.47 ltYXr3cK.net
psやらrubyやら喚き叫ぶバカよりは良い w

343:デフォルトの名無しさん
18/09/24 10:16:18.94 Z99vN/yN.net
>>329
ところで
If 条件1 Then
 ・・・
ElseIf 条件2 Then
 ・・・
End If

If 条件1 Then
 ・・・
End If
If 条件2 Then



344: ・・・ End If では意味が違ってくるのはわかってますか?



345:デフォルトの名無しさん
18/09/24 10:25:02.72 oCpujaFY.net
周回遅れなアホ質問要らん

346:デフォルトの名無しさん
18/09/24 10:26:57.24 Z99vN/yN.net
>>332
いや、>>323のレスを見ると不安になるだろ

347:デフォルトの名無しさん
18/09/24 10:34:31.82 LqyRy1HC.net
>>331
ほんと何処に目をつけていたのか自分でも分からなくてお恥ずかしい限りですがElseの意味は分かっています。申し訳ないです…

348:デフォルトの名無しさん
18/09/24 12:24:14.30 0AspGVrS.net
>>334
訊かれてるのは ElseIf の意味だぞ

349:デフォルトの名無しさん
18/09/24 12:47:03.05 3gV95ADu.net
質問(した方が逆に質問される)スレ

350:デフォルトの名無しさん
18/09/24 16:16:37.08 Z99vN/yN.net
URLリンク(qiita.com)
いつもながら薄気味悪い
誰に語りかけてるんだよ?

351:デフォルトの名無しさん
18/09/24 16:35:59.07 e4NBE4Fp.net
>>319
そもそもの考え方が違うから思い付かないんだろう。
例えば日付毎の生産量を表す表とグラフが有ったとする。
表示する期間を指定することでグラフ表示が変化するプログラムが有ったとしよう。
何でそんな機能が必要かといえば、表とグラフをにらめっこして、1週間後のグラフはどうだろうという要望や判断が有るからだ。
こんな例すら思い付かないんだから知識や技術が有ってもダメプログラマーなんだろうな。

352:デフォルトの名無しさん
18/09/24 18:01:08.47 qkXKwQlD.net
荒らし本人が言ってもな

353:デフォルトの名無しさん
18/09/24 18:02:07.29 NcXWYl5J.net
>>337
webってそういうもんだよ
知らないの?何十年前の人間なの?

354:デフォルトの名無しさん
18/09/24 18:06:57.12 In5MTxMl.net
そんなのPowerShellかRubyで十分

355:デフォルトの名無しさん
18/09/24 18:20:22.67 Z99vN/yN.net
>>340
qiita VBAタグの劣化は許しがたい
そうは思わないか?

356:デフォルトの名無しさん
18/09/24 18:28:34.71 sPlVwsRd.net
>>338
どの言語でも簡単にできる上にそういうツールって今はいくらでもあるんでVBAでやる理由としてはちょっち弱いですね
これはエクセル開いた状態のVBAじゃないと絶対無理だっていう事例を知りたいです

357:デフォルトの名無しさん
18/09/24 18:32:02.32 qkXKwQlD.net
>>342
頭大丈夫か?

358:デフォルトの名無しさん
18/09/24 18:44:10.41 e4NBE4Fp.net
>>343
バーカ。
何でブックで保存するんだ?
そのファイルは結局どうするんだ?
Excelで開くんだよ。
何の為にそんなことするんだ?
業務では開いた上で人間が何らかの判断をする為だ。
そうじゃ無かったらExcelは必要ないし、人間が開く必要も無いし、ファイルもバイナリで良い筈なんだ。
開いた上で動作するものばかりである必要は無いが開いた上で作業するのが基本なんだからプログラムも開いた上で動作するのがメインなのは当たり前だろう。

359:デフォルトの名無しさん
18/09/24 18:47:21.59 sPlVwsRd.net
>>345
意味不明ですね
エクセルを開いたままVBAを使うことのメリットを納得させる決定的な具体例はまだですか?

360:デフォルトの名無しさん
18/09/24 18:48:07.49 e4NBE4Fp.net
>>343
お前の主張はExcelである必要も無い場合も含んでる。
というかその割合も多いだろう。
だからお前がここに来てるのもまったくおかしい。
絶対に無理とか

361:デフォルトの名無しさん
18/09/24 18:50:03.06 e4NBE4Fp.net
絶対に無理とかいい出したら、PC使わないと絶対無理な事例自体無くなってくるぞ。
紙とエンピツでOKという話になる。

362:デフォルトの名無しさん
18/09/24 18:51:22.73 e4NBE4Fp.net
>>346
開いて作業するのが基本。
わざわざ開かずに作業する方がおかしい。

363:デフォルトの名無しさん
18/09/24 18:52:11.10 sPlVwsRd.net
主張が支離滅裂で理解できません
エクセルを開いたままVBAを使うメリットを納得させる決定的な事例を聞いてるのですが
そのような事例は存在しないのですか?

364:デフォルトの名無しさん
18/09/24 18:52:40.76 e4NBE4Fp.net
>>346
意味不明なのはお前。
開いて作業できること自体メリットだよ。

365:デフォルトの名無しさん
18/09/24 18:53:11.09 e4NBE4Fp.net
>>350
既に説明済みだが。

366:デフォルトの名無しさん
18/09/24 18:54:30.36 sPlVwsRd.net
>>351
そのメリットを納得させる決定的な事例を聞いてるのですが
そのような事例は存在しないのですか?

367:デフォルトの名無しさん
18/09/24 18:55:55.65 e4NBE4Fp.net
そもそも


368:最初から支離滅裂なのはお前じゃないか。 じゃあ、お前はどうしても絶対にVBAではいけない事例をあげられるのか? そもそもVBAを否定する奴の主張の方が絶対どころかほとんど大した理由になってないものばかりじゃねーか。



369:デフォルトの名無しさん
18/09/24 18:56:13.26 e4NBE4Fp.net
>>353
既に説明済み。

370:デフォルトの名無しさん
18/09/24 18:57:30.40 e4NBE4Fp.net
>>353
結局、お前の主張を要約すると「VBAは嫌い」というだけだ。

371:デフォルトの名無しさん
18/09/24 19:00:43.65 NcXWYl5J.net
>>342
思わない
エクセル以外の処理をvbaで色々やるのが間違ってるんだよ
C#にでもまとめて、コマンドプロンプトで処理すればいい
もう文字コードだのお節介機能で自動変換だの疲れた
ってか、”1-1-1”を普通に取り込めないとかもうウンコofウンコすぎてしんどい

372:デフォルトの名無しさん
18/09/24 19:01:15.42 sPlVwsRd.net
>>354
いけないということはないですが楽で効果的な手法があるなら常識的に考えてそちらを使うのが自然ですよね
あえて非効率な方法を選ぶならそれなりの理由が有るはずです
その理由とそれを納得させるような事例を知りたいのです
ただ単にその事例に興味があります

373:デフォルトの名無しさん
18/09/24 19:05:58.04 e4NBE4Fp.net
>>358
自然w
頭の悪さが滲み出てるわw
よくそんなこっぱずかしいことが言えるな。
Excelのブックは開いた状態で作業するのが「自然」なんだからお前の主張に則ればVBAが一番有利という結論だな。

374:デフォルトの名無しさん
18/09/24 19:08:11.84 e4NBE4Fp.net
自然などと書けばこういう突っ込みが来ることも想像出来ないんだから話にならない。

375:デフォルトの名無しさん
18/09/24 19:09:15.54 sPlVwsRd.net
>>359
エクセルを開いたままVBAを使うことが他の言語やツールと比べてメリットがあると納得させる事例は存在しないのですか?

376:デフォルトの名無しさん
18/09/24 19:11:39.15 GrunNCaI.net
>>358
使うのに必要なスキルが極めて少ない

377:デフォルトの名無しさん
18/09/24 19:16:37.23 sPlVwsRd.net
答え無しですが時間がもったいないのでこの辺りで切り上げましょうか

378:デフォルトの名無しさん
18/09/24 19:19:46.76 e4NBE4Fp.net
人には絶対を求める癖に自分は自然ですます。
いったい、どういう頭の構造になってるんだろう。

379:デフォルトの名無しさん
18/09/24 19:54:15.09 Z99vN/yN.net
そもそも俺はVBAの言語仕様がなかなか良いと思ってるんだが
そういう前提に立つ人間は少ないのかな?

380:デフォルトの名無しさん
18/09/24 20:14:30.52 Go3cawEH.net
>>365
ジョークとか皮肉で言ってる?
ちょっとよくわからないんだけど

381:デフォルトの名無しさん
18/09/24 20:14:49.56 8Eg6qm1l.net
20年間COBOLとPL/Iをメインでやってきた人が、「VBAは良い。生産性がとても優れている。」と言っていた
まあ人それぞれということだ

382:デフォルトの名無しさん
18/09/24 20:15:16.80 Z99vN/yN.net
>>366

383:デフォルトの名無しさん
18/09/24 20:16:36.26 Z99vN/yN.net
>>366
なぜ皮肉だと?
「とても良い」とまでは言わないが、そこそこ良い言語仕様じゃないか。
そう思う人間も多いだろう。

384:デフォルトの名無しさん
18/09/24 20:18:56.67 E4VB1fuR.net
>>365
言語仕様は基本VB6なので当時としてはよくできてた
でもさすがに20年も経つと色々見劣りするところが出てくるわけで

385:デフォルトの名無しさん
18/09/24 20:25:47.99 3gV95ADu.net
>>337
気にしてもハゲるだけなんじゃねーの
>>364
閉じた業務系でVBAと肉入り以外の選択肢を潰されてやむを得ずVBA触った俺みたいな変人もいるし、
まぁその手の固定観念でもあるか、あるいは構ってちゃんなだけじゃねーの

386:デフォルトの名無しさん
18/09/24 20:27:32.35 Z99vN/yN.net
>>370
それはもちろんそうだが、それによって致命的に使いにくくなっているわけじゃないしな。
なんか上の方の議論が「使いにくい言語をあえて使う理由は何なの?」みたいなノリで、
言語として使いにくいことが前提みたいになってる点が気になった。
「VBAは十分使いやすい言語だ」という前提を下ろすつもりのない人間もいるわけで。

387:デフォルトの名無しさん
18/09/24 20:27:41.54 vr3+WUA5


388:.net



389:デフォルトの名無しさん
18/09/24 20:28:51.56 5zI+X6hO.net
>>370
当時からガチ勢と比べれば見劣りすることだらけだったわw何知ったかしとんねんプロさんwwww

390:デフォルトの名無しさん
18/09/24 20:48:27.78 E4VB1fuR.net
>>372
使い易さなんて他の言語との相対的なもの
他の言語の便利機能知ってしまったらあの機能もないのか…とかこの機能があれば…ってなるのはしょうがない
>>374
はいはい w

391:デフォルトの名無しさん
18/09/24 20:54:52.18 5zI+X6hO.net
>>375
うむ、バカはしゃべらん方がよろしいw

392:デフォルトの名無しさん
18/09/24 21:28:35.65 Hov49HPU.net
くだらない言い合いでスレ伸びまくりで草

393:デフォルトの名無しさん
18/09/24 21:48:48.21 GrunNCaI.net
エクセルVBAは(ユーザーの)エクセルの操作を支援する場面において無類の力を発揮する。
しかしちょっと込み入った処理をしようとすると近代的な言語で書きたくなることは確かにある。
そこで質問です。
エクセル上でボタンを押す
→VBAでイベントを受ける
→外部プログラムにSelectionを渡す
→Selection(Range)を元に処理を実行
→処理結果を二次元配列データでVBAで受け取る
→VBAでデータを加工する。
→ワークシートにデータを書き出す。
尚、本エクセルは共有フォルダ上において複数名が交代で使用する。
こういったことがしたい場合何で書いたらいい?C#?PowerShell?
既存のVBAも活かしたいので、全部C#とかに一新しろっていう回答は無しでお願い。

394:デフォルトの名無しさん
18/09/24 21:53:45.14 QDf0aD0O.net
VSTOでアドオンだな
VBA資産とかいうゴミは捨ててC#で一新しよう

395:デフォルトの名無しさん
18/09/24 21:56:06.10 NcXWYl5J.net
>>378
csvか何かに吐き出せばどんな言語でも処理できるっしょ
ってかその程度ならvbaで頑張るわ

396:デフォルトの名無しさん
18/09/24 22:02:20.31 Z99vN/yN.net
>>378
> →Selection(Range)を元に処理を実行
> →処理結果を二次元配列データでVBAで受け取る
この2点からしてVBAで完結する案件
最初からRange→配列にして処理すればいいからね

397:デフォルトの名無しさん
18/09/24 22:19:41.01 GrunNCaI.net
>>380,381
シンプルに書きすぎた。
たとえばSelectionの中身がファイルのパスで、そのファイルが複雑なデータ形式(たとえばAutoCAD dwg)を外部プログラムで解読したいとする。
(VBAのクラス関連の機能がショボすぎて無理だったので、前にC#で書いたものがある)
これをVBAから呼び出して使いたいってこと。
諸事情によりエクセルブックと同じフォルダにps1なりdllを置く必要があって、これを呼び出せると助かる。

398:デフォルトの名無しさん
18/09/24 22:24:01.34 Z99vN/yN.net
>>382
じゃあSelectionとか関係なくファイルパスを引数にするDLLを書いてVBAから呼び出せばいいじゃん。
VBA側では
ByVal path As String


399:デフォルトの名無しさん
18/09/24 22:34:16.30 Z99vN/yN.net
>>382
まあCだと諸般の事情から文字列を渡す場合でも
ByVal path As Stringじゃなくて
ByRef path As Varian ってインタフェースがいいわけですが
C#だと知らん

400:デフォルトの名無しさん
18/09/24 22:44:58.17 sPlVwsRd.net
>>378
VBA->C#(COM)->PowerShell->(PS, C#, CMD, VBS, etc.)

401:デフォルトの名無しさん
18/09/24 23:06:47.65 GrunNCaI.net
>>383,384,385
同じフォルダのDLLを呼ぶように出来るの?
COM使うとしたらregasmが必要になるらしいけど・・・
ネットワーク共有フォルダ上のは設定出来ないのでは?
あ、遅延バインディングで出来るんだろうか

402:デフォルトの名無しさん
18/09/24 23:17:50.47 Z99vN/yN.net
>>3


403:86 自作DLLをVBAから呼ぶっていう単純な話だよね? 別にどんなフォルダにあろうと関係ないけど。 あとSelectionそのものじゃなくて配列化したデータを渡すんだったらCOMなんていらなくて WIN32APIだけでできる。



404:デフォルトの名無しさん
18/09/24 23:30:05.56 3gV95ADu.net
要はCADデータからメタ情報を抽出して、できればExcel形式で一覧化したい系の?

405:デフォルトの名無しさん
18/09/24 23:46:24.03 GrunNCaI.net
>>387
そうだね。.NET系のDLLの関数を使いたい系。
COM登録せずに呼び出す方法あるのか。
参考URLとかもらえないだろうか。
>>388
メタ情報じゃないかなー図形情報の位置関係から特定の情報だけリストアップしてる。
まぁ例だからこれに限った話じゃないのだけど、VBAで書き直すのは無理ゲーすぎる。

406:388
18/09/25 01:06:10.25 s1AsV/RM.net
>>389
確かにそれだと自作DLLぐらいしか解決策なさそうだな。
んで、C#で書いた.NET系のDLLの関数をRegAsm使わないで呼び出したいと・・・悪いけど正直やったことない。
が、DLLをEXCEL.EXEと同じ所に置けるなら↓の方法が使えるかもしれない。
URLリンク(www.ka-net.org)
全然見当違いだったら申し訳ないが。

407:デフォルトの名無しさん
18/09/25 18:07:06.26 HENVIdME.net
フォームにオプションボタン1,2,3、リストボックス1,2,3を設置
オプションボタン2にチェックがあるとき、リストボックス2表示、リストボックス1,3は非表示
という具合に、オプションボタンにチェックがあるときに対応するリストボックスを表示、それ以外を非表示にしたいです
Private Sub UserForm_Activate()
If OptionButton1.Value = True Then
ListBox1.Visible = True
ListBox2.Visible = False
ListBox3.Visible = False
ElseIf OptionButton2.Value = True Then
ListBox1.Visible = False
ListBox2.Visible = True
ListBox3.Visible = False
ElseIf OptionButton3.Value = True Then
省略
end if
と書いてみたのですが、リストボックスの表示、非表示をコントロールできません
どうすればいいでしょうか

408:デフォルトの名無しさん
18/09/25 18:25:16.89 Rh4u2+TF.net
>>386
プロフェッショナルなら可能

409:デフォルトの名無しさん
18/09/25 18:35:56.01 quZOCI3i.net
>>391
オプションボタンのクリックイベントに書かないと動かなくて当然

410:デフォルトの名無しさん
18/09/25 19:09:20.22 5hhJfzHj.net
>>389
まず、そのDLLはCOMなのか、通常の呼び出し用なのか、.NET用なのか
COMなら参照設定なりCreateObjectなりで
通常のDLLならDeclare Function(SUB)で呼び出せば良いだけ
.NETのDLLは.NET以外から呼び出すのは難しいので、素直にCOM公開する方が楽

まあその相手方(たとえばAutoCAD?)がCOM公開してくれるのが一番楽だろうけど

411:デフォルトの名無しさん
18/09/25 19:09:27.10 HENVIdME.net
>>393
あーそうでした!お恥ずかしい
ありがとうございました

412:デフォルトの名無しさん
18/09/25 19:15:41.25 SdejvHFK.net
すみません、切実に助けて頂きたいです。
現在、VBAからoracle12cにado接続してデータアップデートを行う処理を作成しています。
ですが、更新はうまく行くのですが、なぜか処理件数がどうしても0になってしまいます。
何時間も色んなサイトを参考にしたり、したのですが、ダメで…
色々なサイトにあるソースをコピペして接続先やテーブル名のみ変えて貼ったりもしてみましたが、実行するとやはり更新はされるのに処理件数が取得できません。
もう自分ではどうすることも出来ず、どなたか助けて下さい…お願いいたします。

413:デフォルトの名無しさん
18/09/25 20:31:14.47 ObO6oAGo.net
>>396
どうやって取ろうとしている?

414:デフォルトの名無しさん
18/09/25 20:41:07.98 /T1GixS7


415:.net



416:デフォルトの名無しさん
18/09/26 00:30:33.04 17jq3B2z.net
WinScard API使ってリーダーに設置したカードのIDmをセルに入力させたいのですが、うまく機能しません。
サンプルコードがありましたらご教示願います。

417:デフォルトの名無しさん
18/09/26 01:13:21.41 6OKvzXmf.net
>>396
プロパイダ(ドライバ)によってはレコード件数返さん奴があったはず
一回プロパイダ変えて試してみ
最悪は更新と同じ条件のselect投げて件数取得してから更新かけれ

418:396
18/09/26 09:21:14.19 rrNz/9UY.net
397、396
コマンドオブジェクトから、以下のようにしてやっていました。
com.execute(re)
comはADODB.COMMANDで、updete文を設定してあり、更新自体はうまくいきます。
reはlong型の変数です。
マニュアルのとおり、コネクションでexecuteもやってみたのですが、結果は返らず…
400
Microsoft ACTIVEX data objects 6.1を使ってみているのですが、ほかのバージョンにしてもダメでした…
ADO接続を使用する上で、必要な参照が上記以外にあるのでしょうか…

皆さんすみません、ほんとうに素人丸出しで申し訳ございません…

419:デフォルトの名無しさん
18/09/26 16:42:22.74 JgSk1Rg0.net
VBAの勉強をしようと思うのですが、まず何から始めればいいですか?教えてください。

420:デフォルトの名無しさん
18/09/26 17:05:59.73 cCj/GZBP.net
まず服を脱ぎます。

421:デフォルトの名無しさん
18/09/26 18:16:51.93 Dt06YZ+t.net
>>402
まずやりたい事を考えるといい。
最初は既存の関数の真似するプログラムでも書いて基本的な書き方を覚えるとかオススメ。
関数使えばチェックできるし。
慣れてきたら、百ます計算を作るでもいいし、ナンプレを作るでもいい。日常的にエクセルでやってる操作があるなら自動化してみるでもいい。
そのために必要なことはググれば全部出てくる。

422:デフォルトの名無しさん
18/09/26 18:45:15.00 OGb2Ur6B.net
以下二点留意すればあとはググりながら独学で大丈夫かと思います
・普通に日英両方でググっても出てこなかったら他のモダンな言語の出番だと察する癖をつける
・bufとかSub Sample1()とかobjFsoといった特徴的な表記をサンプルコードで多用しているサイトは悪いコードの見本市なので極力真似ないように今から気を付ける

423:デフォルトの名無しさん
18/09/26 19:12:00.05 +un+mAjX.net
そしておもむろに肛門にこびりついトレペかすを掃除します。

424:デフォルトの名無しさん
18/09/26 19:12:58.42 SfBrsqof.net
>>401
12cならOracle.ManagedDataAccessがオススメ

425:デフォルトの名無しさん
18/09/26 21:33:09.71 JgSk1Rg0.net
>>404
いきなり参考書から始めないほうがいいってネットに書いてありましたけど、本当ですか?

426:デフォルトの名無しさん
18/09/26 22:45:53.91 +un+mAjX.net
ネットに書いてある事を素人が真似ると最悪直腸が破裂する危険もあります。
初心者が浣腸プレイに挑戦する時は必ず上級者に直接教えてもらうようにしまちょう。

427:デフォルトの名無しさん
18/09/26 23:16:47.85 4uP8tILz.net
>>409
それ、面白いと思って書いたの?

428:デフォルトの名無しさん
18/09/26 23:17:53.84 +un+mAjX.net
>>410
面白いと思ったの?w

429:デフォルトの名無しさん
18/09/26 23:33:31.70 4uP8tILz.net
>>411
いや、微塵も
笑わせるつもりがないのなら何で書いたのかなと思って

430:デフォルトの名無しさん
18/09/26 23:35:48.77 +un+mAjX.net
>>412
じゃなんで面白いと思ったの?って書いたの?w

431:デフォルトの名無しさん
18/09/26 23:48:40.23 4uP8tILz.net
>>413
滑ってるようにしか見えなかったから

432:デフォルトの名無しさん
18/09/27 08:01:55.54 99b9Jx0M.net
>>414
結局おまえが盛大にスベっとるやんw恥をしれw

433:デフォルトの名無しさん
18/09/27 08:16:20.10 zQmuEMQe.net
>>408
画面で一行ごとの動きを見ながら勉強した方が解説読むより理解しやすい。タイピングする時間も解説を読む時間も無駄。

434:デフォルトの名無しさん
18/09/27 12:17:06.67 UAsp+BRN.net
>>402
まず入門書かって読めばいいんじゃね

435:デフォルトの名無しさん
18/09/27 12:26:33.91 UAsp+BRN.net
勉強のやり方をを勉強しないと勉強できないとか

436:デフォルトの名無しさん
18/09/27 21:40:20.96 hL85+V3Z.net
URLリンク(i.imgur.com)
どうしても必要で困っています
どなたか詳しい方がいらっしゃったら作成をお願いします。

437:デフォルトの名無しさん
18/09/27 21:48:20.24 qqpzpvHf.net
>>419
SUMIFSで出来ると思うよ。
VBA使うにしてもSUMIFSを使うのが効率の良いやり方だと思う。

438:デフォルトの名無しさん
18/09/27 21:54:42.81 MgIWwOWH.net
>>419
サンプルデータあげてくれれば作るよ
そのファイルの上から30行くれ
まぁやることは
JAN & 有効期限 & ロット番号の作業列作ってピボットに突っ込むだけだけどな

439:デフォルトの名無しさん
18/09/27 21:55:15.47 hL85+V3Z.net
>>420
ありがとうございます。
ググってその関数を見つけたのですが、どう記述したら実現出来るのかが分からなくて…

440:デフォルトの名無しさん
18/09/27 21:56:35.93 hL85+V3Z.net
>>421
サンプルデータってどこにどうやってアップロードすればいいですか??

441:デフォルトの名無しさん
18/09/27 22:10:56.58 pq96CSzd.net
普通にデータソースをそのブックのシートにして
SQL書けばきっと簡単にできる
VBAなんか不要

442:デフォルトの名無しさん
18/09/27 22:19:36.54 MgIWwOWH.net
>>423
URLリンク(fast-uploader.com)
「ファイルを選択」
「アップロード開始」
これが出来ないなら流石に何もしない

443:デフォルトの名無しさん
18/09/27 22:21:31.13 hL85+V3Z.net
>>425
URLリンク(fast-uploader.com)

444:デフォルトの名無しさん
18/09/27 22:22:48.42 hL85+V3Z.net
>>425
ありがとうございます。
426のコメントでアップロードしています。
ご確認ください(^-^)

445:デフォルトの名無しさん
18/09/27 22:30:26.82 pq96CSzd.net
URLリンク(i.imgur.com)
sheet1
URLリンク(i.imgur.com)
sheet2
※ sheet2にsheet1の結果を抽出
↓この抽出結果
SELECT min(`Sheet1$`.aho) , sum(`Sheet1$`.baka) , min(`Sheet1$`.じゃま)
FROM `himistu\baka.xlsx`.`Sheet1$` `Sheet1$`
group by `Sheet1$`.aho

446:デフォルトの名無しさん
18/09/27 22:48:24.69 pq96CSzd.net
URLリンク(fast-uploader.com)
完成

447:デフォルトの名無しさん
18/09/27 22:54:14.35 MgIWwOWH.net
>>429
間違ってない?
ユーロジンが一つになっている

448:デフォルトの名無しさん
18/09/27 23:00:45.54 hL85+V3Z.net
>>429
早速の作成ありがとうございます。
私の伝え方が不十分だったかも知れませんが、430のコメントの通りです。
お時間があれば修正していただけると助かります。

449:デフォルトの名無しさん
18/09/27 23:03:47.01 pq96CSzd.net
URLリンク(fast-uploader.com)
よしなおした

450:デフォルトの名無しさん
18/09/27 23:06:15.22 hL85+V3Z.net
>>432
ありがとうございます。
ちなみに、新たにデータを作成するのですが、そのデータに対して処理するにはどのようにすればよいですか??

451:デフォルトの名無しさん
18/09/27 23:09:53.34 MgIWwOWH.net
あら負けた
URLリンク(fast-uploader.com)
ピボットで表みたいにするやり方がわからんかったわ

452:デフォルトの名無しさん
18/09/27 23:14:28.37 pq96CSzd.net
↓セパゾン錠2を100個追加
URLリンク(i.imgur.com)


453:jOe.png ↓[データ]タブ→[すべて更新]押下 https://i.imgur.com/mSvw0XM.png セパゾン錠2が155個になってる カンペキ



454:デフォルトの名無しさん
18/09/27 23:23:57.47 MgIWwOWH.net
>>423
この集計、どうやって作ったか教えて下さい!
テーブル作る所までしかわかりませんでした

455:デフォルトの名無しさん
18/09/27 23:43:17.54 pq96CSzd.net
新規に作成したい場合
[データ]タブ → [その他のデータソース] → [Microsoft Query]
 ↓
Excel Files
 ↓
このファイル
 ↓
Sheet1$ > → 次へ → 次へ → 次へ → 。。。クエリの編集を行う → 完了
 ↓
SQL
 ↓
SELECT `Sheet1$`.YJコード, Sum(`Sheet1$`.前月末在庫数), Min(`Sheet1$`.前月末評価単価), Min(`Sheet1$`.薬品名), Min(`Sheet1$`.単位名), Min(`Sheet1$`.薬価), Min(`Sheet1$`.通常仕入れ先コード),
Min(`Sheet1$`.発注点), Min(`Sheet1$`.JANコード), Min(`Sheet1$`.棚番1), Min(`Sheet1$`.棚番2), Min(`Sheet1$`.枝番), Min(`Sheet1$`.包装名称), `Sheet1$`.有効期限, `Sheet1$`.ロット番号
FROM `ひみつ\サンプルデータ.xlsx`.`Sheet1$` `Sheet1$`
GROUP BY `Sheet1$`.YJコード, `Sheet1$`.有効期限, `Sheet1$`.ロット番号
 ↓
[ファイル] → Microsoft Office Excelにデータを返す
コレでイケル
一件落着

456:デフォルトの名無しさん
18/09/27 23:56:33.07 MgIWwOWH.net
>>437
ありがとー!

457:デフォルトの名無しさん
18/09/27 23:57:51.93 MgIWwOWH.net
エクセルって自分自身をソースにしてSQL発行なんてできたのか・・・
凄すぎて泣けてきた。もっと早く知りたかったな

458:デフォルトの名無しさん
18/09/28 00:15:50.74 h9+2U6ZR.net
>>437
作成を依頼したものです。
まだ詳しく確認できていませんが、色々とスピーディーに対応していただきありがとうございます。

459:デフォルトの名無しさん
18/09/28 04:54:48.92 7Dx3JKmZ.net
よくこんな馬鹿を相手にするな

460:デフォルトの名無しさん
18/09/28 07:18:03.33 3N0zeARs.net
以上、無能の自己紹介でした

461:デフォルトの名無しさん
18/09/28 09:03:04.35 zkBwEOAZ.net
なんちゃってマップはどうなった

462:デフォルトの名無しさん
18/09/28 18:29:54.42 AnMtzl3w.net
>>442
悔しいか、屑

463:デフォルトの名無しさん
18/09/28 19:43:53.67 3N0zeARs.net
>>444
おっ!
天才様の登場だ~~~www

464:デフォルトの名無しさん
18/09/28 21:17:46.20 k5h2WtG4.net
やっぱりな
この板で役に立つレスは
オレしかしてない

465:デフォルトの名無しさん
18/09/28 21:26:48.63 mtesGZvP.net
天才様ドーナツ作って

466:デフォルトの名無しさん
18/09/28 23:16:32.45 AJk9wJBe.net
>>446
でもお前、VBAしか出来ないじゃん

467:デフォルトの名無しさん
18/09/29 16:35:28.06 V4hAUMop.net
>>432
Excel2010じゃ動かないんですかね

468:デフォルトの名無しさん
18/09/29 17:27:14.21 IuTgmxg/.net
1. サンプルデータ.xlsxをダウソ(>>426
2. aho.dqyをダウソ(URLリンク(fast-uploader.com)
3. aho.dqyをテキストエディタで開く
4. aho.dqyの【ひみつ】をサンプルデータ.xlsxがあるディレクトリフルパスに置換
5. aho.dqyをダブルクリック
コレでイケル
バカでもチョンでもイケル
>>432はExcel2010がダメなワケじゃない
知能が著しく低いヤツには動くようにはできない

469:デフォルトの名無しさん
18/09/29 20:04:17.86 m1u3SrFL.net
だが気をつけて欲しい
Jet 4.0 は64bit版には対応していない

470:デフォルトの名無しさん
18/09/29 20:04:56.48 UGjn5ihf.net
久々に覗いたらなんじゃこりゃ・・・質問した人、理解できてるのか? これ。
まぁ理解できるならSQLでもいいだろうけどさ。
>>440
開業医んとこか薬局んとこか分からないけど・・・まぁその、お疲れ様。
とりあえず分からないようなら他の解決策もあるのでその旨言ってね。

471:デフォルトの名無しさん
18/09/29 20:12:30.98 UGjn5ihf.net
>>440
ついでに。
>元の在庫管理データっぽいの



472:白lであった方が良い部分が文字列として入力されてる。問題なければそのままで良いけど。 それより、有効期限とロットNo.が空欄の薬剤があるけど大丈夫? たぶんデータの取り出し方の問題か何かだと思うけど。 >SQL 作ってくれた人には申し訳ないけど、JANコードじゃなくてYJコードで集計しちゃってるので一応注意。 まぁどっちでも大して変わらないんだけど。



473:デフォルトの名無しさん
18/09/29 23:48:20.58 IuTgmxg/.net
aho.dqyの抽出問合せを修正すれば(①~③の箇所を修正)すぐに修正できる
(修正前)
SELECT aho.YJコード, ①
  Sum(aho.前月末在庫数),
  Min(aho.前月末評価単価),
  Min(aho.薬品名),
  Min(aho.単位名),
  Min(aho.薬価),
  Min(aho.通常仕入れ先コード),
  Min(aho.発注点),
  Min(aho.JANコード), ②
  Min(aho.棚番1),
  Min(aho.棚番2),
  Min(aho.枝番),
  Min(aho.包装名称),
  aho.有効期限,
  aho.ロット番号
FROM
  `【ひみつ】\サンプルデータ.xlsx`.`Sheet1$` aho
GROUP BY
  aho.YJコード, ③
  aho.有効期限,
  aho.ロット番号

474:デフォルトの名無しさん
18/09/29 23:50:30.45 IuTgmxg/.net
 
(修正後)
SELECT Min(aho.YJコード), ①
  Sum(aho.前月末在庫数),
  Min(aho.前月末評価単価),
  Min(aho.薬品名),
  Min(aho.単位名),
  Min(aho.薬価),
  Min(aho.通常仕入れ先コード),
  Min(aho.発注点),
  aho.JANコード, ②
  Min(aho.棚番1),
  Min(aho.棚番2),
  Min(aho.枝番),
  Min(aho.包装名称),
  aho.有効期限,
  aho.ロット番号
FROM
  `【ひみつ】\サンプルデータ.xlsx`.`Sheet1$` aho
GROUP BY
  aho.JANコード, ③
  aho.有効期限,
  aho.ロット番号

この修正で、どう集計されてるか理解できるハズ

475:デフォルトの名無しさん
18/09/30 00:00:43.46 TbDeVj+o.net
自分には理解できていても質問者が理解できているかは別

476:デフォルトの名無しさん
18/09/30 00:03:38.45 ItvcYfS7.net
>452
内容的にドラッグストアだと思う
ってか俺がドラッグストア勤務

477:デフォルトの名無しさん
18/09/30 14:48:48.37 I0OjYnSY.net
>>451
Jetの後継でACE.OLEDBってのがある
64ビット版もある
問題は、32ビット版と64ビット版の共存ができないが

478:デフォルトの名無しさん
18/09/30 17:57:31.99 3+iEwgWt.net
作成依頼のVBAです。どなたかお願いします。
フィルタオプションを使ったVBAなのですが、上手い方法がないものか・・。
用意するシート
「総合商品情報」、「抽出条件」、「denpyou」「date」「tantou」「kata」「kazu」の7つを用意
総合商品情報のA1に「伝票No.」、B1に「日付」、C1に「担当」、D1に「型番」、E1に「数量」と記載され、
そして各項の2行目以降にデータが延々と羅列されている。
そこから特定の条件の情報を抽出したい。
条件はシート「抽出条件」にある。
シート「抽出条件」のA1~E1は各項目の名前があり、
A2~E2の条件で抽出したい。
A1=「伝票No.」 A2=「1001」
B1=「日付」 B2=「2018/1/1」
C1=「担当」 C2=「山田」
D1=「型番」 D2=「A-001」
E1=「数量」 E2=「1」
抽出条件が伝票No.「1001」で抽出したデータはシート「denpyou」のA1に抽出
日付「2018/1/1」で抽出したデータはシート「date」のA1に抽出
担当「山田」で抽出したデータはシート「tantou」のA1に抽出
型番「A-001」で抽出したデータはシート「kata」のA1に抽出
数量「1」で抽出したデータはシート「kazu」のA1に抽出する。
ただし、抽出条件に記載があっても、総合商品情報には記載がない場合もある。
(※例えば、抽出条件「山田」が総合商品情報のC列にはないとか)
その場合はエラーを無視して、他のシートの抽出を実行して欲しい。
※分かりにくい説明かもしれませんが、よろしくお願いします。

479:デフォルトの名無しさん
18/09/30 18:03:15.18 FLQTI8+6.net
SQL発行すれば何とかなると思う

480:デフォルトの名無しさん
18/09/30 18:16:07.23 hh5CI8rl.net
VBAなんか使わなくても普通にVLOOKUPで一瞬でできるな

481:デフォルトの名無しさん
18/09/30 23:25:01.00 BlMeh26g.net
それ、作ってもらったとして、自分でメンテできます?

482:デフォルトの名無しさん
18/09/30 23:39:46.62 ItvcYfS7.net
vlookupと作業列でいいんじゃねって思ってしまう

483:デフォルトの名無しさん
18/09/30 23:40:53.09 aYXyCrkn.net
ああ
オレなら余裕でサクッとできるわあ
キミラ低能にコレできる?
VLOOKUPでは行は1行しかとれない
少なくともコレではできない

484:デフォルトの名無しさん
18/09/30 23:47:05.68 ItvcYfS7.net
>>459
URLリンク(fast-uploader.com)
こんな


485:漢字でしょ テキトーに作ったけど多分もんだいはないと思う



486:デフォルトの名無しさん
18/09/30 23:49:34.63 ItvcYfS7.net
>>464
自己紹介好きだねぇ
君はエクセル覚えたての中学生かなんかだと思うけど、もう少し頑張れ
これぐらいなら見た瞬間に完成図が思い浮かぶよ
vbaにするまでも無い

487:デフォルトの名無しさん
18/09/30 23:56:56.43 aYXyCrkn.net
でた、vbaしかできない低学歴知恵遅れITドカタふがいきってる

488:デフォルトの名無しさん
18/10/01 00:00:41.84 zfKNS/F/.net
で、低学歴知恵遅れは
どこにVLOOKUP使ったの?
ん? いってみ?

489:デフォルトの名無しさん
18/10/01 06:39:47.60 MCBRDKcK.net
>>468
本気で言ってるのか?

490:デフォルトの名無しさん
18/10/01 07:49:25.42 u6gUPL8M.net
sortについての質問です
レコードがあって、並び替えの基準列が例えば
0
4
1
0
5
となってたとします。これを
0
0
4
1
5
に並び替えたいのです。要は特定の値とそれ以外に分離させたいんです。
現状は行の下からループを回して、特定の値ではないならば行をカットして一番下に挿入するというコードなのですが遅いです。
なにかいい方法はないでしょうか

491:デフォルトの名無しさん
18/10/01 08:05:44.31 K7Kh8NR/.net
>>470
すべて配列に突っ込んで、配列上で並べかえてから書き換え

492:デフォルトの名無しさん
18/10/01 08:06:55.02 PpuAKpxM.net
>>470
=A1=0
の列を追加してソート

493:デフォルトの名無しさん
18/10/01 08:13:41.55 IH0VbElQ.net
>>459
うーん
VLOOKUP使えと言ってる人がいるけど
VLOOKUPは複数行に同じデータが存在したとき
最初の一つ目を取得して来るんで
キー項目が無いと厳しいんじゃね?

494:デフォルトの名無しさん
18/10/01 08:25:33.53 iFb8zFFH.net
countifと組み合せればできるよ
>>470もそうだけど、このスレ見てるとすぐVBA使いたがる人ってちょっと頭が残念なだけなのかなと思っちゃうね

495:デフォルトの名無しさん
18/10/01 09:15:58.47 oBEcQ0XA.net
そらVBAの質問スレやしな。エクセル標準機能でもいいならエクセル質問板いくやろ

496:デフォルトの名無しさん
18/10/01 10:03:52.20 H4/VTF+j.net
質問する方はね。
回答する方はVBAでやるべきかどうかと考えないのか。

497:デフォルトの名無しさん
18/10/01 10:46:30.51 bOC85JQ9.net
>>472
その発想は無かった……
なるほどbooleanに変換してしまえばいいんですね。ありがとうございました。

498:デフォルトの名無しさん
18/10/01 11:36:11.29 oBEcQ0XA.net
>>476
質問する方は関数で出来るのを承知でVBAの答えを求めていると考えてVBAでしか答えないというスタンスもある。別に関数や操作で出来ることを教えてあげる点については異論はない。そういう答え方をしたい人がそう伝えればいい

499:デフォルトの名無しさん
18/10/01 17:34:28.00 x1tycYY6.net
マクロってむかし使ったとき選択セルを基準に動いてた気がしたんだけど
今のパソコンでは違う場所で使おうとしても記憶した場所でしか動かなくなったけど

500:デフォルトの名無しさん
18/10/01 17:40:54.99 x1tycYY6.net
(選択セルでショートカットキーを押すとセルの中心にチェックボックスを作るようにしたいんだけど
(長いプログラムは無しで)

501:デフォルトの名無しさん
18/10/01 19:04:58.48 Rpti6CxP.net
初心者だけど、仕事でどうしても必要で試行錯誤中なのだが…
例えばなんだけど
①IEを起動して指摘のURLに飛ぶ→②管理者ユーザーでログイン→
③ユーザー情報検索のページに飛ぶ→④プルダウンでユーザーの種別を選択→
⑤ユーザー名をフォームに転記→⑥検索ボタン押す→⑦ユーザーデータが表の形式で表示�


502:ウれ、ある行をラジオボタンがあるので選択→ ⑧決定ボタン押す→⑨ページ内のリンクをクリック→⑩ページ内のリンクをクリック→ ⑪表示された文字列をコピーしてエクセルに出力 なんてことできるの? 説明がわかりにくくて申し訳ない。 ①から③まではできたんだが…④からができるか不安だ。 どうにか③を応用して繋げていけばできるんじゃないかと思っているのだが、これをユーザー分取得するという繰り返しをするとなると、全くイメージ出来ない。 自分でもイメージ出来ていないのに聞くのも難だが、流石に実現不可能かな?



503:デフォルトの名無しさん
18/10/01 19:07:07.36 cKKUS3dy.net
>>481
出来る出来ないの返答を求めているようなのでそれだけ答えると「出来る」

504:デフォルトの名無しさん
18/10/01 19:14:45.76 +ysO9sf2.net
>>481
あえてvbaとieを使う理由はないけどまあ出来るよ

505:デフォルトの名無しさん
18/10/01 19:14:53.78 DnKjEw0R.net
②のフォームの操作ができてるならあとは全部②の繰り返しだからもう少し頑張れ

506:デフォルトの名無しさん
18/10/01 19:24:39.53 d7lQtBIe.net
>>482
>>484
ありがとうございます!
出来ると聞いて安心しました。頑張って作ってみます。

507:デフォルトの名無しさん
18/10/01 19:25:25.93 d7lQtBIe.net
>>483
vbaとieに拘りはないですが、導入が簡単そうだったので…

508:デフォルトの名無しさん
18/10/01 19:26:16.86 Zp0cocQA.net
質問者じゃないけど2とか3とかはどうやってやるの

509:デフォルトの名無しさん
18/10/01 19:33:41.96 d7lQtBIe.net
>>487
申し訳ない。②は自動ログイン設定というか、IEの機能でidとpassをオートフィルしてくれる機能あるから、わざわざログイン情報を入力せずに、そのまま決定ボタンをクリックするようなコマンド?を記載したよ。
③はその文字に埋め込まれたリンクを、htmlで探して指定した。
②が苦労したな…javascript:loginとかいうので、どうやったら良いのかわからなかったけど、その頭にあるinputがページで何番目なのか数えて、4番目だったから4番目のinputをクリックしてね!って文を書いたら移動できた!

510:デフォルトの名無しさん
18/10/01 19:45:57.55 MCBRDKcK.net
>>473
>>465に答え書いてるよ
>>480
vbaでフォームは置けない気がする
?の文字を置くなどで対処はできないか

511:デフォルトの名無しさん
18/10/01 19:47:37.81 MCBRDKcK.net
>>481
相当しんどいと思う
chromeの拡張機能を使ってみては?
「クローム 拡張機能 マクロ」で検索すると出てくる
後はjsごと覚えた方が良さそう

512:デフォルトの名無しさん
18/10/01 20:52:16.85 lLn/Vvr8.net
RPA使えよ
仕事なら買ってもらえるだろ

513:デフォルトの名無しさん
18/10/01 21:35:57.95 d7lQtBIe.net
>>491
robo-pat?
あるがライセンス切れてて使えない…ライセンス到着待ちなんだ。
でツールが明日必要になってしまったから、仕方なくvbaで…と。

514:デフォルトの名無しさん
18/10/01 21:36:29.14 d7lQtBIe.net
>>490
iMacrosってやつ?試しに使ってみようと思う!

515:デフォルトの名無しさん
18/10/01 23:54:06.64 zfKNS/F/.net
vlookupなんか
どこにも見当たらない
オツムだけじゃなくて目も悪いの?

516:デフォルトの名無しさん
18/10/02 02:04:29.98 /QfTYNRi.net
>>481
Seleniumデザインパターン&ベストプラクティス、2015、オライリー
この本は、Ruby で、Selenium WebDriver を使って、ウェブサイトを自動テストする本だけど、
まさにこういう事を、Rubyでプログラミングする
どのページ(URL)へ飛んで、入力フォームに入力して認証して、
買う商品を選んで、カートに入れて、決済する
まさに、Ruby・Selenium WebDriver が定番
簡単なものなら、iMacros, Selenium IDE で出来るかも

517:デフォルトの名無しさん
18/10/02 05:27:11.42 uy7vLCLd.net
>>489
普通におけるけど。

518:デフォルトの名無しさん
18/10/02 06:36:08.43 tR2WmwNe.net
>>495
rubyとselenium webdriverか。こちらも試してみます!ありがとうございます。

519:495
18/10/02 07:13:32.60 /QfTYNRi.net
結局、ウェブページの自動テストツールを数年やってきた人たちは、次の2つにたどり着く
プログラマーは、Ruby で、Selenium WebDriver、
非プログラマーは、iMacros, Selenium IDE
漏れなんて、自分のPC 内の画像フォルダの画像でさえ、
Ruby・Selenium WebDriverでプログラミングして、ブラウザで見てる
HTML のimg タグに、画像のパスを設定して、ブラウザに表示させている

520:デフォルトの名無しさん
18/10/02 07:17:00.46 3rK24ppg.net
>>498
たどりつかねーよwww
エロ本は画像ビューワ使ったほうがサクサク動いて良い

521:デフォルトの名無しさん
18/10/02 07:21:20.23 XHPfCFYq.net
またマッチポンプに引っかかってるのか?
頭悪すぎだろ

522:デフォルトの名無しさん
18/10/02 07:23:48.60 3rK24ppg.net
いや、タダのボケだろ
ちょっとおもしろかったわ

523:デフォルトの名無しさん
18/10/02 07:39:42.84 N1aQvONc.net
頭が悪いのを誤魔化そうとしても意味なくね?

524:デフォルトの名無しさん
18/10/02 07:42:08.16 ahHfhE5m.net
>>480
URLリンク(jizilog.com)
これをショートカットキーに割り付けるだけで行けそう

525:495
18/10/02 09:00:24.92 /QfTYNRi.net
Seleniumデザインパターン&ベストプラクティス、2015、オライリー
この本の著者がこう言ってる
最初は、ウェブページの自動テストを、Selenium IDE でやっていたけど、
大量の自動テストをこなすために、Ruby・Selenium WebDriver でプログラミングするようになった
これは、誰もがたどる道

526:デフォルトの名無しさん
18/10/02 09:10:32.38 fUFII8R1.net
別にVBAでも簡単だけどな。
既にVBAでRPAもどきを作ってある。

527:デフォルトの名無しさん
18/10/02 09:35:53.30 IHboiu3Y.net
マッチポンプに掛かった間抜けがいるスレはここですか?

528:デフォルトの名無しさん
18/10/02 10:09:51.02 IdpLKWF1.net
SikuliXおすすめ
適当なスクレイピングでよくてHTML解析する情熱が無くなった場合に使ってる

529:デフォルトの名無しさん
18/10/02 12:19:33.62 gUUCeKXU.net
>>498
> HTML のimg タグに、画像のパスを設定して、ブラウザに表示させている
プロさんて20年前からタイムスリップして来たんかなw


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch