[過去ログ] VBAなんでも質問スレ Part2 [転載禁止]©2ch.net (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
343
(1): 2017/07/17(月)17:20 ID:7pjXcMGR(1) AAS
プロシージャの中で1回しか使わないのに、わざわざ変数にするやつとかいるよね。(しかもハンガリアン記法で)

100行に満たない程度のコードなら、Withステートメント使ったほうがむしろ可読性は上がる。
344: 2017/07/17(月)17:25 ID:l3sSLpQS(1) AAS
マシンパワーが貧弱だった大昔ならともかく、今時はリソースを気にする必要なんてないんだから、可読性を最優先で記述するべきだよ。
345
(2): 2017/07/23(日)22:54 ID:EbUz/UVB(1) AAS
>>343
ああ、俺だ。
Ubound(配列)とか、For〜Nextの中で何回も実行すると、
なんか遅いような気がして、一度変数に入れちまう。
346: 2017/07/24(月)03:07 ID:/3vdoRrW(1) AAS
>>345
何回も実行するなら変数に入れたほうがいいんじゃね?
347
(1): 2017/09/01(金)23:04 ID:RmCwgyLh(1) AAS
>>345
(1)
For I1 = 1 to UBound(xxx)
For I2 = 1 to UBound(xxx)
(2)
J=UBound(xxx)
For I1 = 1 to J
For I2 = 1 to J

普通に考えて本のチョット早いと思われますが、記述の労力ほどじゃない。
他の方の書いてますが、今は、処理速度が物凄く早くなっています。
気にしなくていいと思います。
ただし、私はEXCELでVBAを書くのですが、シートのセルに書き出すと物凄く遅くなる。
VBAの配列とかメモリーならばほとんど気にしなくていいです。
ですから、メモリー内で処理して最後の最後にシートに書くようにしてます。
348: 2017/09/02(土)08:26 ID:tqo/3wkP(1) AAS
>>347
> ですから、メモリー内で処理して最後の最後にシートに書くようにしてます。
基本中の基本だからいちいち書かなくてよろし
349: 2017/09/05(火)10:53 ID:WmSrV0rS(1) AAS
アノニマスに入会したいんですがVBA知ってるだけで入れますか?
あと入会ってどうやんの? スーツ着て履歴書持って事務所に面接に行くの?
350: 2017/09/05(火)12:25 ID:P2jRu54V(1) AAS
たまにハローワークに求人出てるから行ってみれば?
351
(2): 2017/09/12(火)02:10 ID:2wFcaigK(1/4) AAS
超初心者です
同じブック内の複数のシートにある顧客データをUserFormを用いて(検索するイメージ)抽出し、別のシートへ出力するコードを書きたいのですがいまいちわかりません。
大変困っているのでヒントをくださればありがたいです。
352
(1): 2017/09/12(火)02:30 ID:U3/YorLf(1/2) AAS
>>351
超初心者には無理です
パソコン教室に通ってせめて初級をクリアしてから質問してください
353: 2017/09/12(火)04:10 ID:2wFcaigK(2/4) AAS
>>352
返信ありがとうございます
Excel自体触ったことない超初心者ですが頑張っているところです( ??? )
354
(2): 2017/09/12(火)08:28 ID:GFFccSR9(1) AAS
>>351
自称初心者がどこでUserFormとか覚えたの?
まずはシート上でやってみようね
355: 2017/09/12(火)12:27 ID:7XJfZGpJ(1) AAS
どこで覚えようとお前の知った事じゃねえだろw
なんだこのバカはwww
356
(1): 2017/09/12(火)13:06 ID:N1ygkJfx(1) AAS
>Excel自体触ったことない超初心者

ユーザーフォームを作ったことはあるのか?
 無けりゃ、この時点でやろうとしていることはもう無理

VBAはほんの少しでも書いたことはあるのか?
まぁ最初は>>354の言うようにシート上で実現して、それをユーザーフォームにもっていくのが順当
というか触ったこと無いって時点で釣り確定
357
(1): 2017/09/12(火)16:38 ID:2wFcaigK(3/4) AAS
VBA参入門書とネットの知識を詰め込みました。
Excel初心者は本当です。友達に教えてもらいつつやっています。気分を害された方、すみません。
>>356さん非常に分かりやすいです。
二日間くらい最初からコードを書こうとしてもがいていましたが、マクロの記録が使えそうな気がします。
そのコードをいじってボタンで起動するユーザーフォームとくっつけるイメージで挑戦してみます。
358: 2017/09/12(火)16:41 ID:2wFcaigK(4/4) AAS
>>354さんもありがとうございます!参考&励みになります
359: 2017/09/12(火)20:34 ID:/wKXVszF(1) AAS
このスレで一番の基地外が満を持して遅れて登場
360: 2017/09/12(火)20:51 ID:U3/YorLf(2/2) AAS
俺のことかな?
361
(1): 2017/09/13(水)00:17 ID:DHqL5rdG(1) AAS
>>357
ユーザーフォームでその機能を実現する必然性が感じられない
フィルタオプション機能を用いて、検索結果の出力先を新規シートに設定するだけで事足りると思うぞ
362
(1): 2017/09/14(木)07:47 ID:w7wWQUJY(1) AAS
フィルタオプションとマクロの記録で8割方完成できるな
363
(1): 2017/09/15(金)10:19 ID:wFtq+9vG(1) AAS
ADOの事でちょっと質問です
変数を定義する時に

Dim wkR as New ADODB.Recordset

ってするんだけど、RecordsetとRecordの違いって何?
364: 2017/09/15(金)10:57 ID:oEkV+GvG(1) AAS
2chスレ:morningcoffee
365
(1): 2017/09/18(月)06:42 ID:xbe9SlrW(1) AAS
>>361-362 ありがとうございます、簡単なプログラムですが完成して感動しました。
Ifとマクロの記録が万能すぎることを肝に銘じてこれからもがんばります( ??? )
366: 2017/09/18(月)15:10 ID:7Xxpypu9(1) AAS
>>365
万能過ぎないけどね。
そればっかり使ってる人は永遠に初心者なままだし、色々な面で出来の悪いプログラムになる。
自動生成されたコードのそれぞれの意味を理解して自分なりに書けるようになると上達する。

例えば
Range("B4").Select
Selection.Value=10
のようなコードが生成されると思うけど意味を考えたら
Range("B4").Value=10
で良いとわかるよね。
367
(1): 2017/09/18(月)20:44 ID:ydCO3vgD(1) AAS
>>363
Recordset オブジェクト
外部リンク[aspx]:msdn.microsoft.com
Record オブジェクト
外部リンク[aspx]:msdn.microsoft.com
368: 2017/09/18(月)23:50 ID:XctjYupl(1) AAS
すみませんお力添えをお願いします!
エクセルマクロ(VBA)の件でお尋ねいたしたく思います!
まずグラフの系列名はセル参照で表示させてます
シート名:あいうえお
適用グラフ:グラフ4
系列範囲:A11:Z11
必要なデータ選択は全ての系列で済ませています
あとはグラフで不要な系列を削除したいため、グラフに乗せたくない系列名は”×”になるようにしてます
この系列名”×”をVBAで自動的に削除させることは可能でしょうか?
またグラフは別シートの数値入力をもって自動作成される仕様にしているので、トリガーは設けません
デフォルトだと全部”×”のため(初めは数値データの入力がないため)
数値が入ると正しい系列名に変更されるため、VBAではまず”×”で削除して、”×”以外の系列名に変わったら復活するという構想を練っています
とりあえず、まず”×”を消すコードを見よう見まねで書いてみたのですが動作しませんでした
消すのは良いですが復活させるのも組み込むとなるとちんぷんかんぷんです
是非ともご教示お願いします!
Sub test()
Dim d As Long
Dim i As Long
Dim j As Long
For i = 2 To Sheets.Count
d = Range("A11:Z11").End(xlUp).Row
With Worksheets(i).ChartObjects("グラフ 4").Shapes.AddChart.Chart
.ChartType = xlLineMarkers
For j = .SeriesCollection.Count To 1 Step -1
If .SeriesCollection(j).Name <> "×" Then
.SeriesCollection(j).Delete
End If
Next j
End With
Next
End Sub
369: 2017/09/19(火)20:55 ID:2SFxAhMD(1) AAS
>>367
説明サイトへのリンク、ありがとう。
取り敢えず、「階層構造のデータ間を移動する手段として」のRecordオブジェクトは使うこと無さそうw
370
(3): 2017/09/20(水)01:17 ID:2dxgF4qE(1) AAS
IF文初心者ですが
3つ数字の中から一番小さい数を判定したいのですが、
elseや入れ子で複数書けば判定できるというのは推測がつきますが
最も簡潔に記述するとしたらどんな記述方法がありますでしょうか?

例)
33 12 3

3を抽出
371
(1): 2017/09/20(水)05:19 ID:mkPuPLWs(1/2) AAS
>>370
最小値 = WorksheetFunction.Min(Array(33, 12, 3))
372
(2): 2017/09/20(水)05:37 ID:mkPuPLWs(2/2) AAS
>>370
x = 33
y = 12
z = 3
If x < y And x < z Then
  最小値 = x
ElseIf y < x And y < z Then
  最小値 = y
Else
  最小値 = z
End If
1-
あと 630 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.023s