Excel VBA 質問スレ Part49©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
スレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part48
http://mevius.2ch.net/test/read.cgi/tech/1494890685/
※関連スレ
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/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured >>429
これな
いやいやだわ
javascriptのほうが楽しいし >>430
JavaScriptのほうが楽しい理由は? javascriptってvbaの次に底辺やんwww >>433
使ったことある人が多い言語って底辺扱いされやすいよね。
おそらく、C や Java の比じゃないと思うよ。>VBA
でも、Java は使う人が多くなりつつあるから、底辺扱いされるのは時間の問題かもね。 新興の言語って利用者全員が似たような習熟度だから意思疎通が図りやすいし、
どんなにクソみたいなコード書いても判断材料が無くて効率的なコードって言ってもらえるからな。 >>369
欠陥なんじゃなくて、馬鹿ほどvariantを使う法則なだけ 長い間SQL触ってたので、
SelectがVBAにもあったのを完全に忘れていた、という話。 複数の言語を使うとselectとswitchは妙に間違える
俺だけかねー? JavascriptにおけるjQuery的な
VBAのクラスってどっかにないのかな
Set class = New class
class.lastRowAdd(Range("a1"),array)
ってやったら最終行に配列の内容をぶっ込んでくれる
とか
よくある操作をパラメーター渡せばやってくれるような >>444
このコードは妄想クラスメソッドなのでエラーになるけど
もし、いろんな汎用処理を詰め込んだクラスなりを
誰か作ってたら欲しいなーと思いましたとさ、という話 >>445
そうじゃなくて1次元配列が出来上がるとか2次元配列が出来上がるとか
もちょっと具体的に
あと第二引数はなんだ? そこまで引っ張る話題でもなくね?と思うけど確かにどうしたいのかわからんのもあってちょっと聞きたくもあり 科学計算が爆速でできるVBAのフレームワークができれば、VBAの価値は一気に上がる。 データベースな表で
第一引数のセルから下に見ていって一番下に
第二引数の配列をズドンと書き込む
という想定
たしかにそこまで引っ張るネタでもないです >>450
ネタで言ってるなら申し訳ないが、それその通りに書くだけで良くね? >>452
そういう話ではない。
まあでもVBA用の色んな処理の検索はしてきたけど、アドイン化されてるものは全然見かけないなあ。
汎用的な機能を詰め込んだアドインってこれくらい?
http://software.opensquare.net/relaxtools/
>>443の求めるものとは違うんだろうけど。
結局は自作クラスってことになりそう。 >>451
お前の下らん雑談ネタのためにこのスレが有るわけじゃないんだyo あぁarrayは横向きの配列ってことか、なるほど
VBAで汎用ライブラリ作るとしたらどんな名前になるだろう
tyっと作ってみたくもあるな ブログ検索すれば色々出てくるから好きなのを使う。
製品的なやつが欲しいなら知らん 完成した関数テンプレにのこしておいてよ
vbaの良質なコードはすごく希少だしアドインってメンテナンス大変じゃないか?
用途としてはいろんな人に使わせる用だと思うんだけど誰かが使ってる最中に変更できないじゃん
やたらにバージョン上げると某ライブラリみたいな顛末になるし じゃあコピーしたもん編集して誰もいないときに上書きすればいいじゃん >>431
新しい昨日が追加されるところ
まだクソなのはクソだけどvbaは一切進歩せんからなあ >>460
> vbaは一切進歩せんからなあ
エンジニアのための言語じゃないからね。
Dim だの Set だの If Then だの、
うんざりするのはしょうがないとしても、
objFSO
なんていう変数を見た日にゃ、
ぶっ殺したくなるね。 >>463
継承もサポートしてないしね
だから初心者の入口としても不向き
マイクロソフト的にもお荷物だろうな
はよ.net framework対応してほしいわね そもそも継承が必要になるほどの大規模な開発をVBAでやる事自体が間違い定期。 まあ継承より配列周りの強化してほしいかな
わざわざ自分でコレクションもどき作ってるけどめんどいわ 初めてADOっての使ったけど、なんだこりゃ。
MSQueryと違って、列名が出ないじゃん。
いや、ヘッダのON・OFFで無理矢理出せるけど、
そうするとUnionした時に、レコードの途中に列名が出やがる。(列名扱いされないから?)
列名は、出力位置の上に、予め書いとかなきゃいけないの? >>467
コレクションもどきって何?
配列もどきのコレクションとは違う何かかな? フォームを作ってるとき、同種のパーツのオブジェクト配列が簡単に作れたら良いのにって思うわ >>470
For Each x In Userform.Controls
Select Case Typename(x)
Case "Label"
...
End Select
Next
みたいなのじゃなくて? >>471
VBだとフォームパーツの型のオブジェクト変数として配列変数が宣言できる
何かと便利 >>470みたいな需要は確かにありそうだ。
さっそくオレ様ライブラリに取り入れよう。 >>469
コレクションて値の出し入れできなかったりするじゃん?
値の追加、挿入、削除、入れ替え、ソートあたりメソッドにしたクラスだね
型は安全に出来ないけどなかなか便利
objectにも対応させたいけどやや面倒だから手を付けてない >>472
Forで1つずつ取る方法しかなかったわ。
CopyFromRecordsetみたいに一撃弾平なのはないのね。 >>475
コレクションもどきって表現はミスリーディングだな
コレクションの拡張クラスだそれは
アイテムのソートと入れ替えは便利そう >>477
for eachできないからコレクションもどきとした
中身はただの配列だし >>478
コレクションをラップしてるんじゃなくて中身が配列なのか
確かにそれだとコレクションもどきだな >>479
継承できればコレクションからゴニョゴニョした方がいいんだろうけど
どうでも良いけど値の入れ替えのメソッド名をRepracementにしてるんだけどなんかしっくりこないんだよね
なんかいいのないかな >>481
入れ替えで辞書ツール突っ込んだらそれでてきたからしゃーない 配列の話題になってから調べて初めて知ったけど
ArrayListをVBAで使えるんだね
一通りメソッドもそろってるみたいだし、どうかな
実際に使ってみたわけではないけど >>483
便利は便利だけど遅い
三桁四桁の配列なら大差無いだろうけどね
大抵はコレクションで事足りちゃうしね 使い勝手はArrayListのほうが便利そうだね
まぁ確かに自分も使ったことないけど ちゃんとしたやつがあるのかよwww
自作配列にArrayListって変数名付けたわwwww .netライブラリの話で思い出したけどコンストラクタに引数渡せないのクソ不便だよな
渡せるようになれば使えるライブラリも増えそうだが >コンストラクタに引数渡す場面ってある?
シートの名前ぐらいなら返り値の.nameを変えるけど、何とも思わん コンストラクタでしか初期化できない(他の初期化用メソッドを持たない)クラスがあれば困るけど、
そういうものって.Netにあるの? >>491
const
vbaでconstが必要な用途が良くわからんけど >>491
VBA から使うとは思えないけど Exception の Message はコンストラクタでしか設定できないよ
そもそも>>489はそういう話じゃないような気がするけど >>493
.netのクラス使えないのかな?って以前ググったときに
http://officetanaka.net/excel/vba/tips/tips98.htm
が引っかかって
えらい簡単に使えるんだなぁと思ったんだけど
思っただけで使ったことないし
細かいことも知らない…
ていうか、本当にいろいろ便利に使えるなら
ググるだけでバンバン情報引っかかっていいと思うんだけど
ArrayListのことくらいしか出てこんかった >>490
ブックをそのままラップしたクラスとか作りたいときにパス指定するためのメソッドわざわざ実装するのとかクソめんどくさいじゃん
結構引数指定したい場面あるよ
逆になんで引数渡せないのかという >>496
そういうのは諦めた
エクセルに限らず、IEやら何もかもインスタンス作成してから、プロパティを変更している
言語仕様を嘆いても始まらん 話の流れで思い出したけど
これ使ったことある人いる?
マクロをC#で書けますよっていうやつ
http://mokumokucsharp.hateblo.jp/entry/2016/07/13/140602
Visual Studio Codeとかいうのもインストして
サンプルは動くんだけど
インテリセンスがうまく効かんくて使い方がよくわからない それもそうだけどクラスを含むプロジェクトを参照しているモジュールからそのクラスのインスタンスを
直接Newで作れないのにも困ってる。
Create〜系の関数を書いて置き場所に迷う場合が特に。 仮にC#使いだったとしても、VBA覚えるわ。
VBAにある機能をどれくらいカバーしているのか。
99%以下ならイラネ。
ていうか、そもそもどういう仕様だろう。
C#で書いたのを、内部的にVBAに翻訳して標準モジュールに書き込むとかだったら笑う。 よく見たら、
全てのVBAコードを生まれる前に消し去りたいとか、凄いこと書いてる。
何かに憑りつかれてはいませんか。 機能よりも言語仕様で
if()then
とかやっちゃう 重複した行を削除したいのですが、ググってみると
重複した下の行を削除するプログラムが殆どです。
上の行を消すプログラムはないでしょうか? >>500
なんでこんな馬鹿なのに偉そうにできるんだろう >>506
だって、要は、VBA使いこなせないからC#でとか言ってるわけだろ。
VBAに心の底から辟易って、使う人の能力の問題を、何で言語のせいにしてるのか。 質問です。
Excel2007ですけど、複数のオートシェイプをグループ化せずに同時にカットできますか?
オートシェイプを選択してSelection.Cutメソッドを実行すると、なぜかセルがテカテカするのです。
ShapaRangeオブジェクトにはCutメソッドが無いみたいですし。
とりあえずSendKeys "^x"で対処してるけどなんだかなあ、という状況です。 RangeのUnion、初期値がNothingのときエラーになるのが残念だ Officeが入っていればどのPCでも動く、というVBAの最大の利点を犠牲にしてまでC#で書く意味はないね。
自己満以外の何ものでもない。
幸せになるのは自分だけ。 自分の仕事が楽になるならいいんじゃないか
共有するやつは別 VBAって基本、かならず自動でコンパイルされた上で実行されるんですか?
[デバッグ]-[コンパイル]ってやらずに実行するとえらく遅いんですが。 >>512
コード資産が共有できない(自分の中でも)、というプログラマにあるまじき行為。 >>495
> http://officetanaka.net/excel/vba/tips/tips98.htm
> が引っかかって
> えらい簡単に使えるんだなぁと思ったんだけど
これは知らなかったわ、教えてくれてありがとう
> ていうか、本当にいろいろ便利に使えるなら
> ググるだけでバンバン情報引っかかっていいと思うんだけど
> ArrayListのことくらいしか出てこんかった
ちょっとググったらCOM経由で動くみたいね(CreateObject で作成するんだから当たり前か)
http://qiita.com/mima_ita/items/efcd1a6ea86f09047984 >>498
これ使うぐらいならPowerShell使う >>515
環境の問題なら、自分のなかでは使い続けられるんじゃね? >>518
既存のVBAコードに、C#で書いたプロシージャを呼び出すコードを追加することはできないよね。
VBAで書いたWinのExcelマクロはMacのExcelでも使えるけど、C#で書いたらMacでは使えないよね。 VBAはもう言語仕様をアップデートするつもりはないんだろうけど
せめてIDEくらいはもうちょっと便利にして欲しい
>>516
つまり相互運用の登録がされているライブラリは使えるってことか
でもいちいち自分でdll作ってまでは使わないかなぁ… >>508
コードや実行環境、ファイルサイズなどを見ないと何とも言えない
それから、セルがテカテカするとかいう感覚的な表現はなるべく避けるように >>522
dllを作るってどういう状況で必要になるのかよく分からんよな。
別途用意する必要があるって事は他人に使わせるのに難があるし、
VSTO使えるならVSで他の言語使った方が早い場面が多いだろうし、
自作のdllが必要になるような処理をVBAに求める場面というのが想像出来ない。 「Macだと」とか「プログラマとして」とかちょっとこのスレの想定ユーザーからはかけ離れてるんじゃないか? >>507
いや、vbaがクソ言語なのは避けようのない事実だろ
C♯erがわざわざ新しく覚える時間が無駄というのは分かるよ
オブジェクト指向にドップリしてたら使いにくいことこの上ないと思うし VBAをクソクソ言っている人たちはどういう立場なんだろうな。
クソだと思うなら近づかなければいいのに。
なんか他の言語でもメインで使い始めた途端にクソクソ言いそう。 ■ このスレッドは過去ログ倉庫に格納されています