!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ
ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ
※前スレ
Excel VBA 質問スレ Part70
https://mevius.5ch.net/test/read.cgi/tech/1616072923/
Excel VBA 質問スレ Part71
https://mevius.5ch.net/test/read.cgi/tech/1621914481/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part73
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ 4668-xJJl)
2021/09/13(月) 07:29:59.47ID:GNx0xRRz0964デフォルトの名無しさん (ワッチョイ 1a68-kSWT)
2021/12/19(日) 08:34:48.49ID:J5v8c1sd0965デフォルトの名無しさん (ワッチョイ 1a68-kSWT)
2021/12/19(日) 08:38:14.07ID:J5v8c1sd0966デフォルトの名無しさん (ワッチョイ 4af0-g56a)
2021/12/19(日) 15:48:07.81ID:LtRjW0Zk0 >>963
> 必要な仕様が足りない
失礼しました
> ・B2よりB1が大きい場合は動作しない?それとも翌月のその日までを記載?
B1の方が大きければ空白になってくれればいいのですが
エラー表示がセルに表示されてもエラーはエクセルの設定で空白にできるので大丈夫かと思っています
月をまたぐことはありません
> ・B1,B2に入力された数値が日付として有り得ない場合はどうする?動作しないだけでよいのか?
122/111や12/35と表示されてもかまいません
文字が入力されてもそのまま表示したいです
> ・年の判定はどうする?現在の年を使用してよいのか?
年は考慮しなくても大丈夫です
長くて一週間の予定だけでしか使用しません
説明下手ですいません (汗
> 必要な仕様が足りない
失礼しました
> ・B2よりB1が大きい場合は動作しない?それとも翌月のその日までを記載?
B1の方が大きければ空白になってくれればいいのですが
エラー表示がセルに表示されてもエラーはエクセルの設定で空白にできるので大丈夫かと思っています
月をまたぐことはありません
> ・B1,B2に入力された数値が日付として有り得ない場合はどうする?動作しないだけでよいのか?
122/111や12/35と表示されてもかまいません
文字が入力されてもそのまま表示したいです
> ・年の判定はどうする?現在の年を使用してよいのか?
年は考慮しなくても大丈夫です
長くて一週間の予定だけでしか使用しません
説明下手ですいません (汗
967デフォルトの名無しさん (ワッチョイ be01-P5d1)
2021/12/19(日) 17:22:51.01ID:6V5J9+AZ0 Dim a(10,20)
a(1,2)=3
上で2行目の1や2の数字のことを何て言うのでしょうか
初歩の質問で申し訳ありません。
a(1,2)=3
上で2行目の1や2の数字のことを何て言うのでしょうか
初歩の質問で申し訳ありません。
968デフォルトの名無しさん (ワッチョイ f310-u1yJ)
2021/12/19(日) 17:50:26.31ID:XeEcFWJL0 ひきすう?
969デフォルトの名無しさん (テテンテンテン MMe6-CICS)
2021/12/19(日) 17:53:41.03ID:KHFMKFNKM >>967
添え字かな
添え字かな
970デフォルトの名無しさん (ワッチョイ dabd-6dU9)
2021/12/19(日) 18:27:21.36ID:pq+sPc2G0 あるソフトウェアが出力する
ログファイル(テキストファイルで行数は不定)をスペース区切りで文字列として読み込むコードを書いているのですが
ログファイルの先頭行のスペースの数が一定ではなく
単純に読み込むと先頭の数値が
A列目に入ったりB列目、C列目に入ったりして困っております
連続するスペースを一つのデリミタとして扱うか
(そうすればA列だけが空白になる)
もしくは先頭に連続して入っているスペースを無視する方法を探しているのですが見当たりません
皆様のお力添えをお願い致します
ログファイル(テキストファイルで行数は不定)をスペース区切りで文字列として読み込むコードを書いているのですが
ログファイルの先頭行のスペースの数が一定ではなく
単純に読み込むと先頭の数値が
A列目に入ったりB列目、C列目に入ったりして困っております
連続するスペースを一つのデリミタとして扱うか
(そうすればA列だけが空白になる)
もしくは先頭に連続して入っているスペースを無視する方法を探しているのですが見当たりません
皆様のお力添えをお願い致します
971デフォルトの名無しさん (ワッチョイ dabd-6dU9)
2021/12/19(日) 18:43:59.87ID:pq+sPc2G0 >>970
自己レス
> 連続するスペースを一つのデリミタとして扱うか
> (そうすればA列だけが空白になる)
この方法は使えない事に気づきました
ログファイルの先頭(左端)
に数値が入っている場合もあるので
スペースが一つでも入っている場合では、入力される列が
A列とB列に変わってしまいます
先頭(左端)に連続して入っているスペースを無視する方法しか
無いかもしれません
自己レス
> 連続するスペースを一つのデリミタとして扱うか
> (そうすればA列だけが空白になる)
この方法は使えない事に気づきました
ログファイルの先頭(左端)
に数値が入っている場合もあるので
スペースが一つでも入っている場合では、入力される列が
A列とB列に変わってしまいます
先頭(左端)に連続して入っているスペースを無視する方法しか
無いかもしれません
972デフォルトの名無しさん (ワッチョイ 6a01-zVPI)
2021/12/19(日) 18:56:32.68ID:RC6G9Zkh0 何をしたいのかよくわからんけどちゃちゃっとやるなら正規表現使え
https://codezine.jp/article/detail/1655
https://codezine.jp/article/detail/1655
973デフォルトの名無しさん (ワッチョイ be8e-qezp)
2021/12/19(日) 19:02:03.97ID:oG6IuvVy0 ルビー基地外だぞ
974デフォルトの名無しさん (ワッチョイ 6a4f-7LcG)
2021/12/19(日) 19:04:40.91ID:9cYlynLW0 >>971
LTrimでググれ
LTrimでググれ
975デフォルトの名無しさん (ワッチョイ dabd-6dU9)
2021/12/19(日) 19:08:52.05ID:pq+sPc2G0 連続レス申し訳ありません
必要な処理はもうちょっと複雑でした
GetOpenFilenameで開いたファイルを
Workbooks.Open(FileN,Format:=3,ReadOnly:=True)
で処理しているのですが
ログファイルの行中に連続して入っているスペースも一つずつカウントして空白列を作ってしまいます
必要な処理は
1) 連続したスペースを一つのデリミタとして区切り
2) 行先頭にスペースが入っていた場合は最初の文字が始まるまで削除もしくは無視する
といったものになると思います
何卒ご助力お願い致します
必要な処理はもうちょっと複雑でした
GetOpenFilenameで開いたファイルを
Workbooks.Open(FileN,Format:=3,ReadOnly:=True)
で処理しているのですが
ログファイルの行中に連続して入っているスペースも一つずつカウントして空白列を作ってしまいます
必要な処理は
1) 連続したスペースを一つのデリミタとして区切り
2) 行先頭にスペースが入っていた場合は最初の文字が始まるまで削除もしくは無視する
といったものになると思います
何卒ご助力お願い致します
976デフォルトの名無しさん (ワッチョイ 4f68-FJAE)
2021/12/19(日) 19:46:59.93ID:sZ+QwmZV0977デフォルトの名無しさん (ワッチョイ dabd-6dU9)
2021/12/19(日) 20:17:13.17ID:pq+sPc2G0978デフォルトの名無しさん (ワッチョイ 3b01-jbri)
2021/12/19(日) 20:33:08.86ID:Ax4UFlXX0 >>975
1行ずつ読み込んで事前処理するのがいいんじゃね
------------------------
行=1
列=1
Open filename for Input as #1
Do until EOF(1)
Line Input #1, str '一行ずつ読み込み
str=Trim(str) '両端の空白除去
arr=Split(str," ") '空白で分割し配列に格納
for i=1 to arr.Ubound(arr) 'セルに書き込み
Cells(行,列+i).Value=arr[i]
next i
行=行+1
Loop
close #1
-----------------------------
1行ずつ読み込んで事前処理するのがいいんじゃね
------------------------
行=1
列=1
Open filename for Input as #1
Do until EOF(1)
Line Input #1, str '一行ずつ読み込み
str=Trim(str) '両端の空白除去
arr=Split(str," ") '空白で分割し配列に格納
for i=1 to arr.Ubound(arr) 'セルに書き込み
Cells(行,列+i).Value=arr[i]
next i
行=行+1
Loop
close #1
-----------------------------
979デフォルトの名無しさん (ワッチョイ be01-P5d1)
2021/12/19(日) 20:40:17.69ID:6V5J9+AZ0 >>968-969
ご回答ありがとうございました
ご回答ありがとうございました
980デフォルトの名無しさん (ワッチョイ 2ffd-izju)
2021/12/19(日) 20:44:00.34ID:F1jZtUeQ0 >>966
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Union(Me.Range("A1"), Me.Range("B1"), Me.Range("B2"))) Is Nothing Then
If Me.Range("A1").Value <> "" And Me.Range("B1").Value <> "" And Me.Range("B2").Value <> "" Then
Me.Columns(3).ClearContents
If Me.Columns(3).NumberFormatLocal <> "@" Then Me.Columns(3).NumberFormatLocal = "@"
If IsNumeric(Me.Range("A1").Value) And IsNumeric(Me.Range("B1").Value) And IsNumeric(Me.Range("B2").Value) And Me.Range("B1").Value <= Me.Range("B2").Value Then
Dim OutAry() As String
ReDim OutAry(Me.Range("B1").Value To Me.Range("B2").Value)
Dim RowCnt As Long
For RowCnt = LBound(OutAry) To UBound(OutAry)
OutAry(RowCnt) = Me.Range("A1") & "/" & RowCnt
Next RowCnt
Range(Me.Cells(1, 3), Me.Cells(UBound(OutAry) - LBound(OutAry) + 1, 3)).Value = WorksheetFunction.Transpose(OutAry)
End If
End If
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Union(Me.Range("A1"), Me.Range("B1"), Me.Range("B2"))) Is Nothing Then
If Me.Range("A1").Value <> "" And Me.Range("B1").Value <> "" And Me.Range("B2").Value <> "" Then
Me.Columns(3).ClearContents
If Me.Columns(3).NumberFormatLocal <> "@" Then Me.Columns(3).NumberFormatLocal = "@"
If IsNumeric(Me.Range("A1").Value) And IsNumeric(Me.Range("B1").Value) And IsNumeric(Me.Range("B2").Value) And Me.Range("B1").Value <= Me.Range("B2").Value Then
Dim OutAry() As String
ReDim OutAry(Me.Range("B1").Value To Me.Range("B2").Value)
Dim RowCnt As Long
For RowCnt = LBound(OutAry) To UBound(OutAry)
OutAry(RowCnt) = Me.Range("A1") & "/" & RowCnt
Next RowCnt
Range(Me.Cells(1, 3), Me.Cells(UBound(OutAry) - LBound(OutAry) + 1, 3)).Value = WorksheetFunction.Transpose(OutAry)
End If
End If
End If
Application.EnableEvents = True
End Sub
981デフォルトの名無しさん (ワッチョイ dabd-6dU9)
2021/12/19(日) 20:57:27.62ID:pq+sPc2G0 >>978
ありがとうございます
私も一行ずつ処理するべきなのかと思い始めました
その際
----------------
arr=Split(str," ") '空白で分割し配列に格納
----------------
だとデータ行中に空白が連続している場合
例えば
a b c d
のような場合でも
A列→a
B列→b
C列→c
D列→d
のように入力可能でしょうか?
ありがとうございます
私も一行ずつ処理するべきなのかと思い始めました
その際
----------------
arr=Split(str," ") '空白で分割し配列に格納
----------------
だとデータ行中に空白が連続している場合
例えば
a b c d
のような場合でも
A列→a
B列→b
C列→c
D列→d
のように入力可能でしょうか?
982デフォルトの名無しさん (ワッチョイ 4af0-g56a)
2021/12/19(日) 21:13:00.94ID:LtRjW0Zk0983デフォルトの名無しさん (ブーイモ MMe6-jY/M)
2021/12/19(日) 21:22:20.20ID:o7hmg8oNM >>981
そんなもんマクロの記録で連続する区切り文字は1文字として扱うオプション使えばいいでしょ
そんなもんマクロの記録で連続する区切り文字は1文字として扱うオプション使えばいいでしょ
984デフォルトの名無しさん (ワッチョイ be2c-j66Y)
2021/12/19(日) 21:39:11.49ID:EkrjUmtA0 Ruby なら、abc の前後・間に、複数の連続した空白類があっても、分割できる
Ruby で,文字列を空白文字類や「.」などを区切りとして切り出す
https://www.kkaneko.jp/pro/ruby/tokenize.html
str = " a b c "
p str.split( nil )
p str.strip.split( /\s+/ )
p str.strip.split( /[ |\t|\r|\n|\f]+/ )
これらはすべて、["a", "b", "c"] となる
空白類・\s は、[ |\t|\r|\n|\f] の5種類の空白を含む。
strip は、文字列の先頭・末尾から、連続した空白類を除去する
Ruby で,文字列を空白文字類や「.」などを区切りとして切り出す
https://www.kkaneko.jp/pro/ruby/tokenize.html
str = " a b c "
p str.split( nil )
p str.strip.split( /\s+/ )
p str.strip.split( /[ |\t|\r|\n|\f]+/ )
これらはすべて、["a", "b", "c"] となる
空白類・\s は、[ |\t|\r|\n|\f] の5種類の空白を含む。
strip は、文字列の先頭・末尾から、連続した空白類を除去する
985デフォルトの名無しさん (ワッチョイ a301-h5UB)
2021/12/19(日) 21:42:45.37ID:tlLDAcl00 今時、rubyとか使ってんじゃねーよ
986デフォルトの名無しさん (ワッチョイ 4af0-g56a)
2021/12/19(日) 21:51:18.70ID:LtRjW0Zk0 >>980
すみません
今試してみました
C列には期間の日が表示され
D列には機関の月日が表示され
仮にB2に文字が入力されたら
C2とD2には文字が表示され
C1とD1には日と月日が表示したいです
私にはなにをどうしたらいいのかまったくわかりませんでした
技術的にむずかしいでしょうか?
ググってみましたが出来そうにないです
すみません
今試してみました
C列には期間の日が表示され
D列には機関の月日が表示され
仮にB2に文字が入力されたら
C2とD2には文字が表示され
C1とD1には日と月日が表示したいです
私にはなにをどうしたらいいのかまったくわかりませんでした
技術的にむずかしいでしょうか?
ググってみましたが出来そうにないです
987デフォルトの名無しさん (ワッチョイ 3b01-jbri)
2021/12/19(日) 22:12:20.36ID:Ax4UFlXX0 >>981
その場合はtrim, splitの替わりに正規表現使うのがいいかと
dim reg as new regexp
reg.global=true
reg.pattern="(\S+)" '空白以外
set mc=reg.execute(str)
for i to mc.count-1
set m=mc.item(i)
cells(1,i).value=m.value
next i
その場合はtrim, splitの替わりに正規表現使うのがいいかと
dim reg as new regexp
reg.global=true
reg.pattern="(\S+)" '空白以外
set mc=reg.execute(str)
for i to mc.count-1
set m=mc.item(i)
cells(1,i).value=m.value
next i
988デフォルトの名無しさん (ワッチョイ 7b7c-44a5)
2021/12/19(日) 23:20:35.00ID:2A/aI1dD0989デフォルトの名無しさん (ワッチョイ be8e-qezp)
2021/12/19(日) 23:23:16.74ID:oG6IuvVy0 相変わらずRuby基地外に引っ掛かる馬鹿ども
990デフォルトの名無しさん (ワッチョイ dabd-6dU9)
2021/12/19(日) 23:33:22.46ID:pq+sPc2G0991デフォルトの名無しさん (ワッチョイ dabd-6dU9)
2021/12/19(日) 23:36:15.57ID:pq+sPc2G0992デフォルトの名無しさん (ワッチョイ bee6-eGgJ)
2021/12/19(日) 23:41:22.83ID:kIFouMiR0 ファイルを開いてVBAで処理する系は
VBAのエディタがアップデート放棄しててユニコードに対応しないらしいのでやめた方がいいかも
Regexpでユニコード文字列を置き換える処理をこさえたりすればなんとかなるかもしれないが
VBAのエディタがアップデート放棄しててユニコードに対応しないらしいのでやめた方がいいかも
Regexpでユニコード文字列を置き換える処理をこさえたりすればなんとかなるかもしれないが
993デフォルトの名無しさん (ワッチョイ dabd-6dU9)
2021/12/19(日) 23:51:29.72ID:pq+sPc2G0994デフォルトの名無しさん (ドナドナー MMe6-WIuU)
2021/12/20(月) 01:25:47.26ID:x5N85HfoM replace(hoge," "," ")
995デフォルトの名無しさん (ワッチョイ 2ffd-v8OD)
2021/12/20(月) 01:39:15.08ID:jnlr9GaR0 >>986
ごめん
ちょっと何を言っているのか分からないからもう少し整理してから言葉にして
文字列や日付として破綻しているものでも可なのにその期間を出力せよっていうのはどういう意味?
仕様がちぐはぐで何をしたいのかが分からない
出力列を増やすのはのは対して手間は変わらないから自分でアレンジして
分からないならもっと基礎の部分を勉強するか諦めて関数式書いた方が早いよ
ごめん
ちょっと何を言っているのか分からないからもう少し整理してから言葉にして
文字列や日付として破綻しているものでも可なのにその期間を出力せよっていうのはどういう意味?
仕様がちぐはぐで何をしたいのかが分からない
出力列を増やすのはのは対して手間は変わらないから自分でアレンジして
分からないならもっと基礎の部分を勉強するか諦めて関数式書いた方が早いよ
996デフォルトの名無しさん (ワッチョイ 2ffd-v8OD)
2021/12/20(月) 01:41:34.12ID:jnlr9GaR0997デフォルトの名無しさん (ワッチョイ 6a4f-7LcG)
2021/12/20(月) 07:39:37.83ID:sc4Jjnxw0 >>996
乙
乙
998デフォルトの名無しさん (ワッチョイ 6668-kSWT)
2021/12/20(月) 10:40:58.57ID:2126b9QK0 >>995
前スレ見たらわかるけどそいつ後出し後出しで
しかも前スレで得た知識も抜きで再質問してる
https://mevius.5ch.net/test/read.cgi/tech/1626565335/782,829
>>996
乙!
前スレ見たらわかるけどそいつ後出し後出しで
しかも前スレで得た知識も抜きで再質問してる
https://mevius.5ch.net/test/read.cgi/tech/1626565335/782,829
>>996
乙!
999デフォルトの名無しさん (ワッチョイ 4af0-g56a)
2021/12/20(月) 21:13:06.47ID:1VhmJElm0 >>995
すいません
関数を使ってみたいとおもいます
これか自分で勉強しレベルを上げていきたいと思います
あなたのおっしゃるとおりだと思います
今までお教えいただいたことを参考に
勉強していきたいと思います
ここの先生たちには本当に感謝しています
すいません
関数を使ってみたいとおもいます
これか自分で勉強しレベルを上げていきたいと思います
あなたのおっしゃるとおりだと思います
今までお教えいただいたことを参考に
勉強していきたいと思います
ここの先生たちには本当に感謝しています
1000デフォルトの名無しさん (スッップ Sd8a-qezp)
2021/12/20(月) 21:21:42.29ID:XrZMAyhid いつものあいつ
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 98日 13時間 51分 43秒
新しいスレッドを立ててください。
life time: 98日 13時間 51分 43秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 空自機レーダー照射、音声データ公開 中国 [蚤の市★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★]
- 「中国側も日本機のレーダーを感知していた」 中国メディアが報道 [♪♪♪★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」★3 [ぐれ★]
- 【サッカー】上田綺世の活躍は「一過性」 15戦18発も…オランダ英雄は懐疑的な姿勢「確信に至っていない」 [ゴアマガラ★]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ [597533159]
- 【インド】中国に不満…これって世界大戦の前兆?高市はカレー好きなのかな?カツラなの [993451824]
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ180
- 中国の日本向けレアアースの輸出止まる、高市のせいで日本終了のお知らせ [931948549]
- 韓国政府、高市早苗の「竹島領土」発言にブチギレwwwwwwwwwwwwwwww [834922174]
- 高市早苗、定数削減法案廃案なら衆議院解散へ 郵政解散2ndキタ━━━━(゚∀゚)━━━━!! [175344491]
