トップページtech
1001コメント350KB

Excel VBA 質問スレ Part32

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2013/10/07(月) 22:19:55.86
ExcelのVBAに関する質問スレです

★1 質問テンプレ(雛形)は用意しませんが、OSとExcelのバージョンは必ず書きましょう。

★2 ExcelのVBA以外の部分に関する質問はNGです。
   但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。

★3 ExcelのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。

 VBAとは、『Visual Basic for Applications』の略で
  Application
  ├Workbooks
  |└Workbook
  |  ├Worksheets
  |  |└Worksheet
 というApplication以下のオブジェクトを、VB言語で操作するものを指します。
 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。

★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。

★5 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み、
   コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。
   ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。

★6 わからなければとりあえず「マクロの記録」(Alt, T, M, R)

前スレ:Excel VBA 質問スレ Part31
http://toro.2ch.net/test/read.cgi/tech/1376371376/

関連スレ:VBAなんでも質問スレ
http://toro.2ch.net/test/read.cgi/tech/1342087380/
04974912014/01/20(月) 01:39:46.17
>>496
2003じゃないか。
売り切れじゃないか。
0498デフォルトの名無しさん2014/01/20(月) 02:04:59.15
>>497
国外追放レベルのバカだな

Excelのバージョンが変わってもクラスの使い方なんてほぼ同じだし、本屋はここ1軒だけじゃないし
世の中には図書館という便利な物がある

この程度のこといちいち教えなきゃわからんのか
おまえはプログラミングするな質問するなするな迷惑だ
04994912014/01/20(月) 02:23:26.65
>>498
もともとおかしいんだよ、きみの顔は。
http://blog-imgs-48.fc2.com/a/y/a/ayaushi/201303301847509b1.jpg
0500デフォルトの名無しさん2014/01/20(月) 07:17:48.73
反論につまってそういう幼稚なレッテル貼りに走るのって
自分の品位を貶めるだけの行為だって気付かないのかな?

まぁ>>498も口が悪いが
「確かにその通りだけど、国外追放レベルはヒドス・゚・(つД`)・゚・ 」
くらいの、余裕を持った返しが出来る大人になろうぜ
0501デフォルトの名無しさん2014/01/20(月) 07:22:07.74
>>491
まぁVBAでそんなに無理してまでクラスモジュールを使わなくてもコードは組めるってことだね。
本当にきちんとクラスについて勉強したいなら、JavaやC#を勉強した方がいい。
VB.Netですらデザインパターンを踏襲した様なきちんとした本は見たことが無い。
0502デフォルトの名無しさん2014/01/20(月) 08:19:32.85
>>491
継承とかコンストラクタに引数渡せないとかたいして便利じゃないから
あとクラス毎にモジュール作ることになるけどモジュールを階層で管理する機能とかないから面倒だし
0503デフォルトの名無しさん2014/01/20(月) 08:43:55.01
便利じゃないと感じるのはスキルが低いからだろ

そりゃ昨今のメジャーな言語と比べて、相対的に便利かと言ったら便利じゃないけど
どの言語を使うかって話ではなく、VBAを使う上でクラスを活用するかどうかって話では
他言語と比べて便利かどうかという相対的な話ではなく、絶対的に便利かどうかであって
その観点で見れば、スキルさえあれば十分便利に活用できる
いろいろ不足はあってもどかしい部分も多いけど、使わないよりは使った方が遙かに便利という意味でね
0504デフォルトの名無しさん2014/01/20(月) 10:46:52.40
>>503
その例えで行くなら、VBAを使う上でクラス有りとクラス無しを比較して相対的にどうか、って考えなきゃ
0505デフォルトの名無しさん2014/01/20(月) 11:54:18.37
だからそういう話でしょ?
0506デフォルトの名無しさん2014/01/20(月) 14:18:53.69
>>502
インターフェイス継承はできるし、どうしても引数ありでオブジェクトを作りたいならFactoryメソッドを作ればいい。

> あとクラス毎にモジュール作ることになるけどモジュールを階層で管理する機能とかないから面倒だし
機能毎にアドインにまとめればいいんじゃないかな。
0507デフォルトの名無しさん2014/01/20(月) 14:37:20.31
例えば、
http://www.objectclub.jp/community/memorial/homepage3.nifty.com/masarl/article/dp-ocp-2.html
の音符の例。

Note.cls:
Public Sub Play()
End Sub

Half.cls:
Implements Note
Private Sub Note_Play()
Debug.Print "play half"
End Sub

Quater.cls:
Implements Note
Private Sub Note_Play()
Debug.Print "play quater"
End Sub

(続く)
0508デフォルトの名無しさん2014/01/20(月) 14:38:35.12
(続き)
Staff.cls:
Private mNotes As New collection

Public Sub AddNote(ByRef aNote As Note)
mNotes.Add aNote
End Sub

Public Sub Play()
Dim aNote As Note
For Each aNote In mNotes
aNote.Play
Next
End Sub

Module1.bas:
Sub PlayStaff()
Dim myStaff As New Staff

myStaff.AddNote New Half
myStaff.AddNote New Quarter
myStaff.AddNote New Half

myStaff.Play
End Sub

という感じでVBAでも実現可能。
(Collectionが順番を保証しないというのは、今回は無視)
0509デフォルトの名無しさん2014/01/20(月) 14:53:56.46
ん?CollectionってAddした順で取り出せないの?
0510デフォルトの名無しさん2014/01/20(月) 15:09:55.04
>>509
基本的にはAddした順だけど、仕様としてそれは保証されてない
0511デフォルトの名無しさん2014/01/20(月) 22:32:00.44
VBAのcolletionって、Addするときに位置指定があるんだが
指定位置勝手に変わると話にならんわけだが、ホントに保障されてないのか?
0512デフォルトの名無しさん2014/01/20(月) 22:59:04.99
>>511
仕様見ればわかることを他人に聞くな
0513デフォルトの名無しさん2014/01/21(火) 00:04:41.49
>>491
Object指向言語というより
Object指向に片足突っ込んだ構造化言語かな。

どうもMicroSoftはこんな片足突っ込んだような状態が好きなのか、
.Netフレームワークも関数型言語に片足突っ込んだObject指向言語っぽいよね。

「Object指向は考え方」って人もいるだろうけど、VBAの場合は上のレスに有ったような
面倒なストラテジーパターンも、.Netではシュチュエーション次第でもっと簡単なテンプレートパターンで書けるしね。
0514デフォルトの名無しさん2014/01/21(火) 01:11:35.57
>>503
>>502 は別に他の言語と比較してる訳じゃないんだが...
まあ、使いたいなら使えばいいんじゃね?
スキル誇示したいお年頃みたいだし (w
0515デフォルトの名無しさん2014/01/21(火) 06:25:03.06
>>506
インターフェース継承って何?
このコードの内、何が何を継承してるの?
見た感じ、インターフェースを実装して
処理を移譲することで似たような効果をもたらしているだけにしか見えないんだけど。
0516デフォルトの名無しさん2014/01/21(火) 08:12:19.84
>>506
こういうのを得意気に語ってた時期もあったなぁ... (遠い目)
0517デフォルトの名無しさん2014/01/21(火) 09:30:04.82
>>514=>>516
皆に否定されて悔しかったんだね...わかります (w
0518デフォルトの名無しさん2014/01/21(火) 10:10:47.90
>>502
こういうのを得意気に語ってた時期もあったなぁ... (遠い目)
0519デフォルトの名無しさん2014/01/21(火) 10:25:24.40
>>515
用語等については異論もあるでしょうが、重要なのは>>507のリンク先のC++のポリモーフィズム同等のことがVBAでも実現できることです。
この範囲で実現できるものであれば、VBAでもクラスが活躍できます。

それから、言わずもがなですが、クラスを使うことによるカプセル化の恩恵も受けます。
このことは、xUnitと親和性が高いです。

それと、WithEventsを使ったExcelオブジェクトとのEventを介したやり取りも便利です。
0520デフォルトの名無しさん2014/01/21(火) 16:57:10.56
webページのあるURLの「ショートカットファイル」」をデスクトップに作るにはどういうコードを書けばいいですか?

INPUT: URL
OUTPUT: 「ショートカットファイル」 on デスクトップ

ファイル名はなんでもいいです。
0521デフォルトの名無しさん2014/01/21(火) 16:58:07.68
>>520
スレ違い
0522デフォルトの名無しさん2014/01/21(火) 20:11:15.04
>>520
中身は単なるテキストファイル、拡張子はurl、そんだけ
05235202014/01/21(火) 21:40:16.22
>>522
でもメモ帳では開けないですよ。
0524デフォルトの名無しさん2014/01/21(火) 21:40:19.01
ゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0525デフォルトの名無しさん2014/01/21(火) 21:58:29.65
>>519
で?
よく分んないけど、これを継承と言うなら
これでフォームやボタンを継承して
何か作ってみてよ。
0526デフォルトの名無しさん2014/01/21(火) 22:06:05.11
>>523
普通に開ける
0527デフォルトの名無しさん2014/01/21(火) 23:07:21.24
>>517
まあ、がんばれ (w
05285232014/01/22(水) 00:26:27.94
>>526
あ、ひらけた
でも、バイナリファイルになってるんですよ
0529デフォルトの名無しさん2014/01/22(水) 02:37:51.49
>>528
そいつは拡張子がlnkじゃないか?
IEのお気に入りの中のどれかを開いてみ
0530デフォルトの名無しさん2014/01/22(水) 02:39:50.87
ググれば出てくるような話じゃないですかああああああああああああああ
0531デフォルトの名無しさん2014/01/22(水) 03:53:34.96
>>525
負け惜しみはその辺にしとけ
0532デフォルトの名無しさん2014/01/22(水) 07:37:22.14
>>531
あー負け惜しみ、負け惜しみ。
負け惜しみでもなんでもいいから
早く>>525をやってみてくれよ。
場合によって継承は移譲で代用出来るというだけのことを
なんでわざわざ「インターフェース継承」なんて言っちゃうのか。
用語の違い云々って言ってるけど、デザインパターンどうのと言ってるところの
リンク貼ってるくらいだから
その観点からも継承と移譲はそれぞれどう言う時に使うかの違いくらいは分かってるんだろ?
ポリモーフィズムなんてのは100も承知で言ってるんだよ。
移譲はあくまで移譲であって、継承の代用に出来る場合があるだけで
用語の違いとかじゃなくて、そもそもが全くの別物だろ。
0533デフォルトの名無しさん2014/01/22(水) 07:42:27.38
> あー負け
まで読んだ

素直でよろしい
0534デフォルトの名無しさん2014/01/22(水) 10:40:37.99
>>532
> 早く>>525をやってみてくれよ。
VBAで「継承」ができるとは誰も言ってないと思います。

> なんでわざわざ「インターフェース継承」なんて言っちゃうのか。
かなり昔から、VBA(VB6)のimplementsを使ったコレのことを「インターフェース継承」と言う人が多いです。
語源は、Microsoftかもしれません。
なお、Microsoftはコレのことを委譲とは言わず委任と言っているようです。

> 5.1.3| 事前バインディングによるポリモーフィックなプログラム
> Visual Basic 6の開発者は、さらにもう1つの別の方法で継承を実装することができます。それは、いわゆる
> 「インターフェイスの継承」と呼ばれる方法です。この魅力的な名前は、Implementsステートメントを使用する
> 非常に一般的な方法を表しています。この方法では、基本クラスからメソッドのシグネチャだけを「継承」し、
> その実装は継承しません。したがってこの場合にも、実際の処理を行うすべてのプログラムは、それぞれの
> 開発者の責任において記述しなければなりません。
http://msdn.microsoft.com/ja-jp/library/dd297718.aspx
0535デフォルトの名無しさん2014/01/22(水) 13:42:42.47
>>532
> 移譲はあくまで移譲であって、継承の代用に出来る場合があるだけで
> 用語の違いとかじゃなくて、そもそもが全くの別物だろ。

イジョウを正しく変換できない奴にあれこれ言われたくないが、同じか別物かなんて
ことはどうでもいいことで、それで何ができるのかが重要。
0536デフォルトの名無しさん2014/01/22(水) 13:47:58.08
不毛な言葉遊びはよそでやってくれ
なんにしても言葉の定義なんてTPOで変化するんだから水かけあったって無意味だろ
0537デフォルトの名無しさん2014/01/22(水) 13:51:58.32
定期的に「VBAのクラスなんか不要・役立たず」って言う奴でてくるね
0538デフォルトの名無しさん2014/01/22(水) 14:01:12.25
過疎スレなのにちょっとでも自分の気に入らない流れになると止めたがる奴
0539デフォルトの名無しさん2014/01/22(水) 14:15:26.81
>>537
他の言語のクラスを知って、
「VBAのクラスを見下す俺博識でカッケー」
をやりたいだけでしょ

だから毎度のことだが直ぐに崩されて泣きを見る
0540デフォルトの名無しさん2014/01/22(水) 21:58:27.42
>>539
どっちかって言うと VBA でもできるもんって言ってる奴が自爆してるとしか思えんが (w
まあ、C#A を実装すればこんな不毛な争いは起きないので、早めに頼むよ ⇒MS
0541デフォルトの名無しさん2014/01/22(水) 22:21:24.54
無料でVS配ってんだからそっち使えよ
0542デフォルトの名無しさん2014/01/22(水) 23:13:00.82
>>539
カッケー(ワラ
最高にアホっぽい表現だな(藁)
0543デフォルトの名無しさん2014/01/23(木) 00:30:34.26
VBAのプログラム使いこなす俺
月給手取り20万でちょうカッケーw
0544デフォルトの名無しさん2014/01/23(木) 02:29:35.46
コンプレックスを刺激されちゃったみたいだな
0545デフォルトの名無しさん2014/01/23(木) 05:26:49.00
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwwww
0546デフォルトの名無しさん2014/01/23(木) 07:21:56.98
なんだ継承つかえないのか




ゴミ
0547デフォルトの名無しさん2014/01/23(木) 07:46:04.62
ってことにしたくて、必死に印象操作しなければならないほど便利なVBA

本当に糞だったら突っかかる必要すら無いもんなw
0548デフォルトの名無しさん2014/01/23(木) 09:24:18.49
>>541
Excel と Visual Studio の区別もつかんのか (w
0549デフォルトの名無しさん2014/01/23(木) 11:09:02.52
シートで、入力セルと空欄セルが入れ交じっています。
これをまず上方向に重力があるときみたいに入力セルを上に落とし (←テトリスの逆バージョンみたいに)
さらに左方向に重力があるときみたいに入力セルを左に落とすには
どういうコードにすればいいですか?
0550デフォルトの名無しさん2014/01/23(木) 11:38:08.59
>> 549
「落とす」って途中経過も表示するの?
それとも最終結果だけ表示するの?
0551デフォルトの名無しさん2014/01/23(木) 11:52:16.81
>>549
普通にループで条件判断すればいいだけじゃね?
それが解らないとかなら、まだVBA使うのは君には早いから
勉強してでも達成したいか、勉強するくらいなら諦めるか、好きな方を選んでね
0552デフォルトの名無しさん2014/01/23(木) 12:30:05.05
縦だけとか横だけなら簡単だが
縦横両方となると何がしたいのかわからなくて根本から間違ってる気がしてくる
0553デフォルトの名無しさん2014/01/23(木) 15:57:23.33
下へ移動してから左へと、
左へ移動してから下へでは、結果が違ってくる

下へ移動してから、左へ移動したいの?
サメガメに似ているような
0554デフォルトの名無しさん2014/01/23(木) 16:01:46.44
この程度の仕様すら把握できないのかよ
0555デフォルトの名無しさん2014/01/23(木) 16:18:13.03
>>553
> 下へ移動してから

もうここから違うし (w
0556デフォルトの名無しさん2014/01/23(木) 18:13:05.91
スクロールバー動かすとか
0557デフォルトの名無しさん2014/01/23(木) 18:14:28.47
>>540
> まあ、C#A を実装すればこんな不毛な争いは起きないので、早めに頼むよ ⇒MS
こういうの使えば?
ttp://outofmem.tumblr.com/post/62233308198/excel-dna-1
0558デフォルトの名無しさん2014/01/23(木) 20:13:31.82
>>549
1.まず入力セルの1つ上のセルに値が入っていたり入力セルが1番上だったら3へ。
2.End(xlUp)で自分より上のセルに値がある時のセル位置を求める。求めたセル位置に
値があればその1つ下のセルに、値がなければその位置に入力セルの値を入れて元の入力セルの値を消す。
3.入力セル(2を通っていたら2で値を入れたセル。以降入力セルと呼ぶ)の1つ左のセルに値が入っていたり入力セルが1番左だったら5へ。
4.End(xltoLeft)で自分より左のセルに値がある時のセル位置を求める。求めたセル位置に
値があればその1つ右のセルに、値がなければその位置に入力セルの値を入れて元の入力セルの値を消す。
5.処理を終了する。

多分こんな感じでループを使わないで出来る・・・ような気がする。
0559デフォルトの名無しさん2014/01/23(木) 20:25:59.04
>>557
いいねコレ、Linqも使えるのか。
ぱっと見た目、WorkSheetsもジェネリック扱いっぽいし。
ってことは多分、列や行もそんな扱いなんだろうね。
後は仕事場で使う許可が下りるかどうかだけど。
05605492014/01/23(木) 23:22:56.75
このスレのことだからVBAの達人がいっぱいいるのかと思いきや実にたいしたことがないな。
ちょっと1分間空想してるだけで下のコードを思いつき、動作確認すると問題なく動き一瞬で解決した。
たった4行で実現できることだよ。

Sub Unko()
ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks).Select
Selection.Delete Shift:=xlUp
ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks).Select
Selection.Delete Shift:=xlToLeft
End Sub
0561デフォルトの名無しさん2014/01/23(木) 23:59:48.40
>>560
それで、だからどうしたの僕ちゃん
ほめて欲しいのかちゅら
すご〜イ、良く頑張ったわね、偉いわよ僕ちゃん
0562デフォルトの名無しさん2014/01/24(金) 00:03:57.36
へぇ、これは自演だったとしても凄いな。
次は30行でテトリス作ってみてよ。
0563デフォルトの名無しさん2014/01/24(金) 01:24:52.94
ここは質問スレだよ?雑談はどっかあっち行って
0564デフォルトの名無しさん2014/01/24(金) 01:26:27.06
>>563
自治厨うぜーぞ
誰もお前なんか必要としてないんだから早く消えろ
0565デフォルトの名無しさん2014/01/24(金) 01:55:32.38
ゴミじゃん
0566デフォルトの名無しさん2014/01/24(金) 07:27:32.48
>>560
ドヤ顔のとこ悪いけど、それって上と左に飛ばす対象セルの
下や右に入ってる値の入っているセルも一緒にずれない?
そうだとしたらコードもダメだけど、動作確認もダメダメだね。
0567デフォルトの名無しさん2014/01/24(金) 10:57:23.36
え?
0568デフォルトの名無しさん2014/01/24(金) 11:55:35.88
>>560
ゴミコードw
0569デフォルトの名無しさん2014/01/29(水) 23:46:00.47
VBAをある程度マスターしたいので
こんどはスマホで自作アプリをいっぱい作りたいです。

プログラミング言語は変わるんですよね?
どの入門書を読めばいいでしょうか?
VBAの知識があるのでプログラミング全般の基礎(変数の使い方、if文、for文、など)は省いて
android開発に特化した入門書を希望なのですが。
0570デフォルトの名無しさん2014/01/29(水) 23:59:50.67
>>569
スレチ
泥は基本Java
VBAの知識なんてほとんど役に立たん
0571デフォルトの名無しさん2014/01/30(木) 00:09:17.85
>>570
どういう意味?
これ?
http://www.geocities.co.jp/HeartLand/6622/potato.jpeg
0572デフォルトの名無しさん2014/01/30(木) 00:15:08.28
>>571
馬鹿かオメェは
580もjavaやれって言ってるだろ。

andoroidでどうしてVBAって発想がでてくるんだよ
0573デフォルトの名無しさん2014/01/30(木) 00:19:24.55
>>580
なるほどぉー。そうなんだー。
0574デフォルトの名無しさん2014/01/30(木) 00:20:19.41
プログラミング言語はVBAしか知らないからそういう発想だ、このやろう
0575デフォルトの名無しさん2014/01/30(木) 03:00:00.80
クラスモジュールAの中で、クラスモジュールBをインスタンス化して利用したり
クラスモジュール内から、標準モジュールのパブリックなプロシージャを呼ぶのは設計としてはアリですか?
0576デフォルトの名無しさん2014/01/30(木) 07:30:04.35
>>575
有り。
ただし、インスタンスを生成してる訳ではないので、
呼び出し先の内容はすべて一緒になることに注意。
0577デフォルトの名無しさん2014/01/30(木) 10:03:18.86
>>575
> クラスモジュールAの中で、クラスモジュールBをインスタンス化して利用したり
これはあり。

> クラスモジュール内から、標準モジュールのパブリックなプロシージャを呼ぶのは設計としてはアリですか?
これはお勧めできない。
詳しくは「結合度」でググれ。
0578デフォルトの名無しさん2014/01/30(木) 10:45:28.97
お勧めできないは過剰だろ
留意すべきことがあるなら理解できる
0579デフォルトの名無しさん2014/01/30(木) 11:04:28.31
>>578
危険がありすぎるので過剰とは思わない。
0580デフォルトの名無しさん2014/01/30(木) 11:29:33.90
>>579
コメントに書くとかUMLで管理するとかいくらでもフォローきくじゃん
標準なパブリックは使わないならその需要はどうやって埋めてんの?
0581デフォルトの名無しさん2014/01/30(木) 11:35:19.10
>>580
> コメントに書くとかUMLで管理するとかいくらでもフォローきくじゃん
そういう問題じゃなくて、結合度やカプセル化の問題。

> 標準なパブリックは使わないならその需要はどうやって埋めてんの?
使わないとは言ってないよ。クラス内部からは呼ぶべきではないと言ってるだけ。
0582デフォルトの名無しさん2014/01/30(木) 12:36:50.72
>>581
>クラス内部からは呼ぶべきではない
その代替案をご教示賜りたく
これで疑問は全て解消される気がする
0583デフォルトの名無しさん2014/01/30(木) 12:39:05.54
>>582
> その代替案をご教示賜りたく
代替案も何も、俺は基本呼ばないから代替案も糞もないんだが。
0584デフォルトの名無しさん2014/01/30(木) 12:40:36.33
ひょっとして、他言語で言うUtilityクラスにまとめると言えば納得するのかな?
0585デフォルトの名無しさん2014/01/30(木) 13:29:20.03
あーそういうことかー
じゃあやっぱり留意すべき程度じゃないのか
0586デフォルトの名無しさん2014/01/30(木) 14:02:40.66
Utilityクラスのメソッド呼ぶのも標準モジュールのパブリックメソッド呼ぶのも、あまり変わらんと思うけどなぁ。
好きにすればいいんじゃないかな。
0587デフォルトの名無しさん2014/01/30(木) 14:14:19.76
別にUtilクラスなんか作らなくても、標準モジュール名をUtilに変更してUtil.hoge()とか呼べばいいじゃん
0588デフォルトの名無しさん2014/01/30(木) 15:52:36.82
>>584-587
>>577は結合度の問題だっていってるだろ
そのUtilクラスなり標準モジュールなりに依存するようになるから
クラスの独立性が保てなくなるって話だろ

設計方法論の話であって実装の問題じゃないからな
他のモジュールに依存するクラスを良しとするなら良し
ただし一般的なクラス設計では、他のクラス(モジュール)への依存度は低い方が良いとされてる
0589デフォルトの名無しさん2014/01/30(木) 16:03:53.46
>>587に賛成
0590デフォルトの名無しさん2014/01/30(木) 16:22:09.70
>>588
標準モジュール名をUtilに変更して使うのと、C++でstd namespaceにある奴を使うのと、そんなに違いはないと思うけど
0591デフォルトの名無しさん2014/01/30(木) 17:36:51.01
標準モジュールの名前なんてどうでもいいんだけど、何でそこにこだわってる?
標準モジュール使うのにモジュール名で修飾することなんてほとんどないぞ
もしかして、標準モジュールってそこにメソッドなりがシステム側で用意されてると思ってるのか?

システム側で用意されているものに依存するのと
ユーザ側で用意するのものに依存するのと
そんなに違わないと思うならそれでいいんじゃないかね
0592デフォルトの名無しさん2014/01/30(木) 18:23:41.57
>>591
> 標準モジュールの名前なんてどうでもいいんだけど、何でそこにこだわってる?
> 標準モジュール使うのにモジュール名で修飾することなんてほとんどないぞ

グローバルな何かを使うときに、気をつけないといけないのが名前衝突。
標準モジュールでも名前を付けて呼ぶときにそれで修飾しておけば、別の標準モジュールに同名のメソッドが作成されても問題無い。
加えて、他の言語でよくある「namespace」的な役割も持たせられる。

> もしかして、標準モジュールってそこにメソッドなりがシステム側で用意されてると思ってるのか?

何を言ってるんだかわからない。

> システム側で用意されているものに依存するのと
> ユーザ側で用意するのものに依存するのと
> そんなに違わないと思うならそれでいいんじゃないかね

Utilクラスを作ってそこに自作メソッドを入れて使うのと、標準モジュールに名前を付けて使うのに、それほど差はないよねって話。
0593デフォルトの名無しさん2014/01/30(木) 19:11:22.87
>>592
>Utilクラスを作ってそこに自作メソッドを入れて使うのと、標準モジュールに名前を付けて使うのに、それほど差はないよねって話。
依存関係においてはクラスだろうが標準モジュールだろうが大差ない

Utilクラスに依存するのはOKなのにUtil標準モジュールに依存するのはダメとかいうのは話がおかしい
つまり標準モジュール呼び出しの代替案がUtilクラスにまとめるってのはおかしな話だが、それは俺の意見じゃないぞ
0594デフォルトの名無しさん2014/01/30(木) 19:48:24.29
クソどうでも良い話が続いてますが、皆さんお気兼ねなく質問をどうぞ
0595デフォルトの名無しさん2014/01/30(木) 22:18:37.25
むしろUtilityクラスのようなものこそ共通結合で作るもので、
それこそ標準モジュール向きだと思うけどなぁ。

>>582
代替え案としては、クラスモジュールで作っておいて
そのインスタンスを、使う側のクラスのプロパティに設定して内部で使う。かなぁ。
0596デフォルトの名無しさん2014/01/31(金) 00:46:27.00
VBEをコードで操作ってどんな利用シーンがあるかね?
■ このスレッドは過去ログ倉庫に格納されています