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 >>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をクソクソ言っている人たちはどういう立場なんだろうな。 クソだと思うなら近づかなければいいのに。 なんか他の言語でもメインで使い始めた途端にクソクソ言いそう。 作ったものを他人と共有しようとすると限界が低い。でも自分一人ツールと割り切れば相当なことができる。 Officeソフトにそれ以上求めてもしょうがないでしょ。 VBAは手軽さを重視してるんだから、高度な機能がないって意見は的外れなんだよ >>529 ん? アマチュアの人かな? お仕事ならクソだろうが使わざる得ない状況なんていくらでもあると思うが >>532 VBA言語をクソって言っちゃうくらいなのにVBAでお仕事取っちゃうの? もう少し仕事は選んだ方がいいんじゃないか。 >>526 うん、そういうこと。 ExcelマクロをC#で書くような人は、このスレの想定ユーザーからはかけ離れてるよね、ってこと。 クソだけどofficeのマクロ言語はこれしかないから仕方なく使うしか無いだろ プログラム言語としては時代遅れの化石なのはさすがに共通認識だと思ってたわ 現状くそなのもそうだし、これから先進化することも決してないこともクソ あと、手軽さと高度な機能は別に共存できるでしょ >>536 それは別にかけ離れてはいないだろ Macだとかプロのプログラマはかけ離れている プログラマとしてって言いだしたのって(オッペケ Sr1b-QbI6)だな 自演までして何がやりたいんだか・・・ >>527 > オブジェクト指向にドップリしてたら使いにくいことこの上ないと思うし 俺は逆だと思うよ オブジェクト指向をよく知ってたほうが、VBAを使いこなせる ・クラスモジュールを使いこなす ・いわゆる「インタフェース継承」を使いこなす ・WithEventsを使いこなす 大抵の奴は「クラスモジュールっていつ使うんですか」レベルだから >>540 俺の言いたいことを一ミリも汲んでくれてないなw そりゃオブジェクト指向的なプログラミングを知ってれば非オブジェクト指向言語でも構造的に自然と書くようになる それとこれとは別の話 機能がないからわざわざ自分で作らにゃいかんから不便だって話をしてる この手の下らんやり取りはこれまでもあったし、これからもウンザリするほど続くんだろうなぁ┐(´д`)┌ヤレヤレ >>539 みたいに、自演自演て騒ぐ奴をしばしば見かけるけど、彼は何がしたいの? つか、そもそもここは自演ができないスレなんだよね? こういうのはスルーしたほうがよいのでしょうか。 >>541 オブジェクト指向と機能は別の概念だけどな 機能は言語がなんであっても追加出来るだろうし オブジェクト指向は言語に関する概念だから >>541 オブジェクト指向の一切を封じられてるから使いづらいというのなら、それはそうでもないってことさ 機能が足りないというんなら、先人が作ったライブラリでも探せば? https://github.com/rubberduck203/VBEX とか >>540 自作クラスってどういう時に使うの? excelが思いっきりオブジェクトだから、それに対する手続き的な操作しかしないわ >>548 状態を持ったモノを扱いたいときじゃね? 状態を持たないんだったら関数の組み合わせで表現するのは簡単だ。 >>534 言語で仕事選べるとか無職の発送は素晴らしいな w >>549 状態を持つ⇒オブジェクトを使う 対偶は オブジェクトを使わない⇒状態を持たない 対偶は必ず真とはいえなくない? >>548 ログクラスとか作ってたな 書き込むシートと書き込む行を別々に管理するのは嫌だったから でも継承もできないしコンストラクタの引数も持てない状況ではあまり使いやすくならないし結局クラスはほとんど使わない そもそも俺がずっと保守するわけにもいかんから >>547 オブジェクト指向言語は「オブジェクト指向的な設計が可能な言語」の事だから、 言語によってオブジェクト指向が決まるわけではないし、言語に対する概念というと違うと思うなぁ。 >>550 募集要項に何の言語が出来るかとか普通書いてないか? Javaで募集かけたけどC#での開発がメインですみたいなカオスな職場もあんまりないだろ。 >>544 オブジェクト指向をサポートしてるかって話だよ なんとなく分かるべ >>546 ことさ、じゃなくてさ 俺はそういうところがクソだと言ってるの クソはクソでも使わなきゃいから使うだけで ライター、チャッカマン、バーナーが他所であるのにマッチでも火をおこせるしこれはこれで良いもんだぞって言ってるようなもん >>552 ログはfunctionだなぁ コンストラクタ使えないと、わざわざNewしてクラス無いメソッド呼び出してって二度手間じゃね。 functionならいつでもどこでも一行で済む >>551 ⇒(ならば)とは言ってないけどな まあ、オブジェクトを使わない⇒状態を持たせづらい(グローバル変数を使うはめになる) あくまでVBAでの話だよ >>549 例えば、具体的にどういう時に使うの? 状態って言っても初期値とかExcelから拾ってくるから、それをわざわざclassにほーり込むのもなー >>553 オブジェクト指向言語は オブジェクト指向設計したものを そのまま実装し易い言語じゃないかな 言語の概念でもあると思うけどな オブジェクト指向言語じゃなくても実装できるのは確かだけど それならVBAでもオブジェクト指向設計を実装できるんじゃないかな >>557 初期値より途中の経緯を記憶しておかないと次の計算ができないものとか? 「ワークシートに書き出す」じゃ再利用性に欠ける >>559 だから具体的にどんなことをするんだよw ゲームとかはナシでね ちと思いつかない >>556 グローバル変数を使わなくても状態を表現できるんじゃね? 例えば再帰関数みたいに状態を引数にするとか ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる