Excel VBA 質問スレ Part32
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2013/10/07(月) 22:19:55.86★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/
0002デフォルトの名無しさん
2013/10/07(月) 22:20:27.8202 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/
0003デフォルトの名無しさん
2013/10/07(月) 22:21:12.68http://toro.2ch.net/test/read.cgi/tech/1381151717/
0004デフォルトの名無しさん
2013/10/07(月) 22:35:27.600005デフォルトの名無しさん
2013/10/08(火) 07:40:28.60経緯は過去ログを見てください。
「コードを書いてはいけません」
大事なことなので二回言いました。
0006デフォルトの名無しさん
2013/10/08(火) 07:59:12.14クレクレ君はお断りという意味。
クレクレ君に餌を与える行為もお断りっていう意味もあるね。
自分は本スレに干渉しておきながら、他人にはコード作成依頼スレを干渉するなと命令するのは虫が良すぎるだろ。
0007デフォルトの名無しさん
2013/10/08(火) 11:44:35.65いや、書くし。
お前には止められないよ。
0008デフォルトの名無しさん
2013/10/18(金) 19:20:53.390009デフォルトの名無しさん
2013/10/22(火) 12:16:24.020010デフォルトの名無しさん
2013/10/22(火) 13:19:18.33http://uni.2ch.net/test/read.cgi/newsplus/1382414731/
0011デフォルトの名無しさん
2013/10/26(土) 13:42:28.95まずは>>1どうぞ意見を述べてください。
0012デフォルトの名無しさん
2013/10/26(土) 15:53:02.34>>232
そんなに一文字変数を使いたいのなら仮引数も一文字に統一しろよw
統一感全くなしw
書いてて恥ずかしくないのかな。
ローカル変数と引数は異なるものだから同じにするのはどうかと思うなあ。
0013デフォルトの名無しさん
2013/10/26(土) 17:55:38.35これはもの凄くいい例が出て来たな。
>>240
「VAL関数は」の後に「1文字ずつ値を取得し」の文が挿入されていれば理解出来るだろうか。
これは1文字変数にも通じる所があって、本人は分かっていて相手も分かると思っていても
実は相手は理解に至らないということがままあるということだ。
ましてや1文字変数など、その変数の意味を一見で理解するのはもっと困難だろう。
こじつけだな。ちょっと黙っててくれないかな。
0014デフォルトの名無しさん
2013/10/26(土) 18:51:43.681文字でも十分な事があるのは今まで散々論議されてる
ソース全体での使われ方を見ないで単に変数の長さだけを問題にするやつは相手にする価値はない
0015デフォルトの名無しさん
2013/10/26(土) 18:52:49.900016デフォルトの名無しさん
2013/10/26(土) 18:58:12.17俺もそれに完全に同意。
0017デフォルトの名無しさん
2013/10/26(土) 19:13:35.80あると分かった時点で議論の余地はない。
むこうのスレの>>196はいいものを見つけてくれたもんだ。
196 :デフォルトの名無しさん:2013/10/26(土) 03:59:07.74 そういや前なんかそんなことで荒れてたね。
何かこんなの見っけたよ。
http://msdn.microsoft.com/ja-jp/library/aa291593.aspx#vxconcodingtechniquesanchor3
これはVisualStudio.Netのものだけど
VB.Netの元になっているVB6も、VB6と同じ文法のVBAも
当てはまりそうなんで載せとくよ。
0018デフォルトの名無しさん
2013/10/26(土) 19:34:25.93>>252
公開範囲考えるなら可読性も考えろよ。
関数が短いからと言っても処理を見るまで分からないものは可読性は低い。
1文字変数をよしとするとそれ以外の変数と混在させそう。
こうなると、作り手が何考えてるのか分からなくなる。
知らないうちにバグを埋め込むことになってるって意識ないんんだろうなぁ。
1文字変数だけじゃなくコメントなしっていうのも大いに問題があるんだが。
1文字変数をなくしたところで可読性は変わらないよ。むしろ悪くなるんじゃないかな。
0019デフォルトの名無しさん
2013/10/26(土) 21:21:52.87どうして数式やロジックをいちいち解読すること前提で話を進めるんだよ
0020デフォルトの名無しさん
2013/10/26(土) 21:26:21.83この変数はこのループでしか使わないものですなんて
間抜けなコメント書かないだろ。コードの可読性とコメントは別物だよ。
0021デフォルトの名無しさん
2013/10/26(土) 21:36:04.30どのくらいそのコードが読みやすいか、って問題を話してるんだが
0022デフォルトの名無しさん
2013/10/26(土) 21:49:12.140023デフォルトの名無しさん
2013/10/26(土) 21:50:19.58常識以前の問題
0024デフォルトの名無しさん
2013/10/26(土) 22:12:12.01なるほど。
多数の初心者が来るこのスレで
可読性そっちのけで相手の技術力だよりと言うことか。
余り威張って言えることではないな。
変数のスコープが狭ければ1文字変数使っても可読性は落ちないよ。
0025デフォルトの名無しさん
2013/10/26(土) 22:15:43.72常識が欠落しすぎて失笑
0026デフォルトの名無しさん
2013/10/26(土) 22:21:28.82捨て変数ってなんだろ・・・
それでは実装を比較してみようか。
クイックソートを実装してみよう。
俺は1文字変数使って実装するから
>>25は1文字変数使わずにこれが理想だって言うのを書いてみて。
もちろんコメントを入れるのがいいと思ってるのならコメントも入れて。
0027デフォルトの名無しさん
2013/10/26(土) 22:29:28.51qsort [] = []
qsort (pivot:xs) = qsort [x | x <- xs, x < pivot] ++ [pivot] ++ qsort [x | x <- xs, x >= pivot]
0028デフォルトの名無しさん
2013/10/26(土) 22:32:35.52>>267
ネットに残してるわけだから1文字変数なんて使えないだろw
イミフw
0029デフォルトの名無しさん
2013/10/26(土) 22:44:43.22>>267
言いたいことは分からなくもない。
だが初心者などはその様な背景を読み取れる訳もなく、
そのままそれを当たり前だと思ってしまう。
俺には1文字変数を使うなという強制力は全く無いが、
それはクソコードだと罵られるのは仕方のないことだとも同時に思っている。
当たり前と思って何が悪いんだ。クソコードと罵るのは自分なのに
まるで責任が自分にないかのような言い方だなあ。
0030デフォルトの名無しさん
2013/10/26(土) 22:48:10.47>>267
短いコードなら最初からきちんと作っても、適当に作るのとそんなに時間は変わらない。
何が問題なのかさっぱりなんだが。
っていうか可読性を無視してる時点でアセンブラでも使ってろと言いたい。
だから1文字変数使っても可読性落ちないってば
0031デフォルトの名無しさん
2013/10/26(土) 22:59:16.31Sub Quick(a)
InQuick a, LBound(a), UBound(a)
End Sub
Sub InQuick(a, lo, up)
l = lo
g = up
p = a(lo)
Do While l <= g
Do While a(l) < p
l = l + 1
Loop
Do While a(g) > p
g = g - 1
Loop
If l > g Then
Exit Do
End If
Swap a, l, g
l = l + 1
g = g - 1
Loop
End Sub
Sub Swap(a, x, y)
t = a(x)
a(x) = a(y)
a(y) = t
End Sub
0032デフォルトの名無しさん
2013/10/26(土) 23:05:30.25逆にそのアルゴリズム知ってる奴からすれば変数名は関係なくコードの形だけでやってることは把握できるし
0033デフォルトの名無しさん
2013/10/26(土) 23:26:37.64>>286
今更何言ってんだ?w
逃げちゃった・・・
0034デフォルトの名無しさん
2013/10/26(土) 23:32:18.85>>289
>>189であれば、rの意味するもの、cの意味する適切な名前をつければいいだけだと思うが。
糞コード読む気にもならないから何を意味するものか知らんから書けないw
わからないんだ……
0035デフォルトの名無しさん
2013/10/27(日) 01:02:38.550036デフォルトの名無しさん
2013/10/27(日) 01:27:28.700037デフォルトの名無しさん
2013/10/27(日) 01:42:44.410038デフォルトの名無しさん
2013/10/27(日) 02:00:39.330039デフォルトの名無しさん
2013/10/27(日) 02:10:44.180040デフォルトの名無しさん
2013/10/27(日) 02:47:42.380041デフォルトの名無しさん
2013/10/27(日) 07:31:44.97ここは荒らしを隔離するためのスレってことでいんじゃないかな。
あっちのスレで荒らしにレスして汚したくないんだよね。
0042デフォルトの名無しさん
2013/10/27(日) 08:03:49.26テンプレを見ればわかるようにここが本スレです
0043デフォルトの名無しさん
2013/10/27(日) 10:05:07.77良かったじゃないか
多少なりとも賑わって
0044デフォルトの名無しさん
2013/10/29(火) 18:15:59.91それとも本当に口だけ?
0045デフォルトの名無しさん
2013/10/29(火) 20:09:38.23コードが書けるわけないじゃないですか
0046デフォルトの名無しさん
2013/10/29(火) 20:29:33.83口だけテンプレ君
でいいな
0047デフォルトの名無しさん
2013/10/29(火) 23:31:40.42人のコードにいちゃもん付けてコード書けない奴ってなんなの?
0048デフォルトの名無しさん
2013/10/30(水) 08:41:20.76的確な事やもっともな事を言える評論家ならまだしも
コードも書けない上に、下らないいちゃもんしか書けない
口だけ厨は単なる鼻つまみ者だし
もっと実のある書き込みをする人だったら
ここまで馬鹿にされまくることもないだろうに
0049デフォルトの名無しさん
2013/10/30(水) 18:03:45.31荒らしまくっていいスレはここですか?
0050デフォルトの名無しさん
2013/10/30(水) 19:11:59.82すでに荒地状態なのでいくらでもどうぞ
0051デフォルトの名無しさん
2013/10/30(水) 20:04:57.06・1文字変数の許容可否
・Nothingによる変数の後始末
・クレクレ君の許容可否
・口だけテンプレ君の存在価値
0052デフォルトの名無しさん
2013/10/31(木) 00:21:00.08特に3番目は丸投げ、4番目はコードすら書けないということはプログラマですらないということで
>>1★5に抵触する可能性があります。
以後クレクレ君、口だけテンプレ君はこのスレではスレ違いになると認識してください。
0053デフォルトの名無しさん
2013/11/01(金) 13:31:13.81格納した値をもとにδr、δg、δbを計算して出力するというプログラムなのですが
81600行くらいしたところで ”実行時エラー1004:アプリケーション定義またはオブジェクト定義のエラーです。”とでます。
何がだめなのでしょうか。
005453
2013/11/01(金) 14:10:22.01https://friendpaste.com/wQmRdo4I0YvpYqsEVhdCk
0055デフォルトの名無しさん
2013/11/01(金) 14:29:09.520056デフォルトの名無しさん
2013/11/01(金) 15:21:01.55いちいちwritesheetに値を書き込むのはなんで?
あと、直接のエラー解消策じゃ無いけど、この程度のデータ量なら配列作ってオンメモリで計算したら?
0057デフォルトの名無しさん
2013/11/01(金) 15:27:29.31あっちにも回答はあったようだけど、とりあえず。
行数は変数S、Ysで変更している。
81600行ということから、Yのループで何回実行されたかを算出する。
Tのループは最大3263なので
81600 / 3263 = 25.0076・・・
ということで25回程度実行されている。
後は問題となっている行にブレークポイントを貼り付けて
Yが25回付近の時点でステップ実行しながら
変数の値をチェックしていけば何かしら分かると思う。
0058デフォルトの名無しさん
2013/11/01(金) 18:15:52.37そうなんですよね、別に書き込まなくてもいいんですよね。。。
δr、δg,δ,bを計算すればいいだけですから 笑
そうですね配列でオンメモリ使った方がわかりやすいプログラムかけますね
でも3*4000*3000の値を拾いますけど大丈夫ですかね?
>>57
はい、もっと列を活用しようとおもいます。
0059デフォルトの名無しさん
2013/11/14(木) 21:23:57.500060デフォルトの名無しさん
2013/11/22(金) 10:00:38.91ある条件のときそのループをぬけるにはどんなコード書くんでしたっけ?
全体をぬけるExit Forではなく、その単一ループをぬけてiを次の値で繰り返したいんです。
0061デフォルトの名無しさん
2013/11/22(金) 10:43:51.83Excel VBA 質問スレ Part33
http://toro.2ch.net/test/read.cgi/tech/1382015080/
0062デフォルトの名無しさん
2013/11/22(金) 10:55:08.38Cなんかにある continue ってのは無いから
for next
if then
end if
end enxt
でやるしかないのでは?
0063デフォルトの名無しさん
2013/11/22(金) 11:08:37.690065デフォルトの名無しさん
2013/11/22(金) 11:38:40.76初心者にいいかげんなこと教えるなよ
VBAはFor〜Nextだぞ
0066デフォルトの名無しさん
2013/11/22(金) 11:55:12.50ちょっとしたタイプミスぐらいに目くじらを立てんなヴォケ
それくらい判るだろ、低能
0067デフォルトの名無しさん
2013/11/22(金) 11:56:27.76ま、判ってるからいいだろ w
0068デフォルトの名無しさん
2013/11/22(金) 13:01:17.73...
If ... Then GoTo LOOPEND
...
LOOPEND:
Next
0069デフォルトの名無しさん
2013/11/22(金) 13:21:05.22Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151717/
の次スレは、このスレじゃなくてこっちです。
Excel VBA 質問スレ Part33
http://toro.2ch.net/test/read.cgi/tech/1382015080/
0070デフォルトの名無しさん
2013/11/22(金) 13:22:55.41一人でやってろカス
0071デフォルトの名無しさん
2013/11/22(金) 13:39:06.67Part32時代に、ほとんどの人がこのスレ>>1を忌避し、もう一つのスレしか使ってません。
よって、一人ではありません。
なし崩し的にまた>>1を復活させるのを阻止するための誘導です。
本スレはこちら↓
Excel VBA 質問スレ Part33
http://toro.2ch.net/test/read.cgi/tech/1382015080/
0072デフォルトの名無しさん
2013/11/22(金) 13:51:14.72選択しテンプレ議論に終止符を打ち、さらに次スレまで用意されてたという怪我の功名。
0073デフォルトの名無しさん
2013/11/22(金) 13:56:28.020074デフォルトの名無しさん
2013/11/22(金) 14:18:09.060075デフォルトの名無しさん
2013/11/22(金) 15:04:52.960076デフォルトの名無しさん
2013/11/22(金) 16:08:16.730077デフォルトの名無しさん
2013/11/23(土) 00:02:08.630078デフォルトの名無しさん
2013/11/23(土) 08:30:35.61>>38
ネタの質問だな。ググれば数秒で解決。
0079デフォルトの名無しさん
2013/11/23(土) 08:32:39.90>>41
続きはこのスレでやりましょう。
Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151995/
0080デフォルトの名無しさん
2013/11/23(土) 08:39:10.39> 41 返信:デフォルトの名無しさん[sage] 投稿日:2013/11/23(土) 07:15:02.62
> >>40
> ネタなつもりは全くなくて、
> ググっても分からないので聞いているんですが・・・
> WMIのShadowCopyなどを使えば何となく出来る気がするんですが、
> 実際に名前やタイムスタンプを取得する方法を、
> コード上でどう記述すればいいのか未だに分かりません。
> 数秒で解決出来たなら教えて頂いても宜しいでしょうか。
VB6のサイトだけど、使えると思う。
http://www.red.oit-net.jp/tatsuya/vb/FileSystemObject.htm
ファイルシステムオブジェクトだからこれ以上のやり取りはしないけど。
0081デフォルトの名無しさん
2013/11/23(土) 08:40:42.40★3 ExcelのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。
★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。
0082デフォルトの名無しさん
2013/11/23(土) 08:44:31.07よう、テンプレ厨。
0083デフォルトの名無しさん
2013/11/23(土) 08:46:33.85このスレはテンプレが絶対のテンプレスレです。
テンプレとわずかでもずれてたら即刻出て行ってもらいます。
0084デフォルトの名無しさん
2013/11/23(土) 08:48:42.62どうぞ別スレに行ってください。
0085デフォルトの名無しさん
2013/11/23(土) 08:52:15.78ようはルールを理解してないというか、理解しようとしてないんだよな。
★3、★4の意味が全く理解できていない。
前にも話が出ていたから説明は割愛するけど、
>>80のレス程度なら問題ないと思うが。
0086デフォルトの名無しさん
2013/11/23(土) 08:57:48.65>>80は★3★4のルールに明確に違反しています。
あなたに思うところがあるのはわかりますが、このスレはルールを守ってもらうのが絶対原則です。
ルールに従えないならどうぞ出て行って、よそのスレでやってください。
0087デフォルトの名無しさん
2013/11/23(土) 09:02:45.32重複スレを使うのは止めて頂けませんか?
0088デフォルトの名無しさん
2013/11/23(土) 09:22:40.63>>45
アンチテンプレ厨の自演ネタ質問なので降りるわ。
わからないだけのくせにwちなみにこいつはテンプレ厨、このスレを建てたやつですww
0089デフォルトの名無しさん
2013/11/23(土) 09:47:25.86>>45
何の為に必要なの?
49 :デフォルトの名無しさん [↓] :2013/11/23(土) 09:43:54.19
>>45
何の為に必要なの?
荒らしだしたw
0090デフォルトの名無しさん
2013/11/23(土) 09:50:16.17カッコつけて逃げようとしたけどバレて
ファビョって荒らす ←いまここ
>>1は毎回こんなことをやっています
0091デフォルトの名無しさん
2013/11/23(土) 09:53:25.48>>38
ネタの質問だな。ググれば数秒で解決。
質問を理解せずにFileSystemObjectをググって見つけて質問を解決した気になっただけのテンプレ厨w
0092デフォルトの名無しさん
2013/11/24(日) 13:39:45.22LANネットワークの共有フォルダに置いてある1つのExcelのファイルを数人で書き換えている場合に
他の人が開きっぱなしにしていて何時間たっても書き込みができない状態で明らかに忘れていると思われるような場合に
VBAのコマンド等で強制的に使用者を非アクセスの状態にすることはできないのでしょうか?
0093デフォルトの名無しさん
2013/11/24(日) 13:54:50.59VBAのコマンドでほかのPCの操作ができたらびっくりするわ
複数アクセス状態で実行したらどうなるか知らんけど
Workbook.ExclusiveAccessdsで共有解除できるらしいから試してみたら?
0094デフォルトの名無しさん
2013/11/24(日) 19:22:18.42共有するのはダメなん?
0095デフォルトの名無しさん
2013/11/24(日) 20:09:30.78すべて普通の数値に変換するためにはどうすればいいですか?
対象はアクティブになってるシートのすべてのセルでそうなってるものすべて。
■ このスレッドは過去ログ倉庫に格納されています