Excel VBA 質問スレ Part32
レス数が1000を超えています。これ以上書き込みはできません。
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/
0951デフォルトの名無しさん
2014/06/13(金) 14:29:39.15ID:QETwEf+A本スレとマルチだし、向こうでかなり暴れてたから
もうこっちには来ないと思う。
0952デフォルトの名無しさん
2014/06/14(土) 13:12:04.56ID:i5Ueiwm/印刷の代わりに使える分かりやすい言葉はないですか?
0953デフォルトの名無しさん
2014/06/14(土) 14:15:23.09ID:NIfTAMoHバーチャルプリント
0954デフォルトの名無しさん
2014/06/14(土) 14:54:03.19ID:i5Ueiwm/如何にもな言葉してますね…
ありがとうございます助かりました!
0955デフォルトの名無しさん
2014/06/24(火) 08:53:44.32ID:A58N03NN先頭の文字と「、」の後の一文字だけ大文字にすることってできるかな?
PROPERを使うと、Hoge Hoge、Huga Hugaみたいになるし、
UPPERは特定の文字だけ変換する方法わからんし、
できれば関数で簡単に処理したいんですが、無理かな?
0956デフォルトの名無しさん
2014/06/24(火) 09:44:48.41ID:qWqYgHU9普通に「、」でSplitして、ループ内で1文字目だけ大文字に変換して、Joinで再連結すればいいんじゃね?
関数にしたいなら、それを関数として定義すれば良いだけのことだし
1文字目だけ大文字にする方法はいくつかあるが
Midの関数ではなくステートメントの方を使うのが簡単かもな
0957デフォルトの名無しさん
2014/06/24(火) 11:03:40.25ID:A58N03NNそっかー。
簡単にできる関数が用意されてないかな?と思ったんだけど、無いんだね。
わざわざVBA作るほど沢山あるわけじゃないから、手で治すことにするよ。
アドバイスごち
0958デフォルトの名無しさん
2014/06/28(土) 22:46:48.16ID:SUZfbKz3EXCELは0行0列がないから1スタートにしてるんだけど
For文は変数を0と1のどっちでスタートさせてる?
0959デフォルトの名無しさん
2014/06/28(土) 23:05:08.46ID:++0JMPiRFORループ内でアクセスするオブジェクトに依存するんじゃね
オブジェクトに依存しない時は 1スタートの方が分かりやすいと思うが
0960デフォルトの名無しさん
2014/06/28(土) 23:08:57.04ID:SUZfbKz3さんくす
セルを参照したり、書きこむ場合は1スタートの方が便利だよぁ
C言語では0スタートが当たり前だから、FORの性質間違え易いんだよね
0961デフォルトの名無しさん
2014/06/28(土) 23:19:53.58ID:vnVg5isxケースバイケースで処理内容に合わせて適切な値を選ぶだけ
Forの性質とか意味不明
0962デフォルトの名無しさん
2014/06/28(土) 23:19:55.85ID:++0JMPiR0スタートになれてるなら
オブジェクトに依存しない時も 0スタートの方が混乱しないと思うぞ
0963デフォルトの名無しさん
2014/06/28(土) 23:26:55.43ID:vnVg5isx0964デフォルトの名無しさん
2014/06/28(土) 23:29:21.75ID:xYrnaOxY0965デフォルトの名無しさん
2014/06/29(日) 00:10:17.76ID:r3ERVTwDじゃあお前はお前のルールで統一しとけ
0966デフォルトの名無しさん
2014/06/29(日) 00:14:35.94ID:obj95/HS0967デフォルトの名無しさん
2014/06/29(日) 00:18:23.91ID:CZI2SpAG0968デフォルトの名無しさん
2014/06/29(日) 00:24:34.10ID:c8G3vdag1スタートに統一するなら他言語を wwwwww
'0スタート
'(A1:A10まてイミディエイトへ表示)
For I = 0 To 9
Debug.Print Cells(I + 1, "A")
Next
0969デフォルトの名無しさん
2014/06/29(日) 00:36:45.71ID:7WQEgw+o0970デフォルトの名無しさん
2014/06/29(日) 00:46:16.93ID:c8G3vdag関係ないねwwwww
0971デフォルトの名無しさん
2014/06/29(日) 01:39:14.46ID:obj95/HSこんなのはどうやって統一すんだよ
For i = -2.73 To 6.58 Step 0.52
いちいち0スタート増分1に書き直してたらコーディングの手間も増えるしバグの元だろ
0972デフォルトの名無しさん
2014/06/29(日) 01:54:33.08ID:ojuPNtQE何の目的でそんなバカコード書いてんだよw
0973デフォルトの名無しさん
2014/06/29(日) 02:10:25.03ID:c8G3vdag遊んでるならいいけどwwwww
マジレスならアホ
ID:xYrnaOxY のはただの煽りだから
0974デフォルトの名無しさん
2014/06/29(日) 05:01:33.62ID:r3ERVTwD増分は問題にしてないからな
開始値を1しか認めない教、または、0しか認めない教の人がいるだけ
ループ前にオフセット計算してループ内でオフセット足せばできる
0975デフォルトの名無しさん
2014/06/29(日) 07:06:48.40ID:7WQEgw+oそれ本当に0.52ずつ増える?w
0976デフォルトの名無しさん
2014/06/29(日) 07:44:51.13ID:r3ERVTwDiの型による
0977デフォルトの名無しさん
2014/06/29(日) 10:40:18.41ID:Pc4scBT70978デフォルトの名無しさん
2014/06/29(日) 10:48:45.73ID:37p3Fs6h特殊な値の場合は外出しするか
ループの中の計算式に入れるな、
自分なら。
0979デフォルトの名無しさん
2014/06/29(日) 11:09:04.04ID:37p3Fs6h条件で書くと無駄な計算式が入って
なくて読みやすい。
Vbaの場合は馴染まないな。
0980デフォルトの名無しさん
2014/06/29(日) 12:22:28.79ID:d4tnsDO5> 規定回数をFor文で回したい時って
VBA は、For I = ... To 10 で 10 まで回るから、1 スタートの方がいいと思う。
10回回すのに For I = 0 To 9 だと、ちょっと分かりにくいかと。
0981デフォルトの名無しさん
2014/06/29(日) 14:25:54.82ID:nMuEys5f0982デフォルトの名無しさん
2014/06/29(日) 15:16:49.14ID:U5JNCkXQ配列もArray(10)で宣言してインデックス0は使わないとかしちゃう
VB.NETのβ版でC系と同じにしようとして
Array(10)で宣言したら(0)〜(9)の要素10になる仕様にしたら
世界中のVB6プログラマからクレームがきて
Array(10)で0から10の要素11個という謎仕様継続になったそうな
0983デフォルトの名無しさん
2014/06/29(日) 16:40:26.72ID:tO69Jiz2こちらも 1, 1 から開始ですよ
0984デフォルトの名無しさん
2014/06/29(日) 21:25:17.92ID:ojuPNtQEそれ以上の意味を持たせようとするのは、変数を使いまわすようなもんだよ。
あまりいい習慣じゃないね。
0985デフォルトの名無しさん
2014/06/29(日) 21:35:24.84ID:brs7RvOR答えてくれた人ありがとう
EXCEL VBAきちんと勉強せずにC言語の知識を引き出しつつ書いてるから、ここの人の宣言方法が気になったんだけど、十人十色みたいだな
きちんと本読んで学習します
0986デフォルトの名無しさん
2014/06/29(日) 21:53:09.64ID:r3ERVTwDループカウンタを使わないループについてどう思ってる?
Forで使う変数はループカウンタでしか使えないと思ってる?
0987デフォルトの名無しさん
2014/06/29(日) 21:54:16.59ID:r3ERVTwD大丈夫だ。どうせみんな、単なる暇つぶしだから
0988デフォルトの名無しさん
2014/06/29(日) 22:00:41.18ID:ojuPNtQEFor Each の事?カウンタ使わないですむなら、その方がいいと思ってるけど?
For文で単なるカウンタ以外の用途に使うのは、あまりいい習慣じゃない。
というのが俺のスタンス。
0989デフォルトの名無しさん
2014/06/29(日) 22:26:05.04ID:TEKyyc0a0990デフォルトの名無しさん
2014/06/29(日) 23:34:53.93ID:/f6OgjXt0991デフォルトの名無しさん
2014/06/30(月) 00:09:32.16ID:kvKysRCzなる
勘違いして酷い目にあった
0992デフォルトの名無しさん
2014/06/30(月) 00:46:04.55ID:7oaDBF3M0993デフォルトの名無しさん
2014/06/30(月) 00:46:21.14ID:GUDWX1C/0994デフォルトの名無しさん
2014/06/30(月) 00:58:56.95ID:20WNNlQlループ終了で抜けたか Exit For で抜けたか判断してる
0995デフォルトの名無しさん
2014/06/30(月) 01:07:12.44ID:iijp9ipFここ2chではレス番号はfor文を1から1000で回してるため
1000番目の書き込みの後、自動的に1001番のレスでレス終了のメッセージを表示してる。
0996デフォルトの名無しさん
2014/06/30(月) 01:51:06.95ID:DNhhFBBaExit For の直前で i = 11 ってやってしまう可能性があるのでおすすめできない
ループに終了条件がある時はWhileとか使った方が安全
0997デフォルトの名無しさん
2014/06/30(月) 01:54:50.86ID:BzHZeElB0998デフォルトの名無しさん
2014/06/30(月) 02:07:33.39ID:f17tdAtrそんなこと言い出したらWhileの直前で終了条件いじることだって有り得るじゃん。
For Next でExit Forで抜け出すか正常にループが終了したかを
カウンタの値で判別するという処理を書いてるのに
Exit For の前でカウンタの値を変更するような馬鹿げたコードを書く奴は
そもそもプログラミングに向いてない。
0999デフォルトの名無しさん
2014/06/30(月) 02:17:18.34ID:20WNNlQlその可能性はWhileでも同じ
1000デフォルトの名無しさん
2014/06/30(月) 02:25:18.53ID:zp+CalxP処理系によっても異なるので、思い込みバグの元になる
試行錯誤で裏技テクニックを発見するのはいいけど、そういうのは大々的に使うべきじゃない
この危険性が理解できない人は、それこそプログラミングに向いてない
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。