Excel VBA 質問スレ Part39 [転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2015/11/27(金) 20:36:45.35ID:9HV+ag/s___
___ /____ヽ ____
/____\ | |´・ω・`| | /___ヽ
.l |´・ω・`| ニX二 . ̄ ̄ ̄ 二X二 |´・ω・`| l 俺たちに任せろ
!、 ̄ ̄ ̄ ヽ | | /  ̄ ̄ ̄/
ヽ_/ヽ、 ヽ__) \__/\_/. /_/ ノヽ_/
 ̄  ̄ ̄
このスレはコード書き込みOKです。
作成依頼もOKですが、作成依頼限定ではありません。
コードが嫌な人・作成依頼が嫌な人は別スレ建ててください。
※前スレ
Excel VBA 質問スレ Part38 [転載禁止]2ch.net
http://peace.2ch.net/test/read.cgi/tech/1441619979/
0159デフォルトの名無しさん
2015/12/24(木) 15:57:20.63ID:ta6MMntYVBAにおいて推奨するスタイルが変わったって記事は見たことが無いから
たぶん今でも一応そのスタイルが推奨なんじゃね
言語が変わればまた話は変わるけどな
VBAはVB6とほぼ同じスタイルが推奨されてたけど
VB6のスタイルはVB.NETでは推奨されてない奴も多いし
>>158
おれの記憶ではVBAは当初からずっと、先頭以外でもDim出来たが
0160デフォルトの名無しさん
2015/12/24(木) 16:00:38.09ID:Xid/rDIR0161デフォルトの名無しさん
2015/12/24(木) 16:30:39.57ID:+bsSlAyH2001年の古い記事に従うこともないと思うがな。
0162デフォルトの名無しさん
2015/12/24(木) 17:04:02.10ID:acHF714Fそうだっけ?なら自分の記憶違いかな。
使用直前の宣言はもちろんいいんだけど、VBAって初期化を同時にできないのがすごく残念だと思う。
Dim rootPai As Double = 2 * Atn(1#) ^ 0.5
って書きたいし、もっと言えば
Const rootPai As Double = 2 * Atn(1#) ^ 0.5
としたい。
0163デフォルトの名無しさん
2015/12/24(木) 21:25:39.16ID:ta6MMntY>リテラル値、その他の定数、Is を除く算術演算子や論理演算子を組み合わせた式を指定します。
らしい
関数とか使わん単純な計算式しか書けないのね
まあ、定数なんだから関数とか呼ぶなってことか
0164デフォルトの名無しさん
2015/12/24(木) 22:14:19.63ID:ZMYfZV7G0165デフォルトの名無しさん
2015/12/25(金) 00:23:24.10ID:H9I2iCjo>結局Optiob Explicitなんてシートベルトの価値ではなくて、チャリンコの補助輪の価値しかないと思う。
Optiobなんて書き間違えるくらいだし
そっちにはチャリンコの補助輪程度でも必要なんじゃないの?
0166デフォルトの名無しさん
2015/12/25(金) 00:55:16.56ID:QRbvg4rg「補助輪なんていらねーよ」と言いながら実際は補助輪を外したことがないというオチがもう付いてるじゃないかw
0167デフォルトの名無しさん
2015/12/25(金) 01:04:21.93ID:VYJL9Hpsって宣言をして、プロシージャ内でその変数を使うときは "camelcase" ってタイプする。
その直後に "camelCase" になったらtypoしてないし、でなきゃypoがある。
いつのまにやらそういう癖がついた。
0168デフォルトの名無しさん
2015/12/25(金) 08:22:37.15ID:pG0WUl9G0169デフォルトの名無しさん
2015/12/25(金) 08:25:15.59ID:zlW/tpNm0170デフォルトの名無しさん
2015/12/25(金) 16:52:37.89ID:WI9GtdKx変数名が間違っててそれぞれ別の変数として判別されてたのはみた事がある
コードが短かったからすぐ気がついたけど
長いコードだったら気付かず見過ごしてたかもしれない
後自分で書いたコードでは Option Explicit は必ず付けてるんだけど、
配列変数の宣言は
Dim Hoge() As Long
みたいに動的に宣言して、後から
Redim Hoge(5)
みたいに要素数を再定義してた
そしたら Redim の所で変数名間違えてて
最初の変数が要素数不定のままでエラーになってしまい、
原因が分らずに悩んだ事があった
Redimだけでも変数宣言として認められちゃうから
Option Explicit 使ってても
こういうパターンの間違いだとエラーにならんのよね
0171デフォルトの名無しさん
2015/12/25(金) 19:17:09.01ID:zlW/tpNm0172デフォルトの名無しさん
2015/12/26(土) 07:11:55.98ID:4Qu0RrtJ.Netのインテリセンスのこと?
.Net暫くやってて久しぶりにVBAでコーディングすると
余りの入力補助の利かなさにメモ帳に書いてるんじゃないかと錯覚するときあるよね。
特に打ち掛けのとき、変数名とか忘れて離れたところからコピーで取ってこようとすると
「ぷりん」とか音たててエラーメッセージが出て、元の行に飛ばされるのにはカチンとくる。
0173デフォルトの名無しさん
2015/12/26(土) 07:39:57.84ID:c6cv0MwcDim list_1 という宣言に対しては、liST_1 とか入力するの。
慣れると小指が勝手にシフトキーを押すようになるw
0174デフォルトの名無しさん
2015/12/26(土) 18:14:13.26ID:0Oe8t7C6自動構文チェック外せよ
0175デフォルトの名無しさん
2015/12/28(月) 09:45:36.91ID:6hjtvMur0176デフォルトの名無しさん
2015/12/28(月) 10:05:26.91ID:aQp7bRaK処理が終わったらPCをスリープ状態にする方法を教えたまえ
0177デフォルトの名無しさん
2015/12/28(月) 10:39:16.43ID:FcSlXts61 2 3 4
. __ __ _
,i,_,i_ ,-,_ ,-i,_,l 、 :.. :. ≡=-i'__l,
| `i /'-' `i //l l iコ==ラ`'i ti
| lヽi li, → | lヽl li → l i,,l l | → ./ /l/
| l-'l |,l | | // l `"|iコ='' / /
. 'Fヲ|,H E三l_l_A | .i .| / /
,i_| .| | | || | i' /l .l,
-'‐' | || |_ l l .ヽ,ヽ,
‐' ' `‐' -'-' -'-'
脱ぐ たたむ コーヒーを 砂糖と塩を
つくる まちがえる。
0178デフォルトの名無しさん
2015/12/28(月) 12:05:07.13ID:6hjtvMurやってみましたがうまくいきません
0179デフォルトの名無しさん
2015/12/28(月) 12:15:06.34ID:ylUAFX7e0180デフォルトの名無しさん
2015/12/28(月) 13:10:18.21ID:ehrXe3tWDeclare定義してやれば 使えたよ
ちなみに(Windows8.1 + Excel2013)
0181デフォルトの名無しさん
2015/12/28(月) 13:16:09.60ID:ylUAFX7eじゃあSetSuspendstate使ってみれば?
仮想環境とかだと上手くいかないかもしれないが。
0182180
2015/12/28(月) 14:13:12.83ID:ehrXe3tW専ブラスレの騒動に見舞われたので詳しく書けないけど
https://msdn.microsoft.com/en-us/library/aa373201(VS.85).aspx
あたりが参考にならないかな?(VBAじゃないけどね)
あとは ぐぐって
0183デフォルトの名無しさん
2015/12/29(火) 10:58:22.65ID:u34Ypxabその夢がかなわない単語1つのときはどうしたらいいですか?
[通常]
createSheet
fillData
[問題]
initialize
0184デフォルトの名無しさん
2015/12/29(火) 11:42:28.29ID:WJw28H2b単語2つ目をひねり出すか…
そのままでも問題なさそうだけど
0185デフォルトの名無しさん
2015/12/29(火) 15:31:29.70ID:fz57zrCLふと思ったんだけど
[通常] の方は "どうする"+"何を" になってるけど
[問題] の方は "どうする" だけなんよね
だったらこっちも "どうする" + "何を"にすればよくね?
initializeData
initializeCell
とかとか
こう出来ない理由とかあるの?
0186デフォルトの名無しさん
2015/12/30(水) 14:22:33.58ID:WC2i3iyl一番最初のループだけ特別なコードを1行書きたいのですが
その判別はどうします?
ノーマルなFor i=1 to構文では、If i=1 Thenと単純ですが。
0187デフォルトの名無しさん
2015/12/30(水) 14:34:26.62ID:PBmz2gbU0188デフォルトの名無しさん
2015/12/30(水) 14:43:38.04ID:JPIixvGPだいたい同一処理を分かりやすくする為にEachがあるのであって、違う処理するならEachに含めちゃダメだろ。
0189デフォルトの名無しさん
2015/12/30(水) 15:23:36.66ID:yH9ydeBOforでやらない理由は?
0190デフォルトの名無しさん
2015/12/30(水) 15:37:44.87ID:WC2i3iylなにそれ?
>>188
For eachがわかりやすいので可能な限り絶対この構文を使っています(For i=1は古い)。
でもそんなときでも最初のループだけ実行したいステートメントがあるというのはVBAの経験の浅い人じゃなければよくあると思うのですが。
>>189
Forでやると言ってるのですが
0191デフォルトの名無しさん
2015/12/30(水) 15:42:53.87ID:WC2i3iylSet objTest = Nothing
という解放処理をするべきかどうかの議論がときどきありますが、
そもそもメモリ使用に関してこのSet objTest = Nothingはなにをやっているのでしょうか?
これがはっきり分かっていないままで議論しても意味がないと思うのですが。
基本的にオブジェクト変数の場合でもプロシージャ内の変数はプロシージャを抜けると役目を終えたということで消えますが
その参照先であるオブジェクトの実体はメモリに残ったままですよね?
Javaのガベージコレクションの機能があるという話はこのVBAで聞いたことが無いので
もしその実体をSet objTest = Nothingで消せるということなら
いかなるオブジェクト変数を使ったあとは必ずSet objTest = Nothingを書くべき、というのが(もし上の仮定が正しい場合)わたしの見解なのですが。
0192183
2015/12/30(水) 15:47:44.59ID:WC2i3iyl>>184
>>185
それはinitializeという英単語が引数を2つとる動詞、つまり1つ目の引数は「実行する主体」、2つ目の引数が「初期化される物」でうまくいきますが
例えば引数を1つしか取らない英単語、例えばrunだとかdieだとかappearの場合どうしたらいいのですか?
0193デフォルトの名無しさん
2015/12/30(水) 15:50:40.47ID:WC2i3iylinitializeの場合は、うんこをひねり出すかのごとく
initiializeDataやinitializeCellのようにDataやCellをひねり出すことができましたが
先にも書いたrunやdieやappearなどのときはどうしますか?
0194185
2015/12/30(水) 16:18:23.99ID:0l8puLjU全部英文で考えれば "何を"の君のゆう所の 実行主体 が付けれると思うが
・・・をrun 何を実行?(runProcess)
・・・をdie 何を殺す(が死ぬ)? (dieProcess)
・・・をappear 何が出る?(appearBigin)
※英単語の訳等の間違いはスルーして下さいね
これ以上 君に付き合うつもりは無いので あしからず(年末なんで)
0195デフォルトの名無しさん
2015/12/30(水) 16:27:23.62ID:Y9esFwyMFirstTime とかのフラグかな
0196デフォルトの名無しさん
2015/12/30(水) 18:39:36.91ID:PBmz2gbUFor i = 1 は古いって言われても、
m(i) = m1(i) + m2(i)
をどう実装するんですか?
0197デフォルトの名無しさん
2015/12/30(水) 18:58:26.89ID:JPIixvGP別の処理を施したいなら、別のForEach文なり、Do文なりを利用すべき。
そもそもForEachはオブジェクト型を扱わない場合は処理が重いので必要が無い限り極力使わない方がいい。
別の処理なら別のループとして分けられるはず。変なこだわりを持っているせいでややこしい事になっているだけ。
0198デフォルトの名無しさん
2015/12/30(水) 19:05:08.95ID:yH9ydeBO0199デフォルトの名無しさん
2015/12/30(水) 20:02:26.27ID:bRclVw7x何回目の処理かをループ内で知ることの出来る機能を持ったものがある
VBAは残念ながらそれがないから、自分でカウンタ変数を用意するか
一個目のデータに特有の項目があるならそれを判定するか、だろうね
0200デフォルトの名無しさん
2015/12/30(水) 22:00:46.01ID:yDP/mW46最初の時だけ何らかの値を計算してとっておくということであれば
Dim val As Variant として、ループの中で
If IsEmpty(val) Then val = ...
とやればいい。
余計なフラグなしにできるl。
0201デフォルトの名無しさん
2015/12/30(水) 23:44:51.92ID:RDoNJfseで
マクロ"更新"の最後にまた上のコード
以前教えてもらった1時間毎にマクロを起動するコードですが
23時になると狂って連続で"更新"マクロを繰り返してしまいます
23時から0時へは跨げないということでしょうか? 対策をお願いします
0202デフォルトの名無しさん
2015/12/31(木) 00:00:57.74ID:yJLj8/Bn対策をお願いします(キリッ
上から目線だなオイ
0203デフォルトの名無しさん
2015/12/31(木) 00:47:01.17ID:2YFGdsnlDim user_list As Collection
Dim user As Collection
Set user_list = New Collection
Set user = New Collection
user.Add Key:="SEQ_NO", Item:=user_list.Count + 1
user.Add Key:="NAME", Item:="aaa"
user.Add Key:="PASSWORD", Item:="xxx"
user_list.Add user
Set user = New Collection
user.Add Key:="SEQ_NO", Item:=user_list.Count + 1
user.Add Key:="NAME", Item:="bbb"
user.Add Key:="PASSWORD", Item:="yyy"
user_list.Add user
Dim msg As String
For Each user In user_list
If user("SEQ_NO") <> 1 Then
msg = msg & ","
End If
msg = msg & user("NAME") & ":" & user("PASSWORD")
Next
MsgBox msg
0204デフォルトの名無しさん
2015/12/31(木) 06:18:32.30ID:EUZydMuqHourは、0〜23を返す。最後には、
23 + 1 = 24
これで値を見てみれば?
Debug.Print TimeSerial(24, 0, 0)
0205191
2015/12/31(木) 08:06:51.15ID:D5b/7JR8答は、For eachループに入る直前にその1回目の書きたかったコードを書けばいいだけでした。
0206186 (=191)
2015/12/31(木) 08:07:43.82ID:D5b/7JR80207デフォルトの名無しさん
2015/12/31(木) 08:13:13.18ID:xcpAmXWKひとつ目の値を使うんじゃないのか?それをどうやって取得するんだよ?
0208デフォルトの名無しさん
2015/12/31(木) 09:43:58.89ID:18DEmBMjもしかして「僕はVBAにとても詳しいんだ」ってプライドを崩されてへそ曲げたのか。
0209デフォルトの名無しさん
2015/12/31(木) 11:11:22.46ID:xcpAmXWKFor Each z in M 構文での z と、For i = 0 To 〜 での M(i) の違いとして、
z はM(i)のコピーでしかないという点がある。(Mが配列の場合)
M がジャグ配列で要素が再び大きな配列だったりしたら重い処理になりえるな。
それに、コピーだから z に何か代入しても M には反映されない。
For i = 1は古い、なんて決めつけてると(以下略
0210デフォルトの名無しさん
2015/12/31(木) 12:11:06.57ID:3FCNx6UT1.iやjの変数の宣言がされてないとエラーが出ます。
2.下記の記述をしていますが、自分が想定したのと違う動きになります。
For i = 1 To 9
For j = 1 To 9 - i
If IsNumeric("TextBox" & (2 * (i - 1) + 2 * j + 7)) = False Then
テキストボックスを順にチェックしていきたかったのですが
なにか記述方法が間違っているのでしょうか?
ご指導のほど、よろしくお願いたします。
0211デフォルトの名無しさん
2015/12/31(木) 12:21:48.92ID:e/tEw3yPもうその通りだろうね。稚拙すぎて笑える
0212デフォルトの名無しさん
2015/12/31(木) 14:10:55.55ID:KhBichDlこんなかんじで指定するんじゃなかったっけ
Controls("TextBox" & i).Value
0213デフォルトの名無しさん
2015/12/31(木) 15:23:07.54ID:18DEmBMjFor i = 1 to 9
For j = 1 to 9 - i
Next
Next
だけならエラー吐かないのでテキストボックスの問題だなぁ。
それ以上はどういう形か分からない以上調べようがないから何とも。
全部のテキストボックスを調べて良いなら
For Each x In Me.Cotrols
If TypeName(x) = "TextBox" then
...
End If
Next
とやると簡単。Tag使って判定すれば特定のものだけ除外できるし。
0214210
2015/12/31(木) 17:47:16.72ID:3FCNx6UT順番にチェックしていく関係でこのような記述をしました。
最初にテキストボックスの7-9、7-11、7-13、・・・・7-23、9と-11、9-13のようにしたかったのです。
For i = 1 To 9
For j = 1 To 9 - i
If Abs(("TextBox" & 2 * i + 5) - ("TextBox" & 2 * (i - 1) + 2 * j + 7)) <= 100 Then
【処理内容】
End If
Next j
Next i
の記述をしたのですが・・・テキストボックスの記述方法がダメなのでしょうか?
0215デフォルトの名無しさん
2015/12/31(木) 18:21:50.17ID:xcpAmXWKのように指定すればいいみたいだけど?
0216デフォルトの名無しさん
2016/01/01(金) 08:16:43.96ID:sVrrx3Fuプログラムが終了するまでずっと有効ですか?
ある区間だけ有効にしたい、あるいはずっと有効しておきたい、のように使い分けたいこともこれから出てくると思うのです。
0217デフォルトの名無しさん
2016/01/01(金) 08:18:12.65ID:sVrrx3Fu0218デフォルトの名無しさん
2016/01/01(金) 09:06:31.31ID:HVUfaNaTあけおめ
On Error はプロシージャ内のみ有効
Application.DisplayAlertsは Excel終了するまで継続のハズ
ちなみに
On Error Resume Next
は短い範囲でかつどうしても実行時エラーの可能性が排除できない
時のみ使う方が良いとおもうよ
ステートメント毎に Errオブジェクトを見てればいいけど
不具合発生してもスルーされるからどこでどんなエラーが発生したか分らなくなる
せめて
On Error Goto ラベル
でトラップ処理するなら別だけど
0219デフォルトの名無しさん
2016/01/01(金) 10:06:58.64ID:sVrrx3Fuどもあり、ことよろ。
そうなんですか、スッキリしました。これでこれから使い分けができそうです。
0220デフォルトの名無しさん
2016/01/01(金) 10:17:22.33ID:NO+H6ZMg> ある区間だけ有効にしたい、あるいはずっと有効しておきたい
On Error Goto 0
0221デフォルトの名無しさん
2016/01/01(金) 19:56:00.98ID:xpOY3CWT個人的にはErr.Raiseをthrowのように使いたいんだけどね
0222デフォルトの名無しさん
2016/01/01(金) 20:52:55.76ID:sVrrx3Fuなるへそありがとう。
0223デフォルトの名無しさん
2016/01/01(金) 20:55:39.83ID:sVrrx3Fuどこに書けばいいとか注意点はありますか?
自分で作ったクラスの中ででもその列挙型定数は使いたいです。
0224デフォルトの名無しさん
2016/01/01(金) 21:04:54.88ID:+cD+YD5u0225デフォルトの名無しさん
2016/01/01(金) 23:06:06.65ID:+cD+YD5u0226デフォルトの名無しさん
2016/01/02(土) 01:20:56.54ID:jWkoNf5r>自分で作ったクラスの中ででもその列挙型定数は使いたいです。
やめたほうがいいです。
ライブラリとして再利用する為なんじゃないの?
むしろ、そのクラスで使うならそのクラスに実装すべきで、他でも使いたいなら
公開すればいいだけ。
クラス以外で実装した列挙型をクラス内で使いたい場合は、クラスの中で再定義
するか、橋渡しするようなプロシージャを用意する必要があるかな。
めんどくさいけどね。
>>224
コピペしかないと思うけど、
そもそもイミディエイトに出力ってDebug.Print使ってるって
ことなんだろうけど、そろそろテキストファイルに出力する方法も
覚えたらどう?
0227デフォルトの名無しさん
2016/01/02(土) 09:24:31.29ID:Dnf2flaM「もとに戻す」と「繰り返し」をショートカットでできるようにしてほしい。
ついでに「繰り返し」はctrl + yに統一してくれ。
0228デフォルトの名無しさん
2016/01/02(土) 09:44:03.17ID:Nffz1P8Xマクロ終了直前にメモ帳を起動してその文字列をそこに入力させておくためのコードは
どう書けばいいですか?
0229デフォルトの名無しさん
2016/01/02(土) 09:51:29.48ID:sxcdtv6m素直にテキストに落としてみては?
0230デフォルトの名無しさん
2016/01/02(土) 09:58:15.99ID:vN/+lOC5確かクラスでパブリックな列挙体を指定すると、クラス.列挙体.列挙値の記述が出来ないはず。
そもそも列挙体はそのクラスから生成したインスタンスで挙動が変わるものでないので、クラスに記述すること自体が微妙。
VBAは.Netと違ってSheardがないので、標準モジュールに記述して使うのが変な挙動をしなくていいと思う。
VBAでクラスを使おうとすると、まだ考え方が確立され切れていないときの状態を引きずった言語だから使い方に戸惑うことが多いよね。
ユーザー定義型なんてもっと顕著にそう言うことが起こるよ。
0231デフォルトの名無しさん
2016/01/02(土) 21:54:01.64ID:MhjWcLlUどういう使いどころあるかな?
0232デフォルトの名無しさん
2016/01/04(月) 06:20:47.61ID:D+zYtfMVまとめて管理するとかもVariantの配列に突っ込めばいいし
もうちょと互換性があれば使ったかもしれないけど
0233デフォルトの名無しさん
2016/01/05(火) 00:10:29.99ID:USCQ6V11Activeってどうやって判断しますか?
UserForm_Click()だとボタンをクリックしたときにはそれが発動されないし。
0234デフォルトの名無しさん
2016/01/05(火) 02:05:35.42ID:Kvov8i6k0235デフォルトの名無しさん
2016/01/05(火) 02:25:02.47ID:Kvov8i6kコードはそのフォームモジュールだけにに書いて
標準モジュールは作りさえしないというやり方で良いでしょうか?
いまのところ標準モジュールを作る意図が見いだせないのですが。
0236デフォルトの名無しさん
2016/01/05(火) 02:34:32.38ID:LNU3ZziC作らなくても 動作上問題ないなら 作らんでいいんじゃね?
0237デフォルトの名無しさん
2016/01/05(火) 03:15:29.83ID:mStzs5Tn普通はそのまんまのActivateイベント使うんじゃないかね
>>235
じゃあそれでいいんじゃない
0238デフォルトの名無しさん
2016/01/05(火) 03:22:29.47ID:cUCC3uaz2013だとイベント拾えないなActivateイベント
フォームロード時には発生するんだが…
0239233
2016/01/05(火) 03:30:01.47ID:Kvov8i6kそのActivateがくせもので
フォームが複数あったときにそのフォームがActivateになったときはそのイベントをひろうけど
フォームが1つだとmodelessで開いたとき普通のExcelワークシートからそのフォームにActiveが移動しても
Acticateに書いたコードは実行してくれず無反応なんですよ。
0240デフォルトの名無しさん
2016/01/05(火) 12:34:15.92ID:Kvov8i6k他のSub(例えば名前をAdditionの2つの引数を取るとします)を呼ぶときに
Addition(5 , 8)
が構文エラーとなるのが気持ち悪くてしかたがありません。
正しくは
Addition 5 , 8
Call Addition(5 , 8)
のいずれかにしなければなりません。
でもどうにかしてJavaのように
Addition(5 , 8)
のようにできる方法はありませんかね?
0241デフォルトの名無しさん
2016/01/05(火) 12:36:58.68ID:LntnFA7d無理だと思う。
Functionにはしたくないんだよね?
0242デフォルトの名無しさん
2016/01/05(火) 12:41:34.28ID:Kvov8i6kFunctionにしてもいいですよ。
でも同様にできなそうです。
0243デフォルトの名無しさん
2016/01/05(火) 12:45:32.43ID:33a1opJu0244デフォルトの名無しさん
2016/01/05(火) 12:51:11.49ID:Kvov8i6k0245デフォルトの名無しさん
2016/01/05(火) 13:01:18.99ID:LntnFA7dああ、戻り値を捨てるってことか。それも無理だと思う。
Functionにして繋げてしまえば?
result = Func1(Func2(Func3(...Addition(5, 8))))
どこにも副作用がなく、無駄な戻り値も無いようにすればいい。
0246デフォルトの名無しさん
2016/01/05(火) 13:02:44.78ID:LntnFA7dJavaを捨てて関数型に移行するのだ。VBAならそれができる。
0247デフォルトの名無しさん
2016/01/05(火) 13:16:48.58ID:YLBFKxeK気持ち悪いのは君の勝手
言語には言語の流儀がある。それが嫌ならやらなきゃいいだけ。逆に、JavaでVBAっぽく
やりたいとかアホ抜かせって話。
そして、普通みなそういう言語毎に流儀は慣れる。気持ち悪いなんて言ってるような奴は
プログラマーとしては三流。
0248デフォルトの名無しさん
2016/01/05(火) 13:56:27.25ID:LntnFA7d>>247ってプログラマなの?
0249デフォルトの名無しさん
2016/01/05(火) 16:31:17.21ID:mlWeSkma非常にレアなケースでしかメリットが出てこないが、消費するヒープがSubの方が少ないから再帰の回数が多くできる
厳密には戻り値の変数エリアを初期化する手間がなくなるので実行速度も誤差程度には速い、はず
0250デフォルトの名無しさん
2016/01/05(火) 19:25:18.04ID:LntnFA7dなるほど
s/ヒープ/スタック/
だよね?
0251デフォルトの名無しさん
2016/01/05(火) 20:12:50.80ID:KIPOXvA0・プリプロセッサを作って変換する
・MSに入社してVBAの言語仕様書を書き換える
・MSを買い取ってVBJをサボートさせる
・…
ただ、こう言う本質的でないところに突っかかる奴はたいてい適性がないので、素直にマをやめた方が本人も周りも幸せになれる
0252デフォルトの名無しさん
2016/01/06(水) 03:05:54.21ID:IHMGmJSjプログラムの覚え始めってインプリンティングみたいな愛着が湧くから、そんな時期なんでしょ。
0253デフォルトの名無しさん
2016/01/06(水) 06:08:03.77ID:wTjSz+NM逆を言えばそれしか出来ないんでしょ?wwwこんな程度で気持ち悪いとか吐いてる程度だから、Java自体のレベルも知れてる。
0254デフォルトの名無しさん
2016/01/06(水) 09:24:36.49ID:qs2eqDcnExcel VBA(windows7 Excel2010 VBA7,0)で パソコンがミュート状態かどうかを
判定したいのですが・・・
ミュート状態だと if 〜 Else で処理(ミュート解除)させようと思っていますが
ミュートかどうかを判定する方法がわかりません
みなさんのお力をお借りしたく書き込みさせて
頂きました。
よろしくお願いします 22歳OL
0255デフォルトの名無しさん
2016/01/06(水) 10:01:38.51ID:nVjV76XEmixerGetControlDetailsを使う
0256デフォルトの名無しさん
2016/01/06(水) 10:04:22.66ID:/XlzX9bHMMDevice API とかでぐぐってみる
0257デフォルトの名無しさん
2016/01/06(水) 10:36:47.15ID:qs2eqDcn>>256
早速の返信ありがとうございます
質問する前にgoogle先生に質問して
mixerGetControlDetails や
API などを使うと出来そうな感じの事が書いてあったのですが・・・
最近VBAを独学で勉強しだした私には難しくどうしたらいいか
よくわからず・・・ここで質問させていただきました
また、お時間ある時でいいのでアドバイスお願いします
まだどうしtらいいかわからないです
22歳OL
0258デフォルトの名無しさん
2016/01/06(水) 10:49:05.08ID:f2GjMEVM最後の1行 なんかバカにされてる気がするぞ
■ このスレッドは過去ログ倉庫に格納されています