[過去ログ] Excel VBA 質問スレ Part68 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
307: (ワッチョイ 9f4f-aBI4) 2020/09/18(金)21:01 ID:vGT+RG4a0(2/3) AAS
>>306
最初date型で取ってやれば確か年や月や日を取る関数が有ったと思うよー
じゃあねー
308: (JP 0Hdf-iZ3/) 2020/09/18(金)21:05 ID:3fDNLBctH(1) AAS
>>302
私が気に入りそうなものはありますか?
肯定先読み肯定後読み以上に高度な機能は求めていないのですが
309: (ワッチョイ 9f4f-aBI4) 2020/09/18(金)21:10 ID:vGT+RG4a0(3/3) AAS
ていうかそうしてんじゃん
出力先のセルの書式はどうなってるの?
コードを見た感じじゃ少なくとも3列目は
日付型みたいだけど
310: (ワッチョイ f77c-5MQP) 2020/09/18(金)21:14 ID:Kp8J/oyZ0(1/2) AAS
>>306
year、month、dayの引数のdtの中身は2007/3/26ではない
311: (ワッチョイ f77c-5MQP) 2020/09/18(金)21:16 ID:Kp8J/oyZ0(2/2) AAS
または3、4、5列目の表示形式をそれぞれy、m、dにしてる
312: (ワッチョイ 9fad-dpHK) 2020/09/18(金)21:29 ID:LhaPjq300(1) AAS
>>306
考えなしに書くからセンス皆無なコードだけど3列目の日付が文字列で入ってるならこんなんどうよ
Dim Ary(2 to 435,1 to 3) As Long,r As Long, a As String
For LBound(Ary,1) to UBound(Ary,1)
a = Sheet1.Cells(r,3).Value
Ary(r,0) = Split(a,“/“)(0)
Ary(r,1) = Split(a,“/“)(1)
Ary(r,2) = Split(a,“/“)(2)
Next
Range(Sheet1.Cells(2,3),Sheet1.Сells(435,5)) = Ary
313(1): (ワッチョイ b7ce-W2Jb) 2020/09/18(金)22:40 ID:1dkG1MHP0(2/2) AAS
>>306
Sub Macro1()
Range("C2:C435").Copy
Range("D2:E435").Select
ActiveSheet.Paste
Range("C2:C435").NumberFormatLocal = "yyyy"
Range("D2:D435").NumberFormatLocal = "m"
Range("E2:E435").NumberFormatLocal = "d"
End Sub
314: (アウアウウー Sa5b-lnJt) 2020/09/18(金)22:48 ID:mNDgEDOXa(1) AAS
>>313
くそこーどを貼るのはやめてあげて
315: (ワッチョイ 9f2f-qc2B) 2020/09/18(金)23:02 ID:V3SekzLi0(2/3) AAS
>>306
セルに表示されている文字とセルの値は別だって理解が必要
おそらく
C列の表示形式が日付になっているが、そこの値を数値の2007にした
数値の2007は日付にすると1905/6/29 その年だけが表示されている
同様に数値の3は1900/1/3、数値の26は1900/1/26
まあ、想定とは違うかもしれんが正しく動いてると思われるな
解決策は、表示したいのは数値なのか日付なのかちゃんと決めて然るべき値と書式を設定しろ
316: (ワッチョイ 9f2f-qc2B) 2020/09/18(金)23:05 ID:V3SekzLi0(3/3) AAS
つヵ、C列の値でC列に書き換えるとかしないで
元の値を別の列にもっとけば、VBAなしで関数だけで出来るだろうけど
317: (ワッチョイ 9f01-ybTh) 2020/09/19(土)04:14 ID:JSd39pzr0(1) AAS
C,D,E列に表示させたいのは「数値」であるにも関わらず
「日付」の表示形式になっているからおかしくなる
C,D,E列の書式設定→表示形式を日付から標準にする
こうするとC列は39167のような形で表示されることになるが
お構いなしにマクロを動かせば、意図した通りの動きになる
でどう?
318: (ワッチョイ 9f4f-aBI4) 2020/09/19(土)07:38 ID:kGiNzl5D0(1/4) AAS
>>305
理解出来るからこそ腹立たしいこともあるよー
例えばaとbとcってBooleanの変数を定義して
a = b = c とか書いてるやつ
まぁbとc が同じならaにTrueが、
違えばFalseが入るってことを期待して
書いてるなら見づらいけどまだ許せるよ
でもcにbが代入されてそのままaにbが
代入されるとか思って書いてたらしく
システムバグらせてそのままにしてたりとか
省3
319(1): (ワッチョイ 9f4f-aBI4) 2020/09/19(土)07:43 ID:kGiNzl5D0(2/4) AAS
あ、逆だった
bにcが代入されてaにbが代入されると
思ってたらしいってことね
まぁこの4日間は連休だし
そうじゃなくてもテレワークだから
気楽に適当にやるつもりだよー
320(1): (ワッチョイ b7da-Cup9) 2020/09/19(土)07:51 ID:oBjg4zik0(1/2) AAS
仕事の内容でそのソースを直せってことなら書き直せばいいんじゃねーの
そのまま残すと後任者に同じように思われるんだぜ
321: 257 (ワッチョイ bf90-W2Jb) 2020/09/19(土)10:25 ID:fwfEHGdP0(1) AAS
>>259
遅くなってしまいましてごめん。自分の欲しかった情報がこれで取れる
事ができました。
ありがと!
322(2): (スップ Sdbf-k5ub) 2020/09/19(土)15:00 ID:TN+kKyJDd(1/5) AAS
>>320
その判断は結構難しい。
今動いてるものは、そのままにしておくというのが通常だ。
Accessでレコードセットループで回してる最中にその値でもって別のレコードセット開いたりを7、8回やって10分かけてデータ作ってるプログラムが有るんだけど、コレ、クエリ1つで出来るんじゃね?と思って試しに作ったら一瞬で出来る。
それでも、正式に変更することになるかと言えばならない。
こっちだってその辺は分かってる。
何かの時に、きちんと作り直しましょうという話になるまで置いとくもんで、むしろそんな話にならずにずっ―とそのままというのが殆ど。
323(1): (ドコグロ MMdf-RDjc) 2020/09/19(土)15:56 ID:nGfYM+wGM(1) AAS
>>322
なら
> でもcにbが代入されてそのままaにbが
> 代入されるとか思って書いてたらしく
> システムバグらせてそのままにしてたりとか
> テストどうしてたんだとか思うよねー
とか書くなよ
どうせ盛々で語ってるだけだろw
324(1): (スップ Sdbf-k5ub) 2020/09/19(土)15:59 ID:TN+kKyJDd(2/5) AAS
>>323
いやいや、俺はその人じゃないから。
325(2): (ワッチョイ b7da-Cup9) 2020/09/19(土)16:24 ID:oBjg4zik0(2/2) AAS
>>322
重要な変更とは別で、こまかい高速化や最適化として変更するんだよ
それができないなら他人のコードを悪くいってはいけない
326(2): (ワッチョイ 9f4f-aBI4) 2020/09/19(土)18:06 ID:kGiNzl5D0(3/4) AAS
そうかーみんなそんな具合に考えてるのかー
でも悪いけどその場でチャチャっと直すことはしないよ
もちろん上に話を通すのは当然だけど
こんなぐちゃぐちゃな行き当たりばったりのコード書いてんだから直すんなら他への影響調査の時間貰う
まぁ当たり前だよねー
上下前次1-新書関写板覧索設栞歴
あと 676 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.015s