!extend:checked:vvvvv:1000:512
スレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※関連スレ
VBAなんでも質問スレ Part2
http://mevius.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
http://mevius.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 126
https://mevius.2ch.net/test/read.cgi/bsoft/1496487719/
※前スレ
Excel VBA 質問スレ Part49©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1498410914/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
Excel VBA 質問スレ Part50 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 7e6d-ffY6)
2017/08/27(日) 12:40:17.57ID:LjjEWylk0419デフォルトの名無しさん (アウアウカー Sa6b-XzBy)
2017/09/25(月) 16:13:22.32ID:715ByDora >>418
正確にはマシン語だね。
VBAとアセンブラでググれば見つかる。
マシン語のコードを変数に格納してメモリ操作して実行させる。
VBAの制限のために普通じゃ出来ないことをしようとする場合や普通に書くとどうしてもスマートじゃない場合に使う。
個人的に使いたい場面が2つ有るけど技術的に自分のものに出来て無いので使ったことは無いが。
正確にはマシン語だね。
VBAとアセンブラでググれば見つかる。
マシン語のコードを変数に格納してメモリ操作して実行させる。
VBAの制限のために普通じゃ出来ないことをしようとする場合や普通に書くとどうしてもスマートじゃない場合に使う。
個人的に使いたい場面が2つ有るけど技術的に自分のものに出来て無いので使ったことは無いが。
420デフォルトの名無しさん (スップ Sd4a-6FY3)
2017/09/25(月) 20:21:50.79ID:VZWzPiEFd >>419
確かに、ぐぐったらすぐに出てきたw
確かに、ぐぐったらすぐに出てきたw
421デフォルトの名無しさん (ワッチョイ ff3d-hoCt)
2017/09/25(月) 20:57:17.82ID:AH/NDHtT0 俺もマシン語とアセンブラ言語を勉強したなぁ。
早見表片手にバイナリ読むくらいのところまではいけたけど、
実際にメモリに転写して実行するとか手間が多すぎてあきらめたわ。
マシン語もシミュレータでOS作りに挑戦してHello Worldで止まってる。
早見表片手にバイナリ読むくらいのところまではいけたけど、
実際にメモリに転写して実行するとか手間が多すぎてあきらめたわ。
マシン語もシミュレータでOS作りに挑戦してHello Worldで止まってる。
422デフォルトの名無しさん (アウアウカー Sa6b-XBbO)
2017/09/25(月) 21:10:50.83ID:um3WFj5Ia >>419
これは駄目だないろんな意味で
これは駄目だないろんな意味で
423デフォルトの名無しさん (アウアウカー Sa6b-XzBy)
2017/09/25(月) 22:14:52.84ID:715ByDora >>421
VBA上でやる場合はアセンブラが主体じゃなくてVBAで出来ない部分だけに適用するわけだから、アセンブラ自体はそれほど複雑じゃないと思う。
自分の場合は別の言語でmemcmp使ったことがあって、それをVBAに移植する場合に使いたい。
ただ、そのプログラムをVBAで実現する意味が薄いように感じるのと別にmemcmp使わなくても代替あるかもしれないんで実際に組むかどうかは分からないんだけど。
VBA上でやる場合はアセンブラが主体じゃなくてVBAで出来ない部分だけに適用するわけだから、アセンブラ自体はそれほど複雑じゃないと思う。
自分の場合は別の言語でmemcmp使ったことがあって、それをVBAに移植する場合に使いたい。
ただ、そのプログラムをVBAで実現する意味が薄いように感じるのと別にmemcmp使わなくても代替あるかもしれないんで実際に組むかどうかは分からないんだけど。
424デフォルトの名無しさん (スプッッ Sd4a-6FY3)
2017/09/25(月) 22:22:34.05ID:eJeLm77Wd なんでそんなにしてまで?
425デフォルトの名無しさん (ワッチョイ ff3d-hoCt)
2017/09/25(月) 22:35:59.26ID:AH/NDHtT0 >>423-424
まぁそこまでするなら別の言語にした方がいいというか、そもそも発想が逆というか。
オフィス製品を拡張する上で「守られた」プログラミングが出来るのがVBAの特徴だし、
目的を絞っているから実用的なプログラムを短時間でくみ上げられるという長所があるのであって、
マシン語まで勉強してやるくらいなら、その手の目的で作られたC++言語辺りを頼るべきなんだよな。
もちろんそれが出来ない環境だから俺もマシン語を勉強するに至ったんだけど、
けっきょく型安全すら保証されない世界で何かを組み上げるってのは趣味の世界の話であってVBAの本質からずれてるしね。
ちなみに勉強中にC言語ですらマシン語で直接組むよりも非効率になる可能性が高いと知ったんで学ぶ意味はあったけど。
まぁそこまでするなら別の言語にした方がいいというか、そもそも発想が逆というか。
オフィス製品を拡張する上で「守られた」プログラミングが出来るのがVBAの特徴だし、
目的を絞っているから実用的なプログラムを短時間でくみ上げられるという長所があるのであって、
マシン語まで勉強してやるくらいなら、その手の目的で作られたC++言語辺りを頼るべきなんだよな。
もちろんそれが出来ない環境だから俺もマシン語を勉強するに至ったんだけど、
けっきょく型安全すら保証されない世界で何かを組み上げるってのは趣味の世界の話であってVBAの本質からずれてるしね。
ちなみに勉強中にC言語ですらマシン語で直接組むよりも非効率になる可能性が高いと知ったんで学ぶ意味はあったけど。
426デフォルトの名無しさん (スプッッ Sd4a-6FY3)
2017/09/25(月) 22:44:28.13ID:eJeLm77Wd 一体何の話をしているのか?
VBA補完というならC/C++で十二分だろうに
それで「実行環境がVBA」という気軽さは保てるんだし
VBA補完というならC/C++で十二分だろうに
それで「実行環境がVBA」という気軽さは保てるんだし
427デフォルトの名無しさん (アウアウカー Sa6b-XzBy)
2017/09/25(月) 22:52:54.75ID:715ByDora >>424
自分はものにして無いので、そこまでしてない。
ものにしてる人にとってはそこまでしてなどと思ってないと思う。
別言語でdll作ってVBAから呼び出すことも出来るだろうけど、そこだけで完結しないのがスマートさに欠けるように感じるからかな。
自分はものにして無いので、そこまでしてない。
ものにしてる人にとってはそこまでしてなどと思ってないと思う。
別言語でdll作ってVBAから呼び出すことも出来るだろうけど、そこだけで完結しないのがスマートさに欠けるように感じるからかな。
428デフォルトの名無しさん (ワッチョイ ff3d-hoCt)
2017/09/25(月) 22:54:34.22ID:AH/NDHtT0 >>426
確かに話がとっちらかって分かりにくくなったが、つまりそういう話をしてる。
でもVBA以外の環境を持てない職場なので仕方なくVBAが補完できる範囲だけでやるしかない。
その補完範囲にマシン語を含めるのはVBAの長所を殺しているのでVBAが想定している範囲の中で最善策を練るべきだと。
ちなみに個人的経験では次善の策としてSQLを使ったら地獄を見た。
確かに話がとっちらかって分かりにくくなったが、つまりそういう話をしてる。
でもVBA以外の環境を持てない職場なので仕方なくVBAが補完できる範囲だけでやるしかない。
その補完範囲にマシン語を含めるのはVBAの長所を殺しているのでVBAが想定している範囲の中で最善策を練るべきだと。
ちなみに個人的経験では次善の策としてSQLを使ったら地獄を見た。
429デフォルトの名無しさん (アウアウカー Sa6b-XBbO)
2017/09/25(月) 23:12:01.96ID:FBvoBYTya >>426
正解。
@まず保守性が酷い。都度ハンドアセンブルするのかって話。
Aラベルが付けられないからブランチ命令などは変更があったとき常にアドレスの相対位置を
設定し直さなければならない。ジャンプ命令みたいな絶対アドレス指定の場合はどうすんだろ。
B生産性が皆無
C中間言語を介在していないのでアーキテキクチャが異なるCPUでは使えない。
どうしてもアセンブラで組みたければC++のインラインアセンブラで素直にdllファイル作れって話。
こんなものどうやって普通にVBA組んでるやつに引き継ぐつもりなんだろうな。
出来ない環境でなければ設計自体を見直すか諦めろと。
正解。
@まず保守性が酷い。都度ハンドアセンブルするのかって話。
Aラベルが付けられないからブランチ命令などは変更があったとき常にアドレスの相対位置を
設定し直さなければならない。ジャンプ命令みたいな絶対アドレス指定の場合はどうすんだろ。
B生産性が皆無
C中間言語を介在していないのでアーキテキクチャが異なるCPUでは使えない。
どうしてもアセンブラで組みたければC++のインラインアセンブラで素直にdllファイル作れって話。
こんなものどうやって普通にVBA組んでるやつに引き継ぐつもりなんだろうな。
出来ない環境でなければ設計自体を見直すか諦めろと。
430デフォルトの名無しさん (スプッッ Sd4a-6FY3)
2017/09/25(月) 23:14:24.47ID:eJeLm77Wd >>429
引き継ぎとかは別にして、まず楽しいのかと
引き継ぎとかは別にして、まず楽しいのかと
431デフォルトの名無しさん (ワッチョイ 8aaa-Dc1X)
2017/09/25(月) 23:23:42.83ID:vsx3Rgi+0 >>427
完結ってどういう意味?
「VBA アセンブラ」でググって出てくるページ見ると、既存のcdecl関数を呼び出すことを目標にしてるみたいだけど、
自分はどっちかっていうと「なるべく自分で作ったもので間に合わせたい」という気持ちの方が強いな。
完結ってどういう意味?
「VBA アセンブラ」でググって出てくるページ見ると、既存のcdecl関数を呼び出すことを目標にしてるみたいだけど、
自分はどっちかっていうと「なるべく自分で作ったもので間に合わせたい」という気持ちの方が強いな。
432デフォルトの名無しさん (アウアウカー Sa6b-XzBy)
2017/09/25(月) 23:36:31.33ID:715ByDora433デフォルトの名無しさん (アウアウカー Sa6b-XzBy)
2017/09/25(月) 23:39:50.62ID:715ByDora434デフォルトの名無しさん (アウアウカー Sa6b-XBbO)
2017/09/25(月) 23:40:01.82ID:FBvoBYTya435デフォルトの名無しさん (オッペケ Sra3-yPpY)
2017/09/26(火) 04:06:23.87ID:DLk9dqRTr VBAの環境なのにマシン語使ってやったぜー
ワイルドだろー
って自慢したいだけ
ワイルドだろー
って自慢したいだけ
436デフォルトの名無しさん (アウアウカー Sa6b-XBbO)
2017/09/26(火) 07:38:19.44ID:XImuzds2a どっちにしてもトリッキーすぎて
実用的ではないな
実用的ではないな
437デフォルトの名無しさん (オッペケ Sra3-Ncsu)
2017/09/26(火) 12:18:09.16ID:YucCMyKYr お前ら素直に感心する事も出来んのかw
惨めやのうwww
惨めやのうwww
438デフォルトの名無しさん (アウアウカー Sa6b-XBbO)
2017/09/26(火) 12:24:44.74ID:H2XQANIBa 関心する要素がない
439デフォルトの名無しさん (オッペケ Sra3-Ncsu)
2017/09/26(火) 12:27:34.92ID:YucCMyKYr そうゆうひねくれた心を持っとるからいつまでたってもバカなんやで
440デフォルトの名無しさん (アウアウカー Sa6b-XBbO)
2017/09/26(火) 12:28:28.01ID:H2XQANIBa ちなみにどこに感心すればいいの?
機械語の知識が殆ど無いこと?
VBA上でごく中途半端な機械語を走らせる方法をネットで見つけたこと?
機械語の知識が殆ど無いこと?
VBA上でごく中途半端な機械語を走らせる方法をネットで見つけたこと?
441デフォルトの名無しさん (アウアウカー Sa6b-XzBy)
2017/09/26(火) 16:11:30.66ID:PIh5pWG1a VBAだけじゃどうにもならない、別途dllとの込みで扱うのはスマートじゃない。
そういう場合に使える方法があるということ。
他にもこの方法を使えればプログラムがスマートになるのにという場面もある。
これはVBAの制限によるものだけれど。
もっとも殆どの場合、これを必要とするコードを書くような事態自体ない。
普通はVBAではこの機能は実現出来ませんと回答することになるだろう。
そういう場合に使える方法があるということ。
他にもこの方法を使えればプログラムがスマートになるのにという場面もある。
これはVBAの制限によるものだけれど。
もっとも殆どの場合、これを必要とするコードを書くような事態自体ない。
普通はVBAではこの機能は実現出来ませんと回答することになるだろう。
442デフォルトの名無しさん (アウアウカー Sa6b-XzBy)
2017/09/26(火) 16:25:14.72ID:PIh5pWG1a >>434
すまんね。
君がどういうレベルの話をしてるのか、いまいち掴めない。
実際、そういうことも分からないから勉強中なんでね。
アーキテクチャが違うCPUってのが何のことを言っていて、使えないCPUについて具体的にどうして使えないのか示して貰えるかな。
すまんね。
君がどういうレベルの話をしてるのか、いまいち掴めない。
実際、そういうことも分からないから勉強中なんでね。
アーキテクチャが違うCPUってのが何のことを言っていて、使えないCPUについて具体的にどうして使えないのか示して貰えるかな。
443デフォルトの名無しさん (スプッッ Sd4a-6FY3)
2017/09/26(火) 16:34:44.22ID:r3ztyMSNd >>441
dll大好きマンの俺としてはその意見に賛成する事態自体ないな
dll大好きマンの俺としてはその意見に賛成する事態自体ないな
444デフォルトの名無しさん (ワッチョイ 2b23-kYwA)
2017/09/26(火) 16:47:20.57ID:w3seKs+r0 今どきアセンブラじゃないと
ダメな場面なんてほとんどない
速度が欲しいならC/C++で実用上十分
ダメな場面なんてほとんどない
速度が欲しいならC/C++で実用上十分
445デフォルトの名無しさん (アウアウカー Sa6b-XzBy)
2017/09/26(火) 17:07:46.45ID:PIh5pWG1a446デフォルトの名無しさん (ワッチョイ 2b23-kYwA)
2017/09/26(火) 17:14:42.90ID:w3seKs+r0 VBAだけで実現できない機能があるならDLLでいい
今どきのWindowsでアセンブラなんてまず必要ない
今どきのWindowsでアセンブラなんてまず必要ない
447デフォルトの名無しさん (スプッッ Sd4a-6FY3)
2017/09/26(火) 17:49:18.96ID:r3ztyMSNd Visual Studio利用が前提ならdll作るのに大した苦労はいらないぜ。
Expressでもいいんだしな。
Expressでもいいんだしな。
448デフォルトの名無しさん (ワッチョイ 4ab3-UH40)
2017/09/26(火) 17:59:29.96ID:BLiEZOQr0 アドインを入れろというだけで嫌がられるのに・・・。DLLなんて言った日にゃ「何それ食えるの?おいしいの?」ってなもんで。
更にregsvr32で登録とか説明した途端「そんなメンドくさい事をやらずに出来ないの?」とかぬかされてムカついた今日此の頃
更にregsvr32で登録とか説明した途端「そんなメンドくさい事をやらずに出来ないの?」とかぬかされてムカついた今日此の頃
449デフォルトの名無しさん (ワッチョイ 2b23-kYwA)
2017/09/26(火) 18:41:21.08ID:w3seKs+r0 いやDLLが嫌がられてるからって
毎回アセンブラで書いてたら
「これだけのことにそんな時間掛かるの?」とか
文句が変わるだけだろ
毎回アセンブラで書いてたら
「これだけのことにそんな時間掛かるの?」とか
文句が変わるだけだろ
450デフォルトの名無しさん (ワッチョイ 4a11-IQsp)
2017/09/26(火) 18:51:12.32ID:fvF/8EVL0 dllの登録とかはグループポリシーとスタートアップスクリプトで処理すればいいよ
451デフォルトの名無しさん (スプッッ Sd4a-6FY3)
2017/09/26(火) 19:29:03.17ID:r3ztyMSNd >>450
絶対パスは?
絶対パスは?
452デフォルトの名無しさん (ワッチョイ eb6f-Dc1X)
2017/09/26(火) 19:33:40.39ID:PUkdjjHv0 >>448
ふざけてんなら教えてやんねぇから自分でやれ って言ってやれ
ふざけてんなら教えてやんねぇから自分でやれ って言ってやれ
453デフォルトの名無しさん (スプッッ Sd4a-6FY3)
2017/09/26(火) 19:48:34.37ID:r3ztyMSNd シートをSQLでアクセスしたあとどうも変なことが起こる。
あしたデータをDBに入れてからSQLでアクセスして同じ現象が起きたら自分のプログラムミスだろうけど、
起きなければODBC for Excelを疑ってしまいそうだ
あしたデータをDBに入れてからSQLでアクセスして同じ現象が起きたら自分のプログラムミスだろうけど、
起きなければODBC for Excelを疑ってしまいそうだ
454デフォルトの名無しさん (アウアウカー Sa6b-XBbO)
2017/09/26(火) 21:26:46.77ID:XImuzds2a まぁdllくらいは面倒くさがらず設定出来ないとな。
今後デプロイ作業とかやるようになったらそれどころじゃないしな。
今後デプロイ作業とかやるようになったらそれどころじゃないしな。
455デフォルトの名無しさん (ワッチョイ af8b-lQLN)
2017/09/26(火) 22:11:26.14ID:Crd6WL0Z0 結局自分の知識を言いたいだけのお前らw
ババアの井戸端会議より無法地帯だなw
ババアの井戸端会議より無法地帯だなw
456デフォルトの名無しさん (ワッチョイ 2b23-kYwA)
2017/09/27(水) 01:51:50.87ID:0UMyaADl0 BBA → 高い化粧品を使っている
VBA → アセンブラを使っている
結論 → どっちもムダ
VBA → アセンブラを使っている
結論 → どっちもムダ
457デフォルトの名無しさん (ワッチョイ 0f73-Dazs)
2017/09/27(水) 08:43:06.78ID:HoC7JNpT0 VBAに不足してるのは主にGUIの部分であって、仕様上実現できない機能なんて相当高度な、それこそVBAでやるべきではないような大がかりなものだろ。
458デフォルトの名無しさん (ワッチョイ 0f73-Dazs)
2017/09/27(水) 08:45:17.97ID:HoC7JNpT0459デフォルトの名無しさん (ワッチョイ 2b23-kYwA)
2017/09/27(水) 08:51:33.31ID:0UMyaADl0460デフォルトの名無しさん (ワッチョイ 0a06-hoCt)
2017/09/27(水) 09:32:39.24ID:xHL8iwO20 またソースも示さずエラーコードも示さずただエラーだ!エラーだ!って喚き散らすだけの人間が
461デフォルトの名無しさん (ワッチョイ eb6f-Dc1X)
2017/09/27(水) 09:53:24.11ID:rapuPXM40 |三|
/_____\
|ギコーマン|
|___醤油_|
,>:::(,,゚Д゚) <呼んだ?
|(ノ.::::::::: |つ
|:::::::::::::::::|
ヽ___/
U"U
/_____\
|ギコーマン|
|___醤油_|
,>:::(,,゚Д゚) <呼んだ?
|(ノ.::::::::: |つ
|:::::::::::::::::|
ヽ___/
U"U
462デフォルトの名無しさん (アークセー Sxa3-bPSX)
2017/09/27(水) 09:53:37.56ID:p6CZNfKJx >>460
偉いよね
偉いよね
463デフォルトの名無しさん (アウアウカー Sa6b-XzBy)
2017/09/27(水) 12:19:47.02ID:OxJDgjzEa >>457
もういい加減やめるけど、そのGUI部分で貧弱なMSForms使わずにCreateWindowExで組んでたりした。
んで、いろんな部品のクラス化とかを考えるわけ。
ところがどうしても制限でクラス内に置けないものがあるんでカプセル化が不十分なんだ。
それをアセンブラ使ってクラス内に置いてる人がいるもんですごいなあと。
アセンブラ部分だけdllにしても寧ろ中途半端。
各部品ごとdllにしないとね。
流石にそこまでの能力も無いし労力も割きたくない。
まあ、所詮VBAなんてダメ言語ってことかね。
もういい加減やめるけど、そのGUI部分で貧弱なMSForms使わずにCreateWindowExで組んでたりした。
んで、いろんな部品のクラス化とかを考えるわけ。
ところがどうしても制限でクラス内に置けないものがあるんでカプセル化が不十分なんだ。
それをアセンブラ使ってクラス内に置いてる人がいるもんですごいなあと。
アセンブラ部分だけdllにしても寧ろ中途半端。
各部品ごとdllにしないとね。
流石にそこまでの能力も無いし労力も割きたくない。
まあ、所詮VBAなんてダメ言語ってことかね。
464デフォルトの名無しさん (スプッッ Sd4a-6FY3)
2017/09/27(水) 13:00:28.04ID:/eBNIii1d >>458
すまない
エラーが色々あってそう単純じゃなくてついね。
例えば配列になるはずの変数Aを扱っててエラーが出たので内容を見ると
TypeName(A) = Empty かつ IsEmpty(A) = Trueなのに
Debug.Print A とやると
「Visual Basicでサポートされていないオートメーションが変数で使用されています」とか
調査中
すまない
エラーが色々あってそう単純じゃなくてついね。
例えば配列になるはずの変数Aを扱っててエラーが出たので内容を見ると
TypeName(A) = Empty かつ IsEmpty(A) = Trueなのに
Debug.Print A とやると
「Visual Basicでサポートされていないオートメーションが変数で使用されています」とか
調査中
465デフォルトの名無しさん (ワッチョイ ff3d-hoCt)
2017/09/27(水) 13:16:32.50ID:PSADxl6o0 俺の場合はもっと根本的な部分を高速化する事が狙いでマシン語を使おうと思っていたな。
If文一つ、ループ処理一つ取っても汎用化の関係で無駄な処理が挟まる事になるんで、
極々単純かつ処理時間に占める割合が大きい計算なんかをマシン語で書ければ処理速度がだいぶ違う。
C++言語がインラインアセンブラを備えているように、どうしてもマシン語かそれに近しいものじゃないと実現出来ない事がある。
If文一つ、ループ処理一つ取っても汎用化の関係で無駄な処理が挟まる事になるんで、
極々単純かつ処理時間に占める割合が大きい計算なんかをマシン語で書ければ処理速度がだいぶ違う。
C++言語がインラインアセンブラを備えているように、どうしてもマシン語かそれに近しいものじゃないと実現出来ない事がある。
466デフォルトの名無しさん (ベーイモ MM02-o32k)
2017/09/27(水) 17:03:57.20ID:+G+JcjrGM はじめまして。
Excel2013を使っています。
色振分けについて
https://kokodane.com/2013_waza_064.htm
関数はちゃんと反映するけど処理が重い、、、。
VBAにしたけどエラーになる、、、
関数
=MOD(INT(SUMPRODUCT(1/COUNTIF($C$9:$C9,$C$9:$C9))),2)
VBA
i = Int(WorksheetFunction.SumProduct(1 / WorksheetFunction.CountIf(Range("C9:C" & j & ""), Range("C9:C" & j & "")))) Mod 2
「CountIf(Range("C9:C" & j & ""), Range("C9:C" & j & "")」のところでエラー発生…。
何か間違っているのでしょうか・・・。
Excel2013を使っています。
色振分けについて
https://kokodane.com/2013_waza_064.htm
関数はちゃんと反映するけど処理が重い、、、。
VBAにしたけどエラーになる、、、
関数
=MOD(INT(SUMPRODUCT(1/COUNTIF($C$9:$C9,$C$9:$C9))),2)
VBA
i = Int(WorksheetFunction.SumProduct(1 / WorksheetFunction.CountIf(Range("C9:C" & j & ""), Range("C9:C" & j & "")))) Mod 2
「CountIf(Range("C9:C" & j & ""), Range("C9:C" & j & "")」のところでエラー発生…。
何か間違っているのでしょうか・・・。
467デフォルトの名無しさん (ワントンキン MMfa-GOPe)
2017/09/27(水) 18:10:37.79ID:pdVv0yF3M468デフォルトの名無しさん (ワッチョイ 4a11-IQsp)
2017/09/27(水) 18:27:20.02ID:60RbULmH0469デフォルトの名無しさん (ワッチョイ ff3d-hoCt)
2017/09/27(水) 18:33:40.97ID:PSADxl6o0 >>466
Sub foo(ColorColumn As Range, ColorNum As Long)
Dim r As Range
Dim cols As Boolean
Dim c As Collection: Set c = New Collection
col = ColorColumn.Value
For i = LBound(col, 1) To UBound(col, 1)
If x <> col(i, 1) Then
x = col(i, 1)
If cols Then cols = False Else cols = True
End If
If cols Then
If r Is Nothing Then
Set r = ColorColumn(i, 1)
Else
Set r = Union(r, ColorColumn(i, 1))
End If
End If
Next
r.Interior.Color = ColorNum
End Sub
エラーについては具体的なコードがないから分からないけど、
そのページの様な色分けやるならこんなコードとかの方がいいと思う。
Sub foo(ColorColumn As Range, ColorNum As Long)
Dim r As Range
Dim cols As Boolean
Dim c As Collection: Set c = New Collection
col = ColorColumn.Value
For i = LBound(col, 1) To UBound(col, 1)
If x <> col(i, 1) Then
x = col(i, 1)
If cols Then cols = False Else cols = True
End If
If cols Then
If r Is Nothing Then
Set r = ColorColumn(i, 1)
Else
Set r = Union(r, ColorColumn(i, 1))
End If
End If
Next
r.Interior.Color = ColorNum
End Sub
エラーについては具体的なコードがないから分からないけど、
そのページの様な色分けやるならこんなコードとかの方がいいと思う。
470デフォルトの名無しさん (アウアウカー Sa6b-uQ9e)
2017/09/27(水) 20:58:26.69ID:aEqZdwF3a >>466
jと""が気になった
jと""が気になった
471デフォルトの名無しさん (アウアウカー Sa6b-XBbO)
2017/09/27(水) 21:01:26.56ID:WtGXLehDa アセンブラやマシン語のことを神格化してる人がいるけれど
このスレにだって昔使ってた人もいるだろうし
ある意味覚えることが少ないからObject指向言語や関数型言語より簡単かも知れない。
でも昨今仕事上その知識が必要になることはまず無い。
いつまでも無用の長物にしがみついていないでその分別の勉強に力を配分した方が賢いとは思う。
このスレにだって昔使ってた人もいるだろうし
ある意味覚えることが少ないからObject指向言語や関数型言語より簡単かも知れない。
でも昨今仕事上その知識が必要になることはまず無い。
いつまでも無用の長物にしがみついていないでその分別の勉強に力を配分した方が賢いとは思う。
472デフォルトの名無しさん (アウアウカー Sa6b-XzBy)
2017/09/27(水) 21:01:48.90ID:ZXhzFeMta473デフォルトの名無しさん (アウアウカー Sa6b-XzBy)
2017/09/27(水) 21:07:50.10ID:ZXhzFeMta >>471
神格化なんてしてねーよ。
XBAじゃ出来ないから仕方なくだ。
出来るならやってる。
じゃ、C#やVB.netでライブラリ作るとしても、結局中途半端になるということ。
VBAでオブジェクト指向なんてやんなきゃ良かった。
神格化なんてしてねーよ。
XBAじゃ出来ないから仕方なくだ。
出来るならやってる。
じゃ、C#やVB.netでライブラリ作るとしても、結局中途半端になるということ。
VBAでオブジェクト指向なんてやんなきゃ良かった。
474デフォルトの名無しさん (アウアウカー Sa6b-XBbO)
2017/09/27(水) 21:22:44.64ID:WtGXLehDa475デフォルトの名無しさん (ワッチョイ 4a11-IQsp)
2017/09/27(水) 21:34:59.84ID:60RbULmH0 そのCOUNTIF使ったやり方はデータがN行増えれば
計算量がNの2乗倍増えるんだからどうやっても遅いよ
行が増えても1行あたりの計算量が増えないようにしておけば
そこまで遅くはならない
[例]
B | C | D
-----------------
| 0 |
コーヒー | 1 | 1
コーヒー | 1 | 1
コーヒー | 1 | 1
お茶 | 2 | 0
お茶 | 2 | 0
紅茶 | 3 | 1
C列は =IF((IF(B3=B2, 0,1))=1, C2+1, C2)
D列は =MOD(C3, 2)
計算量がNの2乗倍増えるんだからどうやっても遅いよ
行が増えても1行あたりの計算量が増えないようにしておけば
そこまで遅くはならない
[例]
B | C | D
-----------------
| 0 |
コーヒー | 1 | 1
コーヒー | 1 | 1
コーヒー | 1 | 1
お茶 | 2 | 0
お茶 | 2 | 0
紅茶 | 3 | 1
C列は =IF((IF(B3=B2, 0,1))=1, C2+1, C2)
D列は =MOD(C3, 2)
476デフォルトの名無しさん (ワッチョイ 238f-PvnN)
2017/09/27(水) 22:00:35.20ID:L69K1Ov+0477デフォルトの名無しさん (ワッチョイ af8b-lQLN)
2017/09/27(水) 22:10:23.63ID:9IoMVu120 お前ら何があっても絶対に>>474の様にはなるなよ
お前らには.Netでエクセルをいじるくらいなら肥溜めに突っこんだ手でちんこいじった方がなんぼかましだという事を知ってほしい
お前らには.Netでエクセルをいじるくらいなら肥溜めに突っこんだ手でちんこいじった方がなんぼかましだという事を知ってほしい
478デフォルトの名無しさん (アウアウエー Sa82-0s0S)
2017/09/27(水) 22:42:42.85ID:XaTneppSa Dim co As ChartObject
With co.Chart.SeriesCollection.NewSeries
.Name = "テスト"
.XValues = tmpArray1 'X軸
.Values = tmpArray2 'Y軸
End With
With co.Chart
' 線形近似式の取得
.SeriesCollection(1).Trendlines.Add Type:=xlLinear
.SeriesCollection(1).Trendlines(1).DisplayEquation = True'☆☆☆
.SeriesCollection(1).Trendlines(1).Select
.Refresh
getAlfa = Replace(SeriesCollection(1).Trendlines(1).DataLabel.Text, " ", "") '★★★
End with
for文の中でこれを利用して100個ほどグラフを作っているところです。
線形近似式を作るまでなら出来たのですが、
近似式を取得しようとすると、★★★のところで
「プロシージャの呼び出し、または引数が不正です」となります。
ステップインでやるとエラー無く通るので、☆☆☆の反映が遅いのか・・?
と、よく分からなくなっております。ご助言頂けますと幸いです。
With co.Chart.SeriesCollection.NewSeries
.Name = "テスト"
.XValues = tmpArray1 'X軸
.Values = tmpArray2 'Y軸
End With
With co.Chart
' 線形近似式の取得
.SeriesCollection(1).Trendlines.Add Type:=xlLinear
.SeriesCollection(1).Trendlines(1).DisplayEquation = True'☆☆☆
.SeriesCollection(1).Trendlines(1).Select
.Refresh
getAlfa = Replace(SeriesCollection(1).Trendlines(1).DataLabel.Text, " ", "") '★★★
End with
for文の中でこれを利用して100個ほどグラフを作っているところです。
線形近似式を作るまでなら出来たのですが、
近似式を取得しようとすると、★★★のところで
「プロシージャの呼び出し、または引数が不正です」となります。
ステップインでやるとエラー無く通るので、☆☆☆の反映が遅いのか・・?
と、よく分からなくなっております。ご助言頂けますと幸いです。
479デフォルトの名無しさん (アウアウカー Sa6b-XBbO)
2017/09/27(水) 23:13:25.41ID:WtGXLehDa >>477
理由は?
理由は?
480デフォルトの名無しさん (ワッチョイ ff3d-hoCt)
2017/09/27(水) 23:23:42.05ID:PSADxl6o0 COMをVBA以外から触るのってくっそ面倒なんだっけか。
確かに一度そういう記事を見たときに引数省略できないわ明示的に解放しないとメモリリークするわで、
下手に外部から弄るよりVBAだけの方が良さそうとは思ったな。
確かに一度そういう記事を見たときに引数省略できないわ明示的に解放しないとメモリリークするわで、
下手に外部から弄るよりVBAだけの方が良さそうとは思ったな。
481デフォルトの名無しさん (アウアウカー Sad1-MUvn)
2017/09/28(木) 07:45:23.83ID:6Dj75AXHa >>480
それはCOMからEXCELを操作しようとするから。
npoi辺りを使えば問題ない。
https://qiita.com/midori44/items/acab9106e6dad9653e73
それはCOMからEXCELを操作しようとするから。
npoi辺りを使えば問題ない。
https://qiita.com/midori44/items/acab9106e6dad9653e73
482デフォルトの名無しさん (アウアウオー Sa93-5sR+)
2017/09/28(木) 18:09:24.72ID:v+KWuCPna このスレ読むとVBAerの苦悩を感じてしまうな
483デフォルトの名無しさん (ワッチョイ 4d8b-6Ovz)
2017/09/28(木) 20:48:58.21ID:IZ7vMKly0 ところでさあ、お前らの中で「ボクはVBAerじゃない!」ってのが唯一の心の拠り所の人っている?…あ、いたwwww
484デフォルトの名無しさん (ワッチョイ 1b6d-+DT2)
2017/09/28(木) 20:54:21.56ID:gXNMpsXl0 >>482
20年も経つし、いい加減かなりめんどくさい上、元々の設計からして奇々怪々
20年も経つし、いい加減かなりめんどくさい上、元々の設計からして奇々怪々
485デフォルトの名無しさん (ワッチョイ ed3d-asy+)
2017/09/28(木) 21:05:52.30ID:buJERvd40 古いブックのデータを、新しいブックに移すだけで容量が変わる仕様は酷いよな。
486デフォルトの名無しさん (ワッチョイ b58c-7x71)
2017/09/28(木) 21:14:44.53ID:0/cKan+O0 うちの会社の情報システム部の人達、VBAばかり使ってるんだけど、これってシステム屋さんとしてどうなの?
変な質問でごめんね〜
変な質問でごめんね〜
487デフォルトの名無しさん (ワッチョイ 1b6d-+DT2)
2017/09/28(木) 21:20:12.89ID:gXNMpsXl0 >>486
別にどうでもいい
早く作れて保守が容易で堅牢ならそれでいい
ただ、先日こういう凶悪なバグが発生した
https://answers.microsoft.com/ja-jp/msoffice/forum/msoffice_access-mso_win10/access2016/f7dc70ee-e228-473e-a92e-17992a3b16b3?auth=1
別にどうでもいい
早く作れて保守が容易で堅牢ならそれでいい
ただ、先日こういう凶悪なバグが発生した
https://answers.microsoft.com/ja-jp/msoffice/forum/msoffice_access-mso_win10/access2016/f7dc70ee-e228-473e-a92e-17992a3b16b3?auth=1
488デフォルトの名無しさん (ワッチョイ ed3d-asy+)
2017/09/28(木) 21:22:10.71ID:buJERvd40 >>486
ある言語が使えて他の言語が使えないなんてのはあり得ないから、
特別に何らかの言語を使えと言われてるのにVBAに固執してるとかでない限りは特に問題ないと思うけど。
もちろん別の言語使うとなれば移行期間と、それに掛かるコストの問題は発生するけど、
この移行で発生するコストに収支が見合わないなら如何なる言語であれ移行する方がおかしいし。
ある言語が使えて他の言語が使えないなんてのはあり得ないから、
特別に何らかの言語を使えと言われてるのにVBAに固執してるとかでない限りは特に問題ないと思うけど。
もちろん別の言語使うとなれば移行期間と、それに掛かるコストの問題は発生するけど、
この移行で発生するコストに収支が見合わないなら如何なる言語であれ移行する方がおかしいし。
489デフォルトの名無しさん (ワッチョイ 3d1e-xzc4)
2017/09/28(木) 21:29:04.93ID:hQxGv/ed0490デフォルトの名無しさん (アウアウカー Sad1-MUvn)
2017/09/28(木) 22:02:49.49ID:WRYfTPcca バイブとか電動こけしなら
このスレの住人はそこまで使ってないよ
このスレの住人はそこまで使ってないよ
491デフォルトの名無しさん (ワッチョイ 4d8b-55BJ)
2017/09/28(木) 22:07:34.72ID:IZ7vMKly0 使ってるくせに(ニヤニヤ
何気取っちゃってんのw
何気取っちゃってんのw
492デフォルトの名無しさん (アウアウオー Sa93-5sR+)
2017/09/28(木) 22:24:44.49ID:v+KWuCPna >>484
そろそろ何とかしてほしいわね
そろそろ何とかしてほしいわね
493デフォルトの名無しさん (ワッチョイ 856f-IQJU)
2017/09/28(木) 23:10:52.31ID:RaSb9ROh0 思い切ってF#に変えてほしいな
C#といいMSは言語はいいものつくるのになんでいまだにVB・・・
C#といいMSは言語はいいものつくるのになんでいまだにVB・・・
494デフォルトの名無しさん (ドコグロ MMc1-KCdQ)
2017/09/29(金) 07:18:36.82ID:blTWaqTGM C# でもいいし PowerShell と言う手もあるしな
495デフォルトの名無しさん (ワッチョイ c579-awJS)
2017/09/29(金) 07:42:22.91ID:7sErYghb0 PawarShell
496デフォルトの名無しさん (アウアウオー Sa93-5sR+)
2017/09/29(金) 08:05:24.92ID:AVwn3+7qa 次のエクセルでは.Netモードと旧VBAモードと混在させておいて、次のエクセルで切ればいい
497デフォルトの名無しさん (ワッチョイ 7597-mWOX)
2017/09/29(金) 08:23:21.48ID:+zN4mxkZ0 しばらくはVBAとjavascriptの併存だな
498デフォルトの名無しさん (スプッッ Sd03-ZUCg)
2017/09/29(金) 08:58:12.82ID:Dzyak/bKd 切ることはできない
499デフォルトの名無しさん (ワッチョイ 456f-Txnz)
2017/09/29(金) 10:47:27.85ID:xN5JBlC50 新仕様つくって古いの全部すてればいいんじゃね
500デフォルトの名無しさん (ワントンキン MMa3-/LS6)
2017/09/29(金) 10:54:15.88ID:C0tsoTl7M501デフォルトの名無しさん (アウアウオー Sa93-5sR+)
2017/09/29(金) 11:13:56.54ID:AVwn3+7qa >>497
javascripでいくってことはいずれはweb化するんかね
javascripでいくってことはいずれはweb化するんかね
502デフォルトの名無しさん (ワッチョイ 2306-asy+)
2017/09/29(金) 11:24:31.88ID:BKm/kWdC0503デフォルトの名無しさん (ワッチョイ 2306-asy+)
2017/09/29(金) 11:25:38.86ID:BKm/kWdC0 訂正
Excelはヲタプログラマの遊び道具ではないんだよ
Excelはヲタプログラマの遊び道具ではないんだよ
504デフォルトの名無しさん (スプッッ Sd03-ZUCg)
2017/09/29(金) 11:37:17.11ID:Dzyak/bKd プログラマが文句をいうのと一般ユーザーが文句をいうのとじゃ大いに違う
505デフォルトの名無しさん (アウアウカー Sad1-3Z7M)
2017/09/29(金) 11:46:58.39ID:LnDObw+pa 拡張子で切り替えるとかはするかも。
でも、現行のVBAで出来ないことなんて殆ど無いわけで、新仕様作ってもそれで新しいことが出来る奴なんて殆ど居ないだろう。
いまだに4.0時代のマクロシート動かしてるところだって有るんだぜ。
そんな簡単に切り捨てられるわけがない。
個人的にはマクロシートは切り捨てて欲しいが。
でも、現行のVBAで出来ないことなんて殆ど無いわけで、新仕様作ってもそれで新しいことが出来る奴なんて殆ど居ないだろう。
いまだに4.0時代のマクロシート動かしてるところだって有るんだぜ。
そんな簡単に切り捨てられるわけがない。
個人的にはマクロシートは切り捨てて欲しいが。
506デフォルトの名無しさん (ワッチョイ ed3d-asy+)
2017/09/29(金) 12:11:55.51ID:es7HpHgn0 ちょっと前にWindows 3.1からようやく移行した空港の話があったしな。
>>500
昨今はクラウドが流行ってて常に更新するのが流行ってるけど、
仕事で使うなら、やっぱりサポート切れて更新しなくなったヤツの方がいいな。
>>500
昨今はクラウドが流行ってて常に更新するのが流行ってるけど、
仕事で使うなら、やっぱりサポート切れて更新しなくなったヤツの方がいいな。
507デフォルトの名無しさん (スプッッ Sd03-ZUCg)
2017/09/29(金) 12:16:54.98ID:Dzyak/bKd VBAってMS的にお荷物なの?
508デフォルトの名無しさん (ワッチョイ 456f-Txnz)
2017/09/29(金) 12:58:03.09ID:xN5JBlC50 古いの使ってる自慢は寒いな
509デフォルトの名無しさん (アウアウオー Sa93-5sR+)
2017/09/29(金) 13:35:54.03ID:HP040cNEa まあ期間システムにoffice使ってるような糞企業は滅びたらいいよ
510デフォルトの名無しさん (ワントンキン MMa3-/LS6)
2017/09/29(金) 18:01:15.73ID:C0tsoTl7M511デフォルトの名無しさん (ワッチョイ 3d1e-xzc4)
2017/09/29(金) 18:08:46.69ID:55l6TVRn0 期間システムか
短期リースなのかな?
短期リースなのかな?
512デフォルトの名無しさん (アウアウカー Sad1-MUvn)
2017/09/29(金) 18:30:11.39ID:YJ/I0Rcga513デフォルトの名無しさん (アウアウカー Sad1-3Z7M)
2017/09/29(金) 18:54:46.16ID:LnDObw+pa 適材適所を知らない奴はコンピューターを使うべきではない。
514デフォルトの名無しさん (アウアウオー Sa93-5sR+)
2017/09/29(金) 19:28:12.26ID:2gPjU4Zja てか、現状のVBAをjavascriptに置き換えぐらいなら自動で出来るんじゃね?
format関係ぐらいは独自で組み込むんだろうしさ
format関係ぐらいは独自で組み込むんだろうしさ
515デフォルトの名無しさん (ワッチョイ 3d1e-xzc4)
2017/09/29(金) 21:13:57.76ID:55l6TVRn0516デフォルトの名無しさん (ワッチョイ ed3d-asy+)
2017/09/29(金) 21:16:31.80ID:es7HpHgn0 全人類だと半分以上はコンピュータ使える環境に居なさそう。
517デフォルトの名無しさん (ワッチョイ 1b6d-sekt)
2017/09/29(金) 21:24:18.98ID:O8EcVrBV0 アフリカなどの話だろうけど、逆。端末が無いと話にならない
現金を銀行まで出し入れしにいくよりも、ネット決済が主流になりつつある
現金を銀行まで出し入れしにいくよりも、ネット決済が主流になりつつある
518デフォルトの名無しさん (ワッチョイ 456f-Txnz)
2017/09/29(金) 22:37:04.88ID:xN5JBlC50■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- パラドゲーやってる人に聞きたい総理の発言がそのまま国家意思になるって中世かよ [279479878]
- 米シンクタンク「アメリカは台湾問題で"あいまい戦略"を取っている。高市早苗はこの方針から逸脱している」 [603416639]
- 【高市早苗】バス会社、中国からのキャンセルで12月で2000万円~3000万円の損失へ [115996789]
- かしこいワンコっていうVtuberの子知ってる?
- 【速報】Gemini 3 正式リリース。世界最強 LLMs の座は再び Google へ [803137891]
- 岡田克也「軽々しく存立危機事態とか言うべきじゃない」高市早苗「台湾で武力攻撃が発生したらどう考えても日本の存立危機事態」 [931948549]
