[過去ログ] Excel VBA 質問スレ Part68 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
296: (ワッチョイ 9fb5-mxOi) 2020/09/17(木)20:38 ID:23KXp+DW0(1) AAS
なんつーレベルの高い話だよ
初心者が覚えようと思ってどんなもんかとスレを見たのが大間違いか
297: (ワッチョイ f77c-5MQP) 2020/09/17(木)21:39 ID:ncMNPksn0(3/3) AAS
この先いつまで初心者を名乗るつもりか知らないがいちいちアピールしない方がいいよ
298: (ワッチョイ 97da-Cup9) 2020/09/17(木)21:45 ID:DqUtQRPA0(1) AAS
>>294
可読性以前に怖いんだよな。
アクティブシートが切り替わっちゃったらどうしようって。
実行中の操作とかで。
DoEvents挟まなきゃ絶対切り替わらないってならいいんだけど。
299: (ワッチョイ b7ce-W2Jb) 2020/09/17(木)22:36 ID:qGYgSA/Y0(2/2) AAS
可読性も考慮するならオブジェクト変数に入れたりWithで囲んだり、頻出する構文なら別Functionに飛ばすという手もある
めんどくさいけどバグを出すよりはマシ
300: (ワッチョイ 9f2f-qc2B) 2020/09/18(金)01:50 ID:V3SekzLi0(1/3) AAS
そもそもオブジェクト指定のないCellsがいつでもActiveSheetを参照すると思うなよ

シートモジュールに書いたCellsはそのシートを参照するんだぜ
301
(1): (JP 0Hdf-iZ3/) 2020/09/18(金)10:32 ID:68qBgcmgH(1) AAS
VBAというよりVBSかもしれませんが
いろいろ試したのですが正規表現の(肯|否)定(先|後)読みに対応していないようなのですが認識に相違ありませんか?
また、擬似的に(肯|否)定(先|後)読みに対応させたコードを誰か公開していませんか?
302
(1): (ワッチョイ b7ce-W2Jb) 2020/09/18(金)14:09 ID:1dkG1MHP0(1/2) AAS
>>301
多くのアプリで、正規表現はWindowsに標準で内蔵されてるDLLを使ってる
独自の仕様やバグがあるのは既知だから、それが気に入らない時は別のライブラリを見つけてくるしかない
303: (ワッチョイ 9f4f-aBI4) 2020/09/18(金)17:55 ID:vGT+RG4a0(1/3) AAS
VBSはスレ違いになるんだろうけどさー
今、仕事でそれで書かれたコード見てるんだよねー
VB.NetからVBAに戻るとそのインテリセンスの効かなさに辟易するけど
VBSで書かれたものはその比じゃないねー

参照もなーんも効かないところに持ってきて
インデントも正しく書いてないし
綺麗にスパゲティーコードになってるの見ると
殺意を覚えるわー

まぁVBS自体は同じファイルの中に
複数のクラスが書けたりするところは
省1
304: (アウアウウー Sa5b-l0r7) 2020/09/18(金)20:53 ID:Ej6zlwK4a(1) AAS
見てるだけで殺意はないだろ
自分で分かりやすく直していけばいい
305
(1): (アウアウエー Sadf-vKz6) 2020/09/18(金)20:57 ID:E6dIN4Hja(1) AAS
どんな人が書いたコードでも理解できるのがプロ
306
(5): (ワッチョイ b7cc-lMKa) 2020/09/18(金)20:57 ID:nL5nIenz0(1) AAS
C列に"2007/3/26"などのような書式で年月日が入っていますが
それをC=年、D列=月、E列=日にしたいのですが

↓だと年が1905,月が1、日が26日のように変換されてしまいます。

Dim r As Long, dt As date
For r = 2 To 435
dt = CDate(cells(r,3))
Cells(r, 3) = Year(dt)
Cells(r, 4) = Month(dt)
Cells(r, 5) = Day(dt)
Next r
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

まあ、想定とは違うかもしれんが正しく動いてると思われるな
解決策は、表示したいのは数値なのか日付なのかちゃんと決めて然るべき値と書式を設定しろ
1-
あと 687 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.011s