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

Excel VBA 質問スレ Part33

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

                   ___
       ___      /____ヽ      ____
      /____\    | |´・ω・`| |    /___ヽ
      .l |´・ω・`|  ニX二 . ̄ ̄ ̄  二X二  |´・ω・`| l 俺たちに任せろ
      !、 ̄ ̄ ̄  ヽ   |       |    /    ̄ ̄ ̄/
       ヽ_/ヽ、  ヽ__)  \__/\_/.   /_/  ノヽ_/
             ̄                ̄ ̄

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

このスレはコード書き込みOKです。
作成依頼もOKですが、作成依頼限定ではありません。

コードが嫌な人はこちらのスレへ
http://toro.2ch.net/test/read.cgi/tech/1381151995/l50
0002デフォルトの名無しさん2013/10/17(木) 22:11:59.51
VBAはなくならなくても文法がVB.NETライクに変わってしまう可能性はあるんかな?
0003デフォルトの名無しさん2013/10/17(木) 22:15:11.12
前スレ
01 http://pc11.2ch.net/test/read.cgi/tech/1054356121/
02 http://pc11.2ch.net/test/read.cgi/tech/1168308855/
03 http://pc11.2ch.net/test/read.cgi/tech/1180192018/
04 http://pc11.2ch.net/test/read.cgi/tech/1189814602/
05 http://pc11.2ch.net/test/read.cgi/tech/1197448064/
06 http://pc11.2ch.net/test/read.cgi/tech/1205231499/
07 http://pc11.2ch.net/test/read.cgi/tech/1212587819/
08 http://pc11.2ch.net/test/read.cgi/tech/1219673793/
09 http://pc11.2ch.net/test/read.cgi/tech/1228372971/
10 http://pc12.2ch.net/test/read.cgi/tech/1235332603/
11 http://pc12.2ch.net/test/read.cgi/tech/1241885130/
12 http://pc12.2ch.net/test/read.cgi/tech/1247566074/
13 http://pc12.2ch.net/test/read.cgi/tech/1254281104/
14 http://pc12.2ch.net/test/read.cgi/tech/1262748898/
15 http://pc12.2ch.net/test/read.cgi/tech/1271261239/
16 http://hibari.2ch.net/test/read.cgi/tech/1280045912/
17 http://hibari.2ch.net/test/read.cgi/tech/1289182437/
18 http://hibari.2ch.net/test/read.cgi/tech/1298240666/
19 http://hibari.2ch.net/test/read.cgi/tech/1305754555/
20 http://hibari.2ch.net/test/read.cgi/tech/1312435844/
21 http://hibari.2ch.net/test/read.cgi/tech/1316931607/
22 http://toro.2ch.net/test/read.cgi/tech/1322400978/
23 http://toro.2ch.net/test/read.cgi/tech/1327763113/
24 http://toro.2ch.net/test/read.cgi/tech/1334305148/
25 http://toro.2ch.net/test/read.cgi/tech/1341722983/
26 http://toro.2ch.net/test/read.cgi/tech/1345363310/
27 http://toro.2ch.net/test/read.cgi/tech/1353842387/
28 http://toro.2ch.net/test/read.cgi/tech/1359607536/
29 http://toro.2ch.net/test/read.cgi/tech/1364689772/
30 http://toro.2ch.net/test/read.cgi/tech/1370088822/
31 http://toro.2ch.net/test/read.cgi/tech/1376371376/
0004デフォルトの名無しさん2013/10/17(木) 22:31:44.49
2007です。A1に日付、B1に「あ」、C1に「い」、D1に「お」
と入力したとして、「お」が入力された時だけA1、B1、C1、D1
の入力内容をE1,F1,G1,H1に自動入力する方法はないでしょうか?

D1に「お」が入力された時だけH1に「お」を入力するのはIFでできたんですが、
条件が合った時だけセル位置を指定して自動入力する事はできないのでしょうか? 
0005デフォルトの名無しさん2013/10/17(木) 22:32:56.01
>>2
今までの資産の問題があるから多分変わらないとは思うけど、
使えるようになってくれればいいね。
0006デフォルトの名無しさん2013/10/17(木) 22:37:31.53
>>4
取り敢えず前スレがまだ消化されてるどころの話じゃないのでこっちで聞こうか

前スレ
Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151717/
0007デフォルトの名無しさん2013/10/17(木) 23:31:38.27
>>5
変わった方がいいの?
0008デフォルトの名無しさん2013/10/17(木) 23:36:04.76
>>7
変わって欲しくない人もいっぱいいるとは思うけど、
.Netはかなり便利な機能が沢山あるからね。
00097102013/10/18(金) 08:04:26.31
変えるなんてとてもできないだろうから、取り敢えず C# for Application「も」サポートしてくれ...
0010デフォルトの名無しさん2013/10/19(土) 16:27:30.16
別に無理してObject指向にせんでも
00117102013/10/19(土) 17:33:45.78
>>10
シートとかセルとかもオブジェクトなので、OOP の方が楽だよ。
とある案件で C++ から Excel 操作してるけど、楽だよ〜。
0012デフォルトの名無しさん2013/10/19(土) 18:45:25.93
VB.NetとC#は文法が違うだけで後は8割方一緒だけどC++はよく知らない。
確か3DSはC++、PSVITAはC#でコード書くんだっけ?
0013デフォルトの名無しさん2013/10/21(月) 11:44:25.92
現行スレに書きましょう。

Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151717/
0014デフォルトの名無しさん2013/10/29(火) 18:17:55.65
まぁでもたまには上げとかないとね
0015デフォルトの名無しさん2013/11/03(日) 18:57:18.55
http://www.buzzword.jp/img/face10.png
0016デフォルトの名無しさん2013/11/05(火) 12:54:43.75
>>15
この、一見ホモ顔、実はロリコン、実体はレイプ犯みたいな顔は誰
0017デフォルトの名無しさん2013/11/05(火) 13:39:47.08
お前だよ、お前
0018デフォルトの名無しさん2013/11/07(木) 13:15:50.48
>>17
ありがとう、この人物の性癖広まってるんだ
いつの手配写真だろ
韓国で整形したから同じ顔が沢山いるのかな
0019デフォルトの名無しさん2013/11/19(火) 19:18:48.76
たまには上げないと、
Dim app As New Application
app.Visible = False '無くても「ファイル名.xlsm」は表示しなかった
app.Workbooks.Open Filename:= "D:\ファイル名.xlsm"
act_sh_Name = app.ActiveSheet.Name
act_cel_Name = app.ActiveCell.Address
'act_cel_Name = app.ActiveCell.Address(True, True, xlA1, True)
'シートとセル名を一括で取得できるが利用時を考え別々に取得
app.Quit
必要最小限
0020デフォルトの名無しさん2013/11/22(金) 13:21:37.36
誘導age
0021デフォルトの名無しさん2013/11/22(金) 13:45:41.81
Application.LargeOperationCellThousandCount
コレってどんな時に使う?
使った事ある人いたら教えて
0022デフォルトの名無しさん2013/11/22(金) 14:17:06.27
>>21


http://toro.2ch.net/test/read.cgi/tech/1382015080/21
0023デフォルトの名無しさん2013/11/22(金) 15:02:23.40
>>22
意味不明〜ぃ
URL貼るなら、中身を見てからにして下さい
0024デフォルトの名無しさん2013/11/22(金) 15:43:48.29
>>21
初めてみるプロパティだからいじってみたけど
オプションの詳細設定にある 時間がかかる操作が発生したときに警告を表示する
の数値設定するだけだな
たしかにその数値がオプションに設定されるし、その設定数以上のセル削除の操作で警告がでた
マクロでセル操作してもその警告は出ないっぽいからあんまり関係ないかも
0025デフォルトの名無しさん2013/11/22(金) 15:45:28.15
オプション設定変えたら元の値解らんようになった
誰か>>24のオプションのデフォルト値いくらか教えてくれ
0026デフォルトの名無しさん2013/11/22(金) 15:49:51.76
Excel 2007以降か。
俺には関係の無い話だった。
0027212013/11/22(金) 16:11:14.92
>>24
ありがとう、理解できました。
0028デフォルトの名無しさん2013/11/22(金) 16:36:59.51
>>25
検証乙です。

ウチのPC (Win7 Office2010) では
MsgBox Application.LargeOperationCellThousandCount
の実行結果は"33554"だったよ
(""は便宜上書いてるだけで、実際には表示されてません)
0029デフォルトの名無しさん2013/11/22(金) 17:52:30.30
P001:

Ans0 = Int(Rnd * 10000)

Ans1 = Mid(Ans0, 1, 1)
Ans2 = Mid(Ans0, 2, 1)
Ans3 = Mid(Ans0, 3, 1)
Ans4 = Mid(Ans0, 4, 1)

For i = 1 To 4

If Ans(i) = 0 Then 'Controls("Ans" & i)でもコンパイルエラーが出る・・・
GoTo P001:
End If

Next
0030デフォルトの名無しさん2013/11/22(金) 18:23:29.32
>>29
Controlsはそういう使い方をするもんではない
あれはフォーム内のオブジェクトとかに使う

この場合は変数Ansを素直に配列変数で宣言すれば良いだけの話

Dim Ans(4)
とかいうふうに宣言する
配列要素の数が不定なら動的配列で宣言する
Dim Ans()
としておいて、後から必要に応じて
Redim Ans("配列要素数") とかやる
基本的に配列の大きさを変えると中身が消えるけど、
消したくないときは 
Redim Preserve Ans("配列要素数") ってやる
ただし、大きくするのはこれで良いけど、
小さくするときにあふれた要素はどうやったって消えるので注意
0031デフォルトの名無しさん2013/11/22(金) 20:24:48.16
VBAでいろんなパラメータを与えて処理するのがあるんですけど、その設定を忘れて実行しちゃったりする時があります。
んで、途中で強制的にストップさせたりするのってESCを押せば中止できるけど、エラーになってしまうじゃないですか。

エラーを起こさずに中止させる方法ってあります?
0032デフォルトの名無しさん2013/11/22(金) 20:50:03.84
>>31
プログラムで中止するなら、一応、StopとかEndとかいう命令はあるが
普通は実行するコードが無くなったら止まるのでそんな命令書かない

プログラムの外から止めるのなら、それはプログラムにとっては異常事態なんだからエラーでてもしょうがない
つかためしたけど、エラーは出てないっぽいけどな
0033デフォルトの名無しさん2013/11/22(金) 20:54:04.32
"ESC VBA エラー"でぐぐるとこの辺がヒットした。

Office TANAKA - Excel VBA Tips[Escキーでマクロを停止させない]
http://officetanaka.net/excel/vba/tips/tips60.htm

VBA応用(ESCキーで処理が止まるのをコントロールする。)
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_090_050.html

ただ、どんな処理をするのか知らんけど、
コードの内容如何によっては
何のアナウンスも出さずにただ処理を止めるだけでは
宜しくない場合ってのも有りうるわけで。

そういう場合、ESCで止めるよりも
コード実行中にパラメータの不備をチェックできるように
コード自体を書いておくほうが良いんじゃねーかなと思う。
0034デフォルトの名無しさん2013/11/22(金) 21:16:27.53
>>32,33

レスありがとです。
確かに強制的に停止させるよりは事前にパラメータの不備に対するチェックを掛けたほうが
本筋でしょうね。

紹介してくれたリンクも後で見てみます。

どもm(_ _)m
0035デフォルトの名無しさん2013/11/22(金) 21:25:13.85
私はこんな方法で途中中止の分岐してる
DoEvents
If Sheet1.OptionButton1.Value = True Then
 call 途中中止処理
End If
0036デフォルトの名無しさん2013/11/22(金) 22:48:42.85
スレ立てた順番的にはこっちが先でしょ

>>1があっても大して変わらん。

Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151995/
0037デフォルトの名無しさん2013/11/22(金) 23:56:40.27
>>36
まぁPart31を見てあっちでいいと言うドMな人はあっちのスレに行けばいいんじゃないの?
コードもExcelのアプリケーションに依存しない話も禁止らしいけどね。
0038デフォルトの名無しさん2013/11/23(土) 00:13:41.59
VBAで、Windowsの設定でバックアップしたファイルの情報を取得する方法有りませんか?
フォルダとかで右クリックしてプロパティ選択してタブで「以前のバージョン」って選択すると出てくるやつ。
そこに格納されてるファイルやフォルダの名前や更新日付が欲しいんですが、
WMIで取得しようとしたけど情報の取得方法がイマイチよく分からなくて・・・
0039デフォルトの名無しさん2013/11/23(土) 05:57:44.14
>>37
複数スレが立ってるんだから立てた順に消化すればいい。
テンプレが無くても荒れたわけだし、大して変わらん。
0040デフォルトの名無しさん2013/11/23(土) 06:23:37.78
>>38
ネタの質問だな。ググれば数秒で解決。
0041デフォルトの名無しさん2013/11/23(土) 07:15:02.62
>>40
ネタなつもりは全くなくて、
ググっても分からないので聞いているんですが・・・
WMIのShadowCopyなどを使えば何となく出来る気がするんですが、
実際に名前やタイムスタンプを取得する方法を、
コード上でどう記述すればいいのか未だに分かりません。
数秒で解決出来たなら教えて頂いても宜しいでしょうか。
004228=30=332013/11/23(土) 08:08:36.43
>>39
あのスレとこっちじゃタイトルが似てるだけで中身が別物だからなぁ…
Part32がほぼ同時に二つたって、
こっちよりの前スレが1000まで行って、向こうは未だ100も行ってないっていう現実が
あの糞テンプレが如何に嫌われてたかを如実に表してる。

さすがに自分の戦略ミスに気付いたのかテンプレ厨も今はおとなしくしてるけど
ほとぼりが冷めたら(たとえばこのスレが落ちるとかしたら)
また暴れだすのは間違いないよ。
それが分かってるから俺は向こうには書き込まない。

もちろん、向こうで書きたい人は勝手に書けば良いけど
テンプレ厨が暴れだしたら結局こっちに帰らざるを得ないと思うよ。

……って言うようなことを書くことを指して
「荒れてる」とか表現するんだろうけど、
こういう議論は>>36とか>>39みたいな馬鹿げた主張が無ければ
わざわざ言う必要が無いことなんだよね。

こっちとしても関わらずに済むので
スレのコンセプトが根本的に違うと言うことを理解して
テンプレ君には向こうで勝手に活動してもらえたらありがたいと思う。
0043デフォルトの名無しさん2013/11/23(土) 08:24:31.36
>>42
避難スレかよw
0044402013/11/23(土) 08:26:50.63
>>41
続きはこのスレでやりましょう。

Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151995/
0045デフォルトの名無しさん2013/11/23(土) 09:01:59.71
>>44
そちらのスレに行ったら普通の状態のフォルダやファイルの取得方法と勘違いされている方がおられました。
その辺の方法は流石に聞くのは失礼な部類に含まれると思っています。
私が知りたかったのは>>38でも記述した「以前のバージョン」、つまりシャドウコピー内のファイルやフォルダの情報です。
向こうのスレではその後にVB6で出来る様な事はスレ違いであるとの指摘が有ったので、
引き続きこちらでお世話になりたいと思います。
0046デフォルトの名無しさん2013/11/23(土) 09:17:57.33
>>45
アンチテンプレ厨の自演ネタ質問なので降りるわ。
0047デフォルトの名無しさん2013/11/23(土) 09:36:55.54
降りるも何も初めから舞台に上がっていないでしょ
挙句に見当違いのFSO持ち出したりしてみっともないったらありゃしない
答えられないなら下手な言い訳せずに黙って消えればいいのに
0048デフォルトの名無しさん2013/11/23(土) 09:43:33.38
>>45
何の為に必要なの?
0049デフォルトの名無しさん2013/11/23(土) 09:43:54.19
>>45
何の為に必要なの?
0050デフォルトの名無しさん2013/11/23(土) 10:32:05.39
>>49
サーバ上のフォルダやファイルの更新履歴を欲しいと思っています。
最初はサーバ上のフォルダやファイルを定期的に巡回し、その情報を取得してDBに登録する方法を考えていましたが、
膨大な数があるため、1巡するだけでも12時間以上掛かってしまいます。
それで指定されたファイルやフォルダの情報をシャドウコピー側から
取得出来ればいいなと思い聞いてみました。
0051デフォルトの名無しさん2013/11/23(土) 10:49:48.08
>>50
自演乙
0052デフォルトの名無しさん2013/11/23(土) 10:59:33.23
>>51
痛々し過ぎて見てられない
0053デフォルトの名無しさん2013/11/23(土) 11:37:18.23
自演ってことにしとかないと赤っ恥かきっぱなしだもんねw
0054デフォルトの名無しさん2013/11/23(土) 12:36:38.98
仮に自演だったとしても(まぁ自演ではない訳だけど)
トンチンカンな回答で偉そうにしていた事実は消えない
0055デフォルトの名無しさん2013/11/23(土) 13:17:41.21
ここもスレタイみるかぎり、"Excel"のVBAスレなんだが
スレチ気にするならVBAなんでもスレいけよ
0056デフォルトの名無しさん2013/11/23(土) 14:20:32.85
ExcelのVBAとVB6は被る所も多いからな。
そんなので一々ギャーギャー言うならあのドMスレに行け。
0057デフォルトの名無しさん2013/11/23(土) 14:34:44.17
>>50
シャドウコピー作る例はいっぱい見つかるけど戻すのはほとんど見ないな
かろうじて見つかったのがこれ
social.technet.microsoft.com/Forums/de-DE/57025a40-400d-498d-a163-3c613145d16c/powershell?forum=powershellja
ただ、ファイルのプロパティで出るやつは、シャドウコピーじゃない普通のバックアップも表示してるしどうやってるか知らん
そもそもファイルの更新情報とるのに12時間ってホントにそんなにかかるのか?
プロパティで出てくるのだいぶ遅いし、それで一覧つくるともっとかかる気がするけど
0058デフォルトの名無しさん2013/11/23(土) 15:41:13.67
>>57
レスありがとうございます。
シャドウコピーから取得するなら、巡回する必要もないしピンポイントで
対象のフォルダやファイルのバックアップ情報を見にいけば良いと思ったので
余り時間のことは気にしていませんでした。
そのリンク先にもWMIのShadowCopyが書いてあるのですが、
色々調べてみた結果、結局ローカルからサーバの情報を読みに行く際に
VSS登録先のIDやパスワードが必要になるのでこちらの環境上、結局は使えない
みたいです。
別にシャドウコピーを使わなくても今回は大量にある
ファイルやフォルダの履歴がピンポイントで指定して取れれば
それで良いんですが・・・。
0059デフォルトの名無しさん2013/11/23(土) 18:20:45.18
>>58
うーん。
ファイル数が多くても履歴をなんとかする方法、
知らなくもないけど、多分テンプレ君が数秒でググって教えてくれるよ。


口だけでなければ。
0060デフォルトの名無しさん2013/11/23(土) 19:16:49.58
>>59
テンプレ君は口だけなので当てには出来ません
是非>>59さまのお知恵をお貸しください
0061デフォルトの名無しさん2013/11/23(土) 19:32:01.65
>>60
大丈夫。>>40であれだけの事を豪語してるし。
まさかこれで何も無しって事はないだろw
0062デフォルトの名無しさん2013/11/23(土) 19:42:18.50
なんだよw
口だけ君がまた一人増えただけか
0063デフォルトの名無しさん2013/11/23(土) 19:53:49.10
>>62
いや、俺はテンプレ君の出方を見るよ。
どうしても駄目でギブアップと言うなら
答えんでもないけどねw
0064デフォルトの名無しさん2013/11/23(土) 20:04:45.04
>>63
あいつがギブアップなんてする訳無いじゃん
何事も無かったようにシカトして終わりだよ

大体、あんな屑相手にするより
今実際に困ってる>>38さんにアドバイスしてあげるほうが
よっぽどヤツにダメージ与えられるだろうが。

せめて期限を区切ってそれを過ぎたら回答すると宣言しておくとか
そのぐらいはしてもらわないと
今の時点では君も口だけ君と言わざるを得ない。
第一君の回答が正しいと言う保証も無いわけだし。
0065デフォルトの名無しさん2013/11/23(土) 20:28:56.03
答えられないテンプレ君が必死ですw
>>60は捨てメアド晒してくれ。先に俺の
考えた方法を送っておこう。
テンプレ君が考えを述べるまで、メールでやり取りすることにしようか。
テンプレ君が考えを述べた後はここでいくらでも俺の考えを晒してくれて構わない。
それならみんな幸せだよんな。
006660=62=642013/11/23(土) 21:04:56.72
いや、俺は別にどうでも良いのよ。
俺の能力では君の答えを聞いてもそれが正しいかどうか判断出来んし。
むしろ>>38さんに教えてあげてくれ。

ただ、こっちやあっちでそういう安い挑発をするより
答えられる質問にはこのスレで淡々と答え続けることの方が
あっちのスレの存在意義を失わせるという意味では遥かに有効だと思うよ。

あぁ、そういえばテンプレ君が俺を騙ってメールする可能性もあるから
君の正当性を証明する手法としてはおそらく不適切だね。
0067デフォルトの名無しさん2013/11/23(土) 21:13:32.42
>>65
助かります。実は代替案が思い浮かばなくて非常に困っていました。
少し諦めかけて月曜日に仕事場で何て報告しようか悩んでいた所です。
それと私は>>58ですが>>60ではありません。
宜しくお願いいたします。
[email protected]
0068デフォルトの名無しさん2013/11/23(土) 21:22:25.84
>>67
了解した。
それにしても>>60>>58では無かったとは。
>>66がテンプレ君で成りすましだったら全て帳尻が合うな。
いけずうずうしいと言うかなんというかw
0069デフォルトの名無しさん2013/11/23(土) 21:47:07.49
>>68
> >>66がテンプレ君で成りすましだったら全て帳尻が合うな。

会わねーよw
もし俺がテンプレ君だったら自虐的にも程があるだろ。
挙句に誘導してる向こうのスレじゃなくてこっちで答えられたら
ヤツにどんなメリットがあるんだよ。
(ちなみにこういうときに使うなら
「帳尻」じゃなくて「辻褄」のほうが適切だよ)

俺は向こうには書き込まないし、自分が分かる範囲の質問なら
こっちのスレで答えさせてもらってるだけだよ。

一応このスレで俺が今まで書き込んだレスは
>>28,>>30,>>33,>>42,>>47,>>52,>>54,>>60,>>62,>>64
だよ
これは全部俺の書き込みだし、このスレではこれ以外には一切書き込んで無い。
内容を吟味してテンプレ君かどうか判断してくれ。
つうか、仮に成りすましを疑われたところで
特にデメリットも無いわけだけどな。
0070デフォルトの名無しさん2013/11/23(土) 22:36:41.94
>>68
メール確認しました。
まさかここまで詳しい説明書き付けてくれて、
しかも一番重要と思える部分を既に作ってくれているとは思いもしませんでした。
家ではその部分は問題なく動いているので、
仕事場の膨大なフォルダやファイルで問題なく使えるか確認させて頂きたいと思います。
私の知識が足らず、よく分からない部分は済みませんが後でメール送付しますので宜しくお願いします。
どうもありがとうございます。
0071デフォルトの名無しさん2013/11/23(土) 22:57:52.70
>>69
そうか、信用しよう。
疑って済まんかったな。

>>70
そんな大層なもんじゃないけど、
仕事場でもちゃんと動くことを祈ってるよ。
0072デフォルトの名無しさん2013/11/24(日) 16:07:20.41
質問です
もうすぐクリスマスですが
皆さんは一緒に過ごす相手がいますか?
0073デフォルトの名無しさん2013/11/24(日) 21:22:14.19
うるせーハゲ
0074デフォルトの名無しさん2013/11/25(月) 16:21:16.46
質問です
もうすぐクリスマスですが
クリスマスまでに彼女ができるVBAのコードはありますか?
0075デフォルトの名無しさん2013/11/25(月) 21:11:46.22
ネタの質問だな。ググれば数秒で解決。
0076デフォルトの名無しさん2013/11/25(月) 22:35:38.26
ググって解決するんだ!
0077デフォルトの名無しさん2013/11/29(金) 11:03:07.73
>>74
MsgBox "Love"
0078デフォルトの名無しさん2013/11/29(金) 16:52:31.96
MsgBox "クリスマスに1日一緒にいてくれたら10万円あげちゃう", vbOKOnly
0079デフォルトの名無しさん2013/11/29(金) 21:18:14.46
インターフェースって
よく分かんないのがあるんですが
あれって何に使うんですか?
0080デフォルトの名無しさん2013/11/29(金) 22:10:15.32
vbaのどこで「インターフェース」って出てくるのさ。
Vb.Netの方でならそういうのあるのは知ってるけど(ちらっとだけどねw
0081デフォルトの名無しさん2013/11/30(土) 00:00:45.39
>>78
例えば、AというクラスとBというクラスがあったとして、
それぞれに同じ数と型の引数、同じ型の戻り値を持った同じ名前のメソッドがあったとします。
コード的にAとBのインスタンスさえ入れ換えてやれば分岐して違うクラスとして
設定しなくても一発で行けるのに・・・
と言う時に、A、B、どちらの型のインスタンスも格納出来るのがインターフェースです。
もっとも、それ用に作らなければなりませんが。

>>80
vbaには継承は有りませんが実装は有る様ですよん。
0082デフォルトの名無しさん2013/11/30(土) 06:02:14.70
>>79
クリスマスの夜に僕と君を繋いでくれる
そういうものさ
0083デフォルトの名無しさん2013/11/30(土) 13:24:33.41
早くvba.net出来ないかな。
.netになったらあんなことやこんなことも
できるようにばなるんだろうな。
いや、よく知らないけど。
0084デフォルトの名無しさん2013/12/03(火) 11:41:37.13
プログラマーなら「FizzBuzz問題」解けるよな?
http://kohada.2ch.net/test/read.cgi/prog/1209467166/6
なんですが、forの後のコロンってどういう意味があるんでしょうか?

Sub a()
Dim s, i
For i = 1 To 100: s = s & IIf(i Mod 15 = 0, "FizzBuzz", IIf(i Mod 3 = 0, "Fizz", IIf(i Mod 5 = 0, "Buzz", i))) & vbCrLf: Next
MsgBox s
End Sub
0085デフォルトの名無しさん2013/12/03(火) 15:21:31.23
>>84
改行しないで、1行に複数の命令書くときの区切り
0086デフォルトの名無しさん2013/12/03(火) 15:25:14.02
>>85
なんと、ありがとうございます
セミコロンにしようよ・・・
0087デフォルトの名無しさん2013/12/03(火) 16:21:57.89
>>86
セミコロンには別の意味が割り当てられてる
0088デフォルトの名無しさん2013/12/03(火) 21:35:40.07
>>84
へぇ、vbaでも三項演算子って使えるんだ。
vb.net辺りでも使えるけど、iifだと遅いからifの方の三項演算子使うとか色々あるんだけど、
まぁvbaのそれとは別物かも知れんね。
0089デフォルトの名無しさん2013/12/03(火) 21:49:58.38
三項演算子なんてたいそうなものじゃないよ
>>85のいうとおり一行に複数命令を書くときの単なる区切り文字
Cでのセミコロンと大体同じ(なので>>86はセミコロンにしようよと言ってると思う)
0090デフォルトの名無しさん2013/12/03(火) 21:52:40.76
あコロンのことをいってるんじゃないのか勘違い失礼
0091デフォルトの名無しさん2013/12/03(火) 22:38:33.25
VBAではIIfは関数であって演算子ではない
VB.NETでも同様
0092デフォルトの名無しさん2013/12/04(水) 02:17:02.98
GetPivotDataを使うとき、引数が条件によって変わる場合の処理ってどうすれば良いですか。
イメージとしては下記のようにしたいです。

Sub MYGETPIVOTDATA(ParamArray arr as Variant)
 GETPIVOTDATA(データ フィールド, ピボットテーブル,arr(0),arr(1),arr(2),arr(3),・・・arr(ubound(arr,1)))
End Sub
0093922013/12/04(水) 02:18:48.10
引数の数が条件によって増えたり減ったりするという意味です。
0094デフォルトの名無しさん2013/12/04(水) 10:03:51.41
数分ケース
0095デフォルトの名無しさん2013/12/04(水) 23:44:34.02
>>93
役に立つかどうかは分からんけど、この辺のでどうだろうか

http://www.moug.net/tech/exvba/0100045.html
0096デフォルトの名無しさん2013/12/05(木) 00:06:24.65
演算子と言えばXor(排他的論理和)ってのがあって
True Xor True = False
True Xor False = True
False Xor True = True
False Xor False =False
みたいにどちらか片方のみがTrueの場合にTureを、
そうじゃない場合はFalseを返すんだけど、
これの使い道って何か有る?
0097デフォルトの名無しさん2013/12/05(木) 03:16:55.19
なんだろうね。
加算機とか半加算器とかで使うのかね。
言われてみれば使ったことないかも。
0098デフォルトの名無しさん2013/12/05(木) 05:31:18.09
http://code.msdn.microsoft.com/office/VBACRC-32-dad7d087
0099デフォルトの名無しさん2013/12/05(木) 08:05:03.83
>>96
今取り込んだデータと直前のデータの Xor とって、データの変化点を見るとか。
まあ、VBA ではあまり出番はないわな。
0100デフォルトの名無しさん2013/12/05(木) 11:29:50.26
スクランブラ/デスクランブラを実装したり
擬似乱数を自前で作ったり

かな?
0101デフォルトの名無しさん2013/12/05(木) 11:54:01.45
今まで、「あ、これってxor使えば一発じゃん」と思ったことが数回あったと記憶しているが、
どういう場面だったかは思い出せない
■ このスレッドは過去ログ倉庫に格納されています