Excel VBA 質問スレ Part66

■ このスレッドは過去ログ倉庫に格納されています
11000
垢版 |
2020/05/10(日) 13:43:45.00ID:Nkoph0aj
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK

※前スレ
Excel VBA 質問スレ Part65
https://mevius.5ch.net/test/read.cgi/tech/1584430040/

※デフォルト設定
2020/06/03(水) 18:58:22.75ID:ajKAwYcj
>>481
説明が下手な質問には答えられない
2020/06/03(水) 19:02:55.47ID:4xNyRocT
>>479
Offsetっていうセルのサイズを変える関数があるが
この集計を関数でやるのは根本的にムリだね
1,10行目の数字とかに何の関連性もないから列が特定できない
元データ正規化すんのが先だよ
484デフォルトの名無しさん
垢版 |
2020/06/03(水) 21:04:01.49ID:WzEARBto
前にも少し聞いたけど上級者はVBAどうやって作ってくもん?
そこそこボリュームのあるマクロを素人ながら作ってるんだけど
・標準モジュールにオブジェクト名付けて
そこに同じ名前のプロシージャを1つ作る

ユーザーフォームのボタンに
プロージャ名を2つや3つ並べたり 
とにかくボタンに割り当ててく
コードの表示見ると凄いシンプルに見えるけど
標準モジュールが30個とかあるんだが…
自己流だと全然だめねこれ
2020/06/03(水) 21:12:23.58ID:eXcAe8GC
そういうのは言語関係ない
上級者のコード読むなりプログラミング技法の初歩とかを勉強せえ
2020/06/03(水) 21:16:06.03ID:jxQ4kFWw
上級者じゃないんでわからんが
数こなしていくうちに上達するんじゃね
487デフォルトの名無しさん
垢版 |
2020/06/03(水) 22:45:33.09ID:DFbqrKTL
ネットで勉強してる初心者以前のレベルだけど
変数をiで宣言してるサイトが結構多いけど
テンプレ的な変数名なの?何かの略字?
2020/06/03(水) 22:54:44.44ID:fRs9+Xkd
integer
2020/06/03(水) 22:55:14.42ID:1Bet+/qH
>>487
もともとはIntegerの頭文字から
とりあえず整数型変数にはI、もっと必要な時はJ、K以下略を使うというルールを70年ぐらい前にIBMの技術者が決めて、それが今まで慣習として残っている
2020/06/03(水) 22:58:16.07ID:k+INKoSh
テーブル(ListObject)の指定列に計算結果値をLoopで書き込む処理を作ったんだけど、
ひどく遅延します。事象の原因と対策わかる方いたら教えてください。

・(同一シートの)テーブルの枠外だと同じ行数でも瞬時に終わります。
・計算結果じゃなくて 1 を埋め込むのでも遅い。
・再計算Off
・ためしにEnableEvents = false もやってみたけど効果なし。

3000行くらいなんですが、しばらく帰ってこない感じ。
結局式埋込に変えたんだけど、その場合だと5〜6秒くらい。

テーブルなんてそんなもん、ということであればそう認識します。
詳しい方教えてください。
2020/06/03(水) 22:59:26.99ID:uWfzdzS4
>>484
モジュールが増えるのは、
他に流用するからとか、
スクロールが面倒だからとか、
そんな理由だと思うけど。

宣言は一番上派、使用する直前派。
参照設定派、CreateObject(xxx)派、
If a = True Then派、If a Then派、
色々だから気にすんなと。
2020/06/03(水) 23:02:38.52ID:k+INKoSh
>>489
iteratorが語源かと思った。
2020/06/03(水) 23:03:56.76ID:LXJ+6sS7
DEFINT A-Z
2020/06/03(水) 23:35:44.50ID:6MdsocRT
ループ変数にはiもよく使うけど、rとかcも割と使う。
列と行を入れ子にしてループ処理する時は、こちらの方が分かりやすい。
2020/06/03(水) 23:40:14.49ID:K30dfupm
>>487
古くは Fortran かな
I, J で始まる変数は無条件で整数型だった
Iがアルファベットの10番目だからという
よくわからない説もある
2020/06/04(木) 00:05:55.74ID:k3k6AIFZ
実際の慣例ではどうなのか知らないが、i〜tまでを使うって教えられた
intのtまでってことで
まあ大抵使ってもi,j,kぐらいだと思うが
2020/06/04(木) 00:09:42.42ID:L9xk6UQ0
視認性が悪いから、j とか l とか使いたくない。
なので、 i, k, n, とか適当に飛ばして使ってる。
2020/06/04(木) 00:09:53.27ID:OnK1RXVm
自分は最大nまで使うよ。
i、j、k、l、m、n
2020/06/04(木) 00:14:11.64ID:L9xk6UQ0
>>494
r は Range Loop用と決めてるから、r, c, はあまり使わない。
そんときは iR, iC ってやるな。
c は1文字入れるとき使うかも。
人それぞれやね。
2020/06/04(木) 01:00:45.24ID:BD433+5i
すみません、教えてください。<br>
caseの条件を変数で設定していると条件に一致しなくてelseに流れてしまいます。<br>
ベタ打ちで条件を記載した場合は、正しく処理へ流れるのですが・・・<br>

sub テスト() <br>
Dim a As String <br>
Dim temp As String
a = "みかん"
temp = "りんご"", ""みかん" 'ここはチェックボックスの選択によって可変にする予定

Select Case a
Case temp
Msgbox("冬")
Case Else
Msgbox("冬以外")

End Select

End sub
501500
垢版 |
2020/06/04(木) 01:02:03.80ID:BD433+5i
<BR>は誤って記載したので無視してください。
すみません。
2020/06/04(木) 01:05:29.38ID:bxYszK7T
ダブルクォーテーション大好きなんだな
2020/06/04(木) 01:09:25.97ID:22WZQRcv
>>490
同じ行やってみたけど一秒かかんない
テーブルに数式列あると遅延したけどcalculation=falseで気にならなくなったし
504デフォルトの名無しさん
垢版 |
2020/06/04(木) 01:47:41.43ID:OTCVkkK8
馬鹿の特徴

教えて、助けて等で始まる書き込みをする
2020/06/04(木) 02:18:53.76ID:oqMXr6z+
>>500
Caseの条件が変数かどうかは関係ないから、どこか別のところが間違ってる
よく見直せ
2020/06/04(木) 03:10:03.32ID:e1eCmfnY
>>496
俺だけかな i1,i2,i3 とか、 iX,,iY, iCnt, iLoop, iStep みたいに使う
2020/06/04(木) 03:52:02.37ID:e1eCmfnY
命名規則とかハンガリアン表記とかあるよね

https://ja.wikipedia.org/wiki/命名規則_(プログラミング)
2020/06/04(木) 07:06:03.13ID:iR1nViON
>>489
Fortranが始まりが正解
2020/06/04(木) 08:16:07.75ID:i/KeU7gc
ループのiはindexのiかと思ってたわ
for(i=0;i<10;i++)
 value[i] = 〜〜的な
2020/06/04(木) 10:24:37.12ID:lE9Ts1od
C列が変数aと同じ値で、かつD列が変数bと同じ値で、かつE列が変数cと同じ値の各行で
Z列(整数)が最大値の行の行番号を変数iに代入する方法を教えてください

Dim r As Long,i As Long
Dim a As String, b As String, c As String

For r = 5 to lsr
If Cells(r,3) = a And
Cells(r,4) = b And
Cells(r,5) = c Then
Rows(r).???
End If
Next cnt

i = Application.WorksheetFunction.Max(???)
2020/06/04(木) 12:04:02.17ID:0kTawYgE
>>510
Z列の"暫定"最大値を保持する変数を使います。
Dim r As Long, i As Long
Dim a As String, b As String, c As String
Dim Z_v As Long   '追加部分
Dim lsr As Long  '定義漏れですよ
lsr = 処理範囲の最終行をセット
Z_v = 0    ' Z列の最大値が負になりそうなら-9999999999などとしておく
For r = 5 to lsr
  If Cells(r, 3).Value = a And _
    Cells(r, 4).Value = b And _
    Cells(r, 5).Value Then
    If Cells(r, "Z").Value > Z_v Then  ' 暫定最大値を超えたら
      Z_v = Cells(r, "Z").Value     ' 暫定最大値を更新
      i = r                 ' 行位置も更新
    End If
  End If
Next

最大値となる行が複数あった場合は、最初の行位置が i の値となります。
2020/06/04(木) 12:13:10.50ID:0kTawYgE
>>511 の修正
Cells(r, 5).Value Then
の行は
Cells(r, 5).Value = c Then  です
513510
垢版 |
2020/06/04(木) 13:00:40.05ID:lE9Ts1od
>>511
ありがとうございます!いつも勉強になりますm(__)m
2020/06/04(木) 14:32:12.42ID:L9xk6UQ0
>>503
レスありがとう。
どうも同時に開いているブックに大量の関数が配置されているとListObject内でLoop入力時に遅延するみたい。再計算Offでも。
まっさらのブックにテーブル1個作ってLoop書き込みしたら瞬時だった。
そこに関数を多く含むブックを同時に開くことで、上記のテーブルで遅延が発生。特に自作関数が影響大きいみたい。
追加で開いたブックからシートを一つずつ削除→計測を繰り返したら、少しずつ早くなって、最終的に瞬時になった。
数行ならパラパラッって感じで気にしなくていいんだろうけど行数が多いとかなり待たされる。
ちなみに対象のテーブルを「範囲に変換」するとどんだけ関数を含んでいようが瞬時に書き込まれる。
こんなもんだと思うしかないのかもだけど、再計算Offでも影響を受けるのが納得いかない。
Win7 on vmwareな環境で試したので自宅のWin10でも試してみる。
2020/06/04(木) 15:52:15.99ID:MXeQjX7b
おれ、昔は i , j ばかり使ってたけど、最近は回す配列の名前を反映した変数を使ってる
Forブロックが単独で存在するならいいんだけど、if や 他のForブロックと組み合わさって
階層構造になってると、だいぶあとになってメンテするときに理解が遅れる
2020/06/04(木) 16:42:33.52ID:9nIeytil
いいね

他にもループ内の処理をそのまま関数にしてしまう方法もある
コメントを書かなくても処理の意味を関数名として記述できるし、再利用性も高まる。
おまけとしてVBAの構文にはないcontinue(処理を中断して次のループへ入る)が行える。

もしくは再帰関数を定義してfor文自体を無くすという凝った方法もある。
2020/06/04(木) 18:37:05.61ID:08KHEEC1
データモデルに入れたデータからSQLを使ってシートに出力する方法を教えてください。

ネットになかなか情報がなくて
ListObjects.Add(SourceType:=4, Source:=ActiveWorkbook.Connections("クエリ - パワークエリ名"), Destination:=Range("$A$1")).TableObject
から
.WorkbookConnection.OLEDBConnection.CommandText = "テーブル名" にするとテーブルを出力

.CommandText = Array("EVALUATE CALCULATETABLE('テーブル名' , 'テーブル名'[項目名] =""検索語"" ) ")
.CommandType = xlCmdDAX
のようにするとDAX式で加工したテーブルを出力できるようになりましたが、SQLを使用する方法がわかりません。
518デフォルトの名無しさん
垢版 |
2020/06/04(木) 19:00:14.86ID:OTCVkkK8
馬鹿ではなさそうだが、しつこい教えてクレクレに呆れる
ググれよ
2020/06/04(木) 19:01:01.58ID:gQJ1UXfv
>ネットになかなか情報がなくて

逆にそれを探し当てる方が難しいと思うんだが・・・。
とりあえず、マクロを記録しながらMSクエリを操作すれば答えが出ると思う。
2020/06/04(木) 19:03:34.01ID:gQJ1UXfv
>パワークエリ名

あ、2016以上か。
パワークエリがあるせいで、MSクエリにたどり着かなかったということか。
2020/06/04(木) 19:43:02.85ID:ZOeL7/nf
>>516
同じ処理を関数にするのはよくあることだけど、同じ処理を括るよりは意味合いで括る方が上策だと思う。
適切に関数に分けていれば、そもそもそんなに入れ子にならんだろう。

再起なんて、それこそ意味合いで自然に出来上がるもんで、無理して作るもんじゃねえと思うんだが。
522デフォルトの名無しさん
垢版 |
2020/06/04(木) 22:08:56.53ID:uauxSmqO
Sub セル構成を2行3列に()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
 j = 2 '←ここで何列おき
 Set rng = ActiveSheet.UsedRange
 For i = rng.Columns.Count To 8 Step -1
rng.Cells(10,i).Resize(10,j).EntireColumn.Insert  Next  Set rng = Nothing
Range("G10", "I510").Merge Across:=True
Range("J10", "L510").Merge Across:=True
Range("M10", "O510").MergeAcross:=True
Range("P10", "R510").Merge Across:=True
Range("S10", "U510").Merge Across:=True
Range("V10", "X510").Merge Across:=True
Range("Y10", "AA510").MergeAcross:=True
Range("AB10", "AD510").Merge Across:=True
Range("AE10", "AG510").Merge Across:=True
Range("AH10", "AJ510").Merge Across:=True
523デフォルトの名無しさん
垢版 |
2020/06/04(木) 22:10:21.75ID:uauxSmqO
Range("AK10", "AM510").MergeAcross:=True
Range("AN10", "AP510").MergeAcross:=True
Range("AQ10", "AS510").Merge Across:=True
Range("AT10", "AV510").Merge Across:=True
Range("AW10", "AY510").MergeAcross:=True
Range("AZ10", "BB510").Merge Across:=True
Range("BC10", "BE510").Merge Across:=True
Range("BF10", "BH510").Merge Across:=True
Range("BI10", "BK510").Merge Across:=True
Range("BL10", "BN510").Merge Across:=True
Range("BO10", "BQ510").MergeAcross:=True
Range("BR10", "BT510").Merge Across:=True
Range("BU10", "BW510").MergeAcross:=True
Range("BX10", "BZ510").Merge Across:=True
Range("CA10", "CC510").MergeAcross:=True
Dim po As Long, ro As Long
For gg = Cells(Rows.Count, "E").End(xlUp).Row To 11 Step -1
Rows(po + 1).Insert
For ro = 5 To 79
Cells(po, ro).Resize(2).Merge
Next ro   Next po
HorizontalAlignment = xlCenter
VerticalAlignment = xlCenter
Application.DisplayAlerts = True
End Sub

VBAの勉強すらしてない俺が10個くらいのサイトからパクってつなげて一応希望通り動いた
setとかレンジ型とか意味わからんわ…
524デフォルトの名無しさん
垢版 |
2020/06/04(木) 22:13:08.78ID:uauxSmqO
For po = Cells(Rows.Count, "E").End(xlUp).Row To 11 Step -1

ここはこうだったな俺の変数癖だわ
なんかもう難しすぎて勉強するよりネットで検索してパクって繋げたほうが楽な気がする
39歳からVBA覚えるって脳みそがついていかんわ
2020/06/04(木) 22:15:04.15ID:k3k6AIFZ
そんな報告いらん
自分の日記スレでも立てればいい
526デフォルトの名無しさん
垢版 |
2020/06/04(木) 22:15:05.91ID:OTCVkkK8
隙あらば馬鹿が日記を書き込む
527デフォルトの名無しさん
垢版 |
2020/06/04(木) 22:19:18.86ID:uauxSmqO
隙あらば馬鹿って言いにきてんの?
定期的に馬鹿としか書いてないけど
2020/06/04(木) 22:22:05.20ID:i/KeU7gc
そうして精神を保ってるとでも思っておこう
529デフォルトの名無しさん
垢版 |
2020/06/04(木) 22:43:14.91ID:OTCVkkK8
>>527
馬鹿は黙っていろよ
2020/06/04(木) 22:57:09.20ID:nxAuSZLn
セルにコメント挿入して中の文字色を一部だけ変えれる事って出来ますか?

strTxt=111111(vbtab)223(vbtab)8975

例えばこんな文字列の223だけ赤色、それ以外は黒色。
531デフォルトの名無しさん
垢版 |
2020/06/04(木) 22:59:22.67ID:c/xPJE8L
>>527
お前の書き込みは馬鹿の自己満足以外の何物でもないぞ
2020/06/05(金) 00:25:19.46ID:fHeju+Td
>>530
Cells(1, 1).AddComment "あいうえおかきくけこさしすせそ"
Dim c As Excel.Characters
Set c = Cells(1, 1).Comment.Shape.TextFrame.Characters(2, 10)
c.Font.ColorIndex = 3

例えばこれだと、コメントを追加して2文字目から10文字のフォント色を色番号3=赤に変える
という処理になるよ。
他にもフォント,太字斜体,サイズとか、fontクラスのものなら何でも変えれるね。
処理的には変更開始と文字数をどう特定するかだけど頑張ってね
2020/06/05(金) 00:27:45.38ID:2CjtUfu9
>>530
comment.shape.textFrame.characters
2020/06/05(金) 00:50:59.98ID:8UrD2y10
39歳で限界とか。元々能力が低いとしか。
535デフォルトの名無しさん
垢版 |
2020/06/05(金) 05:51:53.87ID:td6kQI8l
>>534
なんだと、このハゲ!
2020/06/05(金) 06:27:32.36ID:YMz2fC5g
>>522
一応解説すると、、、

値にはいろんな型があるけど、
 文字リテラル(例:"Hello")
 数値リテラル(例:123)
 日付リテラル(例:#2020/6/5#)
 真偽値 (例:True)
 上記で構成される配列(例:Array("月","火","水") )
これらは(またはこれらの値を返す式)はイコールだけで変数にぶっ込めるけど、
これら以外はすべてオブジェクトと見なされるので、
 Set 左辺=右辺
の記述で変数に代入する必要がある。
例えば、ブック、シート、といったものはすべてオブジェクト扱い。
もちろんセル範囲(Range)もオブジェクトなので、Setが必要。

範囲オブジェクトを返すには Range("アドレス記述")で表せるけどこれだと
示してくれた例のように全部書き出す必要がありコードが冗長になる。
そんなときはCells(行,列)の記述で範囲オブジェクトを返すとLoop処理で
簡潔に記述できる。

Cells(行,列)だと1セルしか表せないからRangeと組み合わせて
 Range(Cells(行,列),Cells(行,列))
みたいに記述すれば指定範囲を表現できる。
または、
 Cells(行,列).Resize(500,3)
みたいに記述すれば範囲サイズを拡張できる。

あとはForで行、列の変数をうまうコントロールすればOK.

理解の助けになるといいけど、、
2020/06/05(金) 06:58:05.99ID:Lq81HhXC
>>535
年齢を言い訳に使ってる時点で人として残念な人でしょ
538デフォルトの名無しさん
垢版 |
2020/06/05(金) 07:40:51.89ID:oZqvF/U1
まったく最近の若者は……
2020/06/05(金) 08:25:59.68ID:KlfmBaSN
勉強の話が出てるけど上級者だって全てを覚えているわけじゃない。

>>532のCharactersの話だって、取りあえずこの後に"("を打って見れば説明が出てくるんで、そこから推理してる。
そして推理したら実際に別でテストする。
上手く動いたら、うっすら何となく覚える。
うっすら覚えてる場合は次回も"("打ってからの推理から始まる。
それで問題は起こらないし、何回か繰り返せば完全に覚える。

丸暗記は大変だし結果的に覚えない。
2020/06/05(金) 10:36:23.39ID:fHeju+Td
いや何となく覚えてたけど
2020/06/05(金) 12:39:12.93ID:tnz6CDPA
そのなんとなくでいんじゃねって話でなくて?
2020/06/05(金) 18:45:39.76ID:IG+dLk9+
>>524
そろそろ引退したらどうですか?
2020/06/05(金) 19:01:37.97ID:7QZKDprx
>>521
入れ子時の対策として言っただけで、普通は入れ子になりづらいとか急に言われても困る

あと意識せずに自然に再帰になるとかマ?
関数型以外じゃ意識しないと普通できないだろw
やるとしても配列の畳み込みメソッドぐらいなんでは?
2020/06/05(金) 20:18:14.26ID:KlfmBaSN
>>543
例えば初めて再起を使った時に再起なるものなんか知らなかった。
単純に自分を呼び出せば良くね?と思って書いたら再起だった。
再起なるものを知った後でも、基本的に自分を呼び出せば良いじゃんと思う場面が殆ど。

例えば、パスを与えたらそのフォルダの下のファイルやフォルダ名を全部列挙するという関数を考える。
列挙してる中でフォルダ名取得したら、そのフォルダ名で自分を呼び出せば良いわけだ。
そうすればその呼び出しで更に配下の列挙が得られるんだから。

もっとも、このファイル列挙では最初はDir関数グローバルな動きをすると知らなかったので上手く行かなかったけど。
2020/06/05(金) 20:57:20.30ID:H0L/fXZL
再起って何だろう?
546デフォルトの名無しさん
垢版 |
2020/06/05(金) 21:05:54.74ID:rCWyQTVZ
>>542
職場の業務というか海外含めて複数の支部で使われてるから出てくるデータを瞬時に処理できるコードをここで3つ教わってしまったからね
もうVBA続けるしかないわ

textデータにプローシージャコピーしてクラウドに保存してあるレベルの
2020/06/05(金) 21:08:38.53ID:cCPYycaK
>>545
たぶん再帰の変換ミスだろ
548デフォルトの名無しさん
垢版 |
2020/06/05(金) 21:32:27.71ID:ZSs62RcL
色々調べたのですが・・・。
コピーし貼り付けのマクロで

条件付き書式だけを除いて張り付ける、というマクロを探しています。

今の状態ですと条件付き書式の情報まで上書きされて困っています。
ご教授宜しくお願い致します。
2020/06/05(金) 21:43:17.50ID:H0L/fXZL
>>547
変換ミスにしては何度も使ってるぞ
2020/06/05(金) 21:47:17.22ID:2CjtUfu9
>>548
まず他スレの質問締め切るなり断り入れるなりして来いよ
2020/06/05(金) 21:47:20.00ID:nvWU7/6f
貼り付けた後に
.FormatConditions.Delete
で条件付き書式だけ削除じゃダメなの?
552548
垢版 |
2020/06/05(金) 22:17:11.59ID:ZSs62RcL
>>551
有難うございます!
しかしそれでは出来ないのです。すいません。
2020/06/05(金) 22:21:45.02ID:WwtDf+8P
>>548
そもそも"コピー"する必要はあるの?
2020/06/06(土) 02:50:09.78ID:2JXrsjtz
pasteSpecial繰り返して必要なものだけ貼り付けるしかないんじゃない?
2020/06/06(土) 07:05:32.16ID:boE/wbIl
何度でも蘇るのが再起だろうな
2020/06/06(土) 08:07:18.40ID:dTKuJKfw
>>436
ロマサガ3とはなかなか分かってる先輩だなw
2020/06/06(土) 12:47:06.87ID:EOD/vRIp
VBAの配列にもCount使わせて欲しい・・・・
面倒でたまらないわぁ
ちなみにSplitで空配列になったときってUBoundは必ず-1返すのかな
まぁSplitする前の文字列が空かどうかで判別すればいいんだけど
2020/06/06(土) 14:19:39.59ID:nsmtjJW2
SetTimerのコールバック関数内でSetTimerしなおすやつは、再起といっていいかも
あれ、再帰じゃないし
2020/06/06(土) 14:24:54.65ID:FUHWS7EH
>>557
そういうのはラッパークラス定義しちゃえばいい

要素を持たない配列はuboundで-1になるけど、
配列を返す関数をそのままuboundの引数にするとメモリが解放されないらしい
一度変数に代入してから、その変数を引数にするしかない
560548
垢版 |
2020/06/06(土) 19:20:06.05ID:evXurMFK
>>554
有難うございます!そういうやり方もありますね。勉強になりました。

あれからIF関数と条件付き書式を組み合わせて問題克服できました。
相談に乗っていただけた方みなさん有難うございます。
お騒がせしますた。
2020/06/07(日) 01:10:37.79ID:czcu/Wo5
ボタンを押してランダムに1ー100の数字をコンピュータに選ばせて、その結果をセルに表示させたいと思いマクロを組みました。
それはできたのですが、ボタンを押すごとに出る数字の履歴を残したいときはどうしたらいいでしょうか?例えば初めはA1、次はA2、次はA3…のようにしたいです。
2020/06/07(日) 01:27:02.35ID:MDOjbT3v
また馬鹿が来た
2020/06/07(日) 01:42:25.59ID:Dw2BAEV/
消さなきゃいんじゃないの…
2020/06/07(日) 01:51:41.32ID:czcu/Wo5
1回目、2回目とボタンを押すごとにA列を下方向に順に記録させたいのです。
説明が悪いかも、すみません
2020/06/07(日) 02:00:00.68ID:81VYwWTh
色々やり方があるが回数を持たせるのが簡単だろうな
2020/06/07(日) 02:00:43.51ID:Dw2BAEV/
その通り表示させるセル変えればいんじゃないの…
2020/06/07(日) 02:16:26.24ID:MDOjbT3v
>>564
馬鹿過ぎて話しにならない
こんなのがわからないような馬鹿には色々無理
2020/06/07(日) 02:44:14.80ID:81VYwWTh
>>567
初心者ってこんなもんだろ
569デフォルトの名無しさん
垢版 |
2020/06/07(日) 03:03:21.76ID:zKcEsa3T
初心者は全部同じというゆとり理論
2020/06/07(日) 03:47:02.63ID:kmJ+/rqz
>>564
A列の最終行を探して次の行に数を入れる
2020/06/07(日) 03:48:37.81ID:kmJ+/rqz
最終行は値の入ってる最後って意味ね
2020/06/07(日) 05:24:32.66ID:cf9XL00M
まずは「1ー100」をマトモに書けるようになるのが先決だな
2020/06/07(日) 05:49:46.12ID:dyM/5p3V
>>544
再帰はスマートに書けることも多いけど再帰の数だけメモリを消費する
ファイル列挙みたいな大量になりかねないデータを扱う場合はおすすめできない
時間的にもメリットがないどころか下手すると遅くなり得る
列挙程度のどうでもいいような処理に使うべきじゃないよ
2020/06/07(日) 07:38:47.26ID:czcu/Wo5
>>570
は!なるほど!!
ありがとうございます!!


皆様もありがとうございます!精進します!
2020/06/07(日) 07:53:48.37ID:MHP0r7Cu
>>573
〉ファイル列挙みたいな大量になりかねないデータを扱う場合はおすすめできない

じゃあこの場合どう処理するの?
2020/06/07(日) 07:56:27.57ID:ntu7XVDq
コマンドプロンプトで十分だと思うけど。
VBAでやると、ファイル名に特殊文字が使われていた時に止まって地味にウザい。
2020/06/07(日) 08:33:05.30ID:xH2ID0fk
>>573
何でこんな頓珍漢な指摘が出てくるんだろうね。
そんな話じゃないだろうに。

自然に再帰になるという例であって、問題あるなら辞めれば良いだけのこと。
それに、そのメモリ消費だが下手くそな組み方だったらその通りだが、そんな組み方しないでしょ。

>>576
何の為にファイル列挙してると思ってんの?
それで終わりの筈が無いだろうw
2020/06/07(日) 08:38:56.41ID:ntu7XVDq
>>577
だからなに?
コマンドプロンプトで出力したものは再利用できないとでも?
2020/06/07(日) 09:55:56.05ID:kdiJvE9H
>>559
さんきゅ
2020/06/07(日) 13:01:44.81ID:H9nBLvae
>>576
> VBAでやると、ファイル名に特殊文字が使われていた時に止まって地味にウザい。
それお前のコードがバグってるだけだろw
2020/06/07(日) 13:10:29.47ID:xH2ID0fk
>>578
出来るに決まってんだろw
でも、それを良しとするか?
マトモに書ける奴は良しとはしないだろ。
仕方なしにはするけど。
2020/06/07(日) 13:12:52.96ID:xH2ID0fk
>>580
いや、これはあり得る。
多分回避も出来るけど、そこ迄考えるのは面倒いので。

問題が起こったら何とかするか、その名前は無理と言うかも。
何しろVBA以外でもトラブルの元なので。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況