トップページ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/
0002デフォルトの名無しさん2013/10/07(月) 22:20:27.82
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/
0003デフォルトの名無しさん2013/10/07(月) 22:21:12.68
あっちはコード作成依頼スレ
http://toro.2ch.net/test/read.cgi/tech/1381151717/
0004デフォルトの名無しさん2013/10/07(月) 22:35:27.60
テンプレ終了
0005デフォルトの名無しさん2013/10/08(火) 07:40:28.60
>>1★5は「コードを書いてはいけません」という意味です。
経緯は過去ログを見てください。

「コードを書いてはいけません」

大事なことなので二回言いました。
0006デフォルトの名無しさん2013/10/08(火) 07:59:12.14
>>5
クレクレ君はお断りという意味。
クレクレ君に餌を与える行為もお断りっていう意味もあるね。

自分は本スレに干渉しておきながら、他人にはコード作成依頼スレを干渉するなと命令するのは虫が良すぎるだろ。
0007デフォルトの名無しさん2013/10/08(火) 11:44:35.65
>>5
いや、書くし。
お前には止められないよ。
0008デフォルトの名無しさん2013/10/18(金) 19:20:53.39
過疎ってるなw
0009デフォルトの名無しさん2013/10/22(火) 12:16:24.02
これからはVSTOの時代!
0010デフォルトの名無しさん2013/10/22(火) 13:19:18.33
【教育】灘高校生「いまさらエクセルを学ぶより、プログラミングを学ぼう。できて当たり前の時代が来る」
http://uni.2ch.net/test/read.cgi/newsplus/1382414731/
0011デフォルトの名無しさん2013/10/26(土) 13:42:28.95
なぜ1文字変数がダメなのか語り合うスレです。
まずは>>1どうぞ意見を述べてください。
0012デフォルトの名無しさん2013/10/26(土) 15:53:02.34
236 名前:デフォルトの名無しさん :2013/10/26(土) 15:31:45.81
  >>232
  そんなに一文字変数を使いたいのなら仮引数も一文字に統一しろよw
  統一感全くなしw
  書いてて恥ずかしくないのかな。

ローカル変数と引数は異なるものだから同じにするのはどうかと思うなあ。
0013デフォルトの名無しさん2013/10/26(土) 17:55:38.35
242 名前:デフォルトの名無しさん :2013/10/26(土) 17:45:50.38
  これはもの凄くいい例が出て来たな。
  >>240
  「VAL関数は」の後に「1文字ずつ値を取得し」の文が挿入されていれば理解出来るだろうか。
  これは1文字変数にも通じる所があって、本人は分かっていて相手も分かると思っていても
  実は相手は理解に至らないということがままあるということだ。
  ましてや1文字変数など、その変数の意味を一見で理解するのはもっと困難だろう。

こじつけだな。ちょっと黙っててくれないかな。
0014デフォルトの名無しさん2013/10/26(土) 18:51:43.68
その変数のスコープが見渡せる範囲、一般的に使われるループカウンタ等
1文字でも十分な事があるのは今まで散々論議されてる

ソース全体での使われ方を見ないで単に変数の長さだけを問題にするやつは相手にする価値はない
0015デフォルトの名無しさん2013/10/26(土) 18:52:49.90
こっちに書くってのはいいね
0016デフォルトの名無しさん2013/10/26(土) 18:58:12.17
>>14
俺もそれに完全に同意。
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
256 :デフォルトの名無しさん:2013/10/26(土) 19:22:27.05
  >>252
  公開範囲考えるなら可読性も考えろよ。
  関数が短いからと言っても処理を見るまで分からないものは可読性は低い。
  1文字変数をよしとするとそれ以外の変数と混在させそう。
  こうなると、作り手が何考えてるのか分からなくなる。
  知らないうちにバグを埋め込むことになってるって意識ないんんだろうなぁ。

  1文字変数だけじゃなくコメントなしっていうのも大いに問題があるんだが。

1文字変数をなくしたところで可読性は変わらないよ。むしろ悪くなるんじゃないかな。
0019デフォルトの名無しさん2013/10/26(土) 21:21:52.87
コードの可読性なんてコメント次第だろ
どうして数式やロジックをいちいち解読すること前提で話を進めるんだよ
0020デフォルトの名無しさん2013/10/26(土) 21:26:21.83
>>19
この変数はこのループでしか使わないものですなんて
間抜けなコメント書かないだろ。コードの可読性とコメントは別物だよ。
0021デフォルトの名無しさん2013/10/26(土) 21:36:04.30
ここで言う可読性ってのは、コメントとかがなくてコード読んで行くときに
どのくらいそのコードが読みやすいか、って問題を話してるんだが
0022デフォルトの名無しさん2013/10/26(土) 21:49:12.14
逆に言えば可読性を失わなければ1文字でも問題ないわけ
0023デフォルトの名無しさん2013/10/26(土) 21:50:19.58
ijはループ用の捨て変数だってことぐらいわかれ
常識以前の問題
0024デフォルトの名無しさん2013/10/26(土) 22:12:12.01
265 :デフォルトの名無しさん [↓] :2013/10/26(土) 22:08:00.69
  なるほど。
  多数の初心者が来るこのスレで
  可読性そっちのけで相手の技術力だよりと言うことか。
  余り威張って言えることではないな。

変数のスコープが狭ければ1文字変数使っても可読性は落ちないよ。
0025デフォルトの名無しさん2013/10/26(土) 22:15:43.72
何かループ変数を捨て変数と言っちゃうやつがいるな
常識が欠落しすぎて失笑
0026デフォルトの名無しさん2013/10/26(土) 22:21:28.82
>>25
捨て変数ってなんだろ・・・

それでは実装を比較してみようか。
クイックソートを実装してみよう。
俺は1文字変数使って実装するから
>>25は1文字変数使わずにこれが理想だって言うのを書いてみて。
もちろんコメントを入れるのがいいと思ってるのならコメントも入れて。
0027デフォルトの名無しさん2013/10/26(土) 22:29:28.51
一時的な変数にがっちり名前付けなきゃいけない状況、それ自体が設計ミスやろ

qsort [] = []
qsort (pivot:xs) = qsort [x | x <- xs, x < pivot] ++ [pivot] ++ qsort [x | x <- xs, x >= pivot]
0028デフォルトの名無しさん2013/10/26(土) 22:32:35.52
268 :デフォルトの名無しさん [↓] :2013/10/26(土) 22:31:28.29
  >>267
  ネットに残してるわけだから1文字変数なんて使えないだろw

イミフw
0029デフォルトの名無しさん2013/10/26(土) 22:44:43.22
272 :デフォルトの名無しさん [↓] :2013/10/26(土) 22:40:34.17
  >>267
  言いたいことは分からなくもない。
  だが初心者などはその様な背景を読み取れる訳もなく、
  そのままそれを当たり前だと思ってしまう。
  俺には1文字変数を使うなという強制力は全く無いが、
  それはクソコードだと罵られるのは仕方のないことだとも同時に思っている。

当たり前と思って何が悪いんだ。クソコードと罵るのは自分なのに
まるで責任が自分にないかのような言い方だなあ。
0030デフォルトの名無しさん2013/10/26(土) 22:48:10.47
273 :デフォルトの名無しさん [↓] :2013/10/26(土) 22:45:58.16
  >>267
  短いコードなら最初からきちんと作っても、適当に作るのとそんなに時間は変わらない。
  何が問題なのかさっぱりなんだが。
  っていうか可読性を無視してる時点でアセンブラでも使ってろと言いたい。

だから1文字変数使っても可読性落ちないってば
0031デフォルトの名無しさん2013/10/26(土) 22:59:16.31
できた

Sub 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
287 :デフォルトの名無しさん [↓] :2013/10/26(土) 23:24:28.02
  >>286
  今更何言ってんだ?w

逃げちゃった・・・
0034デフォルトの名無しさん2013/10/26(土) 23:32:18.85
293 :デフォルトの名無しさん [↓] :2013/10/26(土) 23:30:30.31
  >>289
  >>189であれば、rの意味するもの、cの意味する適切な名前をつければいいだけだと思うが。
  糞コード読む気にもならないから何を意味するものか知らんから書けないw

わからないんだ……
0035デフォルトの名無しさん2013/10/27(日) 01:02:38.55
読まずに糞コードかどうかがわかるなんてスゴイナー
0036デフォルトの名無しさん2013/10/27(日) 01:27:28.70
え、おまえわかんないの?
0037デフォルトの名無しさん2013/10/27(日) 01:42:44.41
俺は署名見ただけでわかる。
0038デフォルトの名無しさん2013/10/27(日) 02:00:39.33
話の流れで「お、そろそろ糞コードが貼られるターンだな」って直感する
0039デフォルトの名無しさん2013/10/27(日) 02:10:44.18
>>38が直感してるあたりで、そろそろ俺のコードの出番かなと思ってる。
0040デフォルトの名無しさん2013/10/27(日) 02:47:42.38
ここってコードが貼られるほうのスレを観察して観想言うスレになっちゃったの?
■ このスレッドは過去ログ倉庫に格納されています