X



Excel VBA 質問スレ Part49©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ bb2e-8SzA)
垢版 |
2017/06/26(月) 02:15:14.60ID:T3ylemnb0
!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
0495デフォルトの名無しさん (ワッチョイ 4791-2faK)
垢版 |
2017/07/25(火) 22:08:51.03ID:8cBHpzox0
>>493
.netのクラス使えないのかな?って以前ググったときに
http://officetanaka.net/excel/vba/tips/tips98.htm
が引っかかって
えらい簡単に使えるんだなぁと思ったんだけど
思っただけで使ったことないし
細かいことも知らない…
ていうか、本当にいろいろ便利に使えるなら
ググるだけでバンバン情報引っかかっていいと思うんだけど
ArrayListのことくらいしか出てこんかった
0496デフォルトの名無しさん (アウアウエー Sa9f-MZAo)
垢版 |
2017/07/25(火) 22:30:18.63ID:k4b2Lxa9a
>>490
ブックをそのままラップしたクラスとか作りたいときにパス指定するためのメソッドわざわざ実装するのとかクソめんどくさいじゃん
結構引数指定したい場面あるよ
逆になんで引数渡せないのかという
0499デフォルトの名無しさん (ワッチョイ dfaa-E/h9)
垢版 |
2017/07/25(火) 23:01:14.52ID:Vr2PvTdG0
それもそうだけどクラスを含むプロジェクトを参照しているモジュールからそのクラスのインスタンスを
直接Newで作れないのにも困ってる。
Create〜系の関数を書いて置き場所に迷う場合が特に。
0500デフォルトの名無しさん (ワッチョイ df6f-QK4i)
垢版 |
2017/07/25(火) 23:03:35.24ID:6CdgJbJQ0
仮にC#使いだったとしても、VBA覚えるわ。
VBAにある機能をどれくらいカバーしているのか。
99%以下ならイラネ。

ていうか、そもそもどういう仕様だろう。
C#で書いたのを、内部的にVBAに翻訳して標準モジュールに書き込むとかだったら笑う。
0508デフォルトの名無しさん (ワッチョイ df11-pqVL)
垢版 |
2017/07/26(水) 00:11:51.48ID:U77Cst6m0
質問です。
Excel2007ですけど、複数のオートシェイプをグループ化せずに同時にカットできますか?
オートシェイプを選択してSelection.Cutメソッドを実行すると、なぜかセルがテカテカするのです。
ShapaRangeオブジェクトにはCutメソッドが無いみたいですし。
とりあえずSendKeys "^x"で対処してるけどなんだかなあ、という状況です。
0511デフォルトの名無しさん (オッペケ Sr1b-QbI6)
垢版 |
2017/07/26(水) 00:21:08.24ID:o5MQIZHRr
Officeが入っていればどのPCでも動く、というVBAの最大の利点を犠牲にしてまでC#で書く意味はないね。
自己満以外の何ものでもない。
幸せになるのは自分だけ。
0516デフォルトの名無しさん (ドコグロ MMfb-efHF)
垢版 |
2017/07/26(水) 07:04:52.98ID:2BL9ZNyZM
>>495
> http://officetanaka.net/excel/vba/tips/tips98.htm
> が引っかかって
> えらい簡単に使えるんだなぁと思ったんだけど
これは知らなかったわ、教えてくれてありがとう

> ていうか、本当にいろいろ便利に使えるなら
> ググるだけでバンバン情報引っかかっていいと思うんだけど
> ArrayListのことくらいしか出てこんかった
ちょっとググったらCOM経由で動くみたいね(CreateObject で作成するんだから当たり前か)
http://qiita.com/mima_ita/items/efcd1a6ea86f09047984
0520デフォルトの名無しさん (オッペケ Sr1b-QbI6)
垢版 |
2017/07/26(水) 07:52:21.56ID:o5MQIZHRr
>>518
既存のVBAコードに、C#で書いたプロシージャを呼び出すコードを追加することはできないよね。

VBAで書いたWinのExcelマクロはMacのExcelでも使えるけど、C#で書いたらMacでは使えないよね。
0522デフォルトの名無しさん (ワッチョイ 4791-2faK)
垢版 |
2017/07/26(水) 07:58:49.22ID:PoLK+oD40
VBAはもう言語仕様をアップデートするつもりはないんだろうけど
せめてIDEくらいはもうちょっと便利にして欲しい

>>516
つまり相互運用の登録がされているライブラリは使えるってことか
でもいちいち自分でdll作ってまでは使わないかなぁ…
0525デフォルトの名無しさん (ワッチョイ 473d-pqVL)
垢版 |
2017/07/26(水) 09:40:24.60ID:19gyZHTT0
>>522
dllを作るってどういう状況で必要になるのかよく分からんよな。

別途用意する必要があるって事は他人に使わせるのに難があるし、
VSTO使えるならVSで他の言語使った方が早い場面が多いだろうし、
自作のdllが必要になるような処理をVBAに求める場面というのが想像出来ない。
0527デフォルトの名無しさん (アウアウエー Sa9f-MZAo)
垢版 |
2017/07/26(水) 10:40:27.92ID:nObVd20Fa
>>507
いや、vbaがクソ言語なのは避けようのない事実だろ
C♯erがわざわざ新しく覚える時間が無駄というのは分かるよ
オブジェクト指向にドップリしてたら使いにくいことこの上ないと思うし
0529デフォルトの名無しさん (ワッチョイ 473d-pqVL)
垢版 |
2017/07/26(水) 11:43:09.73ID:19gyZHTT0
VBAをクソクソ言っている人たちはどういう立場なんだろうな。
クソだと思うなら近づかなければいいのに。

なんか他の言語でもメインで使い始めた途端にクソクソ言いそう。
0530デフォルトの名無しさん (スッップ Sdff-AsiQ)
垢版 |
2017/07/26(水) 11:49:10.59ID:FItiZl47d
作ったものを他人と共有しようとすると限界が低い。でも自分一人ツールと割り切れば相当なことができる。
Officeソフトにそれ以上求めてもしょうがないでしょ。
0537デフォルトの名無しさん (アウアウエー Sa9f-MZAo)
垢版 |
2017/07/26(水) 13:40:18.49ID:nObVd20Fa
クソだけどofficeのマクロ言語はこれしかないから仕方なく使うしか無いだろ
プログラム言語としては時代遅れの化石なのはさすがに共通認識だと思ってたわ
現状くそなのもそうだし、これから先進化することも決してないこともクソ
あと、手軽さと高度な機能は別に共存できるでしょ
0540デフォルトの名無しさん (JP 0H4f-QK4i)
垢版 |
2017/07/26(水) 14:27:35.77ID:+1cN/gIlH
>>527
> オブジェクト指向にドップリしてたら使いにくいことこの上ないと思うし
俺は逆だと思うよ

オブジェクト指向をよく知ってたほうが、VBAを使いこなせる
・クラスモジュールを使いこなす
・いわゆる「インタフェース継承」を使いこなす
・WithEventsを使いこなす
大抵の奴は「クラスモジュールっていつ使うんですか」レベルだから
0541デフォルトの名無しさん (アウアウエー Sa9f-MZAo)
垢版 |
2017/07/26(水) 15:11:24.07ID:ZPUGQ/usa
>>540
俺の言いたいことを一ミリも汲んでくれてないなw
そりゃオブジェクト指向的なプログラミングを知ってれば非オブジェクト指向言語でも構造的に自然と書くようになる
それとこれとは別の話
機能がないからわざわざ自分で作らにゃいかんから不便だって話をしてる
0542デフォルトの名無しさん (ワッチョイ df06-pqVL)
垢版 |
2017/07/26(水) 16:52:15.43ID:6VvQXdi20
この手の下らんやり取りはこれまでもあったし、これからもウンザリするほど続くんだろうなぁ┐(´д`)┌ヤレヤレ
0543デフォルトの名無しさん (オッペケ Sr1b-QbI6)
垢版 |
2017/07/26(水) 18:04:37.55ID:o5MQIZHRr
>>539みたいに、自演自演て騒ぐ奴をしばしば見かけるけど、彼は何がしたいの?

つか、そもそもここは自演ができないスレなんだよね?

こういうのはスルーしたほうがよいのでしょうか。
0544デフォルトの名無しさん (ササクッテロル Sp1b-8s/R)
垢版 |
2017/07/26(水) 18:16:40.16ID:VQAVDfi4p
>>541
オブジェクト指向と機能は別の概念だけどな
機能は言語がなんであっても追加出来るだろうし
オブジェクト指向は言語に関する概念だから
0547デフォルトの名無しさん (ササクッテロル Sp1b-8s/R)
垢版 |
2017/07/26(水) 18:41:04.50ID:VQAVDfi4p
>>545
設計と言語両方じゃね?
0551デフォルトの名無しさん (ワッチョイ a791-8s/R)
垢版 |
2017/07/26(水) 19:42:18.93ID:W1HWCg900
>>549
状態を持つ⇒オブジェクトを使う
対偶は
オブジェクトを使わない⇒状態を持たない

対偶は必ず真とはいえなくない?
0552デフォルトの名無しさん (ドコグロ MM9f-efHF)
垢版 |
2017/07/26(水) 19:45:32.31ID:pjdGyN9QM
>>548
ログクラスとか作ってたな
書き込むシートと書き込む行を別々に管理するのは嫌だったから
でも継承もできないしコンストラクタの引数も持てない状況ではあまり使いやすくならないし結局クラスはほとんど使わない
そもそも俺がずっと保守するわけにもいかんから
0553デフォルトの名無しさん (ワッチョイ 473d-pqVL)
垢版 |
2017/07/26(水) 19:45:44.80ID:19gyZHTT0
>>547
オブジェクト指向言語は「オブジェクト指向的な設計が可能な言語」の事だから、
言語によってオブジェクト指向が決まるわけではないし、言語に対する概念というと違うと思うなぁ。

>>550
募集要項に何の言語が出来るかとか普通書いてないか?
Javaで募集かけたけどC#での開発がメインですみたいなカオスな職場もあんまりないだろ。
0554デフォルトの名無しさん (ワッチョイ e711-MZAo)
垢版 |
2017/07/26(水) 19:46:32.77ID:+NZ2Dbuu0
>>544
オブジェクト指向をサポートしてるかって話だよ
なんとなく分かるべ
>>546
ことさ、じゃなくてさ
俺はそういうところがクソだと言ってるの
クソはクソでも使わなきゃいから使うだけで
ライター、チャッカマン、バーナーが他所であるのにマッチでも火をおこせるしこれはこれで良いもんだぞって言ってるようなもん
0558デフォルトの名無しさん (ワッチョイ a791-8s/R)
垢版 |
2017/07/26(水) 19:56:29.43ID:W1HWCg900
>>553
オブジェクト指向言語は
オブジェクト指向設計したものを
そのまま実装し易い言語じゃないかな

言語の概念でもあると思うけどな

オブジェクト指向言語じゃなくても実装できるのは確かだけど
それならVBAでもオブジェクト指向設計を実装できるんじゃないかな
0561デフォルトの名無しさん (ワッチョイ a791-8s/R)
垢版 |
2017/07/26(水) 20:09:21.78ID:W1HWCg900
>>556
グローバル変数を使わなくても状態を表現できるんじゃね?

例えば再帰関数みたいに状態を引数にするとか
0562デフォルトの名無しさん (ドコグロ MM9f-efHF)
垢版 |
2017/07/26(水) 20:11:22.90ID:pjdGyN9QM
>>553
> オブジェクト指向言語は「オブジェクト指向的な設計が可能な言語」の事だから
そんなことを言い出したらアセンブリ言語でもオブジェクト指向は可能だよ
そういう極端な話をしたい訳じゃないんだと思うよ

> >>550
> 募集要項に何の言語が出来るかとか普通書いてないか?
ああ、そういう働き方してるひとなのね
もっとでっかい案件レベルのつもりだったから話が噛み合わないのも無理ないな
0565デフォルトの名無しさん (ワッチョイ a791-8s/R)
垢版 |
2017/07/26(水) 20:15:48.34ID:W1HWCg900
状態を持つ必要がある入出力関係が
独立に多数ある場合は
クラスを使うと比較的実装が簡単になるのかな?
0566デフォルトの名無しさん (ワッチョイ bf6d-1kH5)
垢版 |
2017/07/26(水) 20:17:56.75ID:rbCQuCda0
>>563
ログはlogシート一つ、3列

時間 / タイプ / 内容
7/26 20:00 log 作業開始
7/26 20:05 success 作業成功
7/26 20:07 error err.discriptionの内容
7/26 20:10 log 作業終了

で、書き込む時に毎回A列の最終行を取得し、そこに記録してる
覚える必要はないと思う
0567デフォルトの名無しさん (ワッチョイ e711-MZAo)
垢版 |
2017/07/26(水) 20:24:18.05ID:+NZ2Dbuu0
表の検索とかsqlでやる人もいるんだろうけど自分としてはクラスにしちゃうのがしっくりくるわ
配列の操作もクラスにしてると楽
あと、似たような処理で操作する対象が違うメソッドなんかは同じ名前にしても問題ないところとかも地味に便利だよ
関数だと命名に困ることがよくある
0568デフォルトの名無しさん (スップ Sdff-AsiQ)
垢版 |
2017/07/26(水) 20:30:27.76ID:ecs8OXuXd
>>560
さあ?いろいろあるでしょ
数値を放り込むとその度に回数をカウントアップし、最大値・最小値、合計、時刻を記録する、とか。
これくらいだったらワークシートでもできるけど、そういう対象が数多くなるとオブジェクト配列でやりたくなる。
どのワークシートのどこに?とか考える必要なくなるしエクセル以外のOfficeでも使えるし。
0569デフォルトの名無しさん (ワッチョイ a791-8s/R)
垢版 |
2017/07/26(水) 20:51:20.79ID:W1HWCg900
>>564
一般的な形では難しいかもしれないけど
サブクラスに相当する関数から
スーパークラスに相当する関数を呼べばいいんじゃね?

逆にスーパークラスに相当する関数に
スイッチみたいな引数を付けて
サブクラスに相当する関数に分岐するとか
0571デフォルトの名無しさん (ワッチョイ 473d-pqVL)
垢版 |
2017/07/26(水) 21:20:54.79ID:19gyZHTT0
>>558
VBAで出来ないと思っているならオブジェクト指向を何か勘違いしているからオブジェクト指向設計の本を読むといいよ。
他の言語みたいな書き方が出来ないだけで、VBAでもオブジェクト指向プログラミングは普通に出来るから。
0572デフォルトの名無しさん (ワッチョイ e711-MZAo)
垢版 |
2017/07/26(水) 21:34:48.38ID:+NZ2Dbuu0
>>570
まあ、あんまり大きなデータは扱わんからな
別に検索する形式が決まってるなら内部的にsqlで値抜き出してもいいわけだし
データの塊をオブジェクトとして扱っちゃったほうが何かまとまり感あってしっくり来るって感じかな
0582デフォルトの名無しさん (ワッチョイ db91-ntdb)
垢版 |
2017/07/27(木) 00:50:19.96ID:Gu8HEug70
>>576
なぜ?
で、どうするの?
0583デフォルトの名無しさん (ワッチョイ db91-ntdb)
垢版 |
2017/07/27(木) 01:05:44.74ID:Gu8HEug70
>>571
VBAと言う言語にクラスとかオブジェクト指向の概念が入っている
つまりオブジェクト指向の概念は言語にもつながる
と言う主張

一方でオブジェクト指向は設計にのみ関わる概念と言う主張もある

オブジェクト指向の概念を取り入れた言語でオブジェクト指向設計したものを実現するのと
オブジェクト指向の概念がない言語で実現するのでは
生産性とかに差が生じるだろう
0585デフォルトの名無しさん (ワッチョイ db91-ntdb)
垢版 |
2017/07/27(木) 01:54:44.40ID:Gu8HEug70
>>584
各シートの統計情報を取りたい時はどうする?
例えば、セルを更新した回数、最大値、最小値、平均値
を各シート毎に知りたい時

後から分散とか標準偏差とかも知りたくなったらどうする?
0586(ワッチョイ 0fcf-GNib)
垢版 |
2017/07/27(木) 02:24:19.55ID:lqCZB24a0
Youtuberヒカルが月収を明らかに!!おはよう朝日です出演
https://www.youtube.com/watch?v=RLZGrqQnnZc
第1回案件王ランキング!YouTuberで1番稼いでるのは誰だ!
https://www.youtube.com/watch?v=asF2wQ2xhjY&;t=61s
ユーチューバーの儲けのカラクリを徹底検証!
https://www.youtube.com/watch?v=FUSb4erJSXE&;t=504s
【給料公開】チャンネル登録者4万人突破記念!YouTuberの月収公開!
https://www.youtube.com/watch?v=Y7DAQ0RKilM&;t=326s
誰も言わないなら俺がYouTuberのギャラ相場を教えます
https://www.youtube.com/watch?v=E4q-vaQh2EQ&;t=118s
YouTuberになりたいのは馬鹿じゃない!YouTuberになる方法
https://www.youtube.com/watch?v=Fr0WXXZRMSQ

最高月収5000万円だとさ。年収じゃなくて「月収」な
おまえらもyoutubeに動画投稿したほうがいい
顔出したくないならラファエルみたいに仮面かぶればいい
手っ取り早く視聴数稼ぐには有名ユーチューバーへの物申す系動画がオススメ
0589デフォルトの名無しさん (ワッチョイ db91-ntdb)
垢版 |
2017/07/27(木) 06:25:09.17ID:Gu8HEug70
>>587
クラスってオブジェクト指向じゃないの?

上級者的に手続き型でやらないの?
0590デフォルトの名無しさん (ドコグロ MM8a-gqKx)
垢版 |
2017/07/27(木) 06:47:24.74ID:P1js1uXhM
>>582
> なぜ?

> 逆にスーパークラスに相当する関数に
> スイッチみたいな引数を付けて
> サブクラスに相当する関数に分岐するとか
サブクラスを増やす度にスーパークラスに手を入れるつもりなの?
真顔で言ってるなら単なるアホだろ w

> で、どうするの?
無理じゃね?
って書いてあるんだが...
■ このスレッドは過去ログ倉庫に格納されています

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