!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:GNx0xRRz0972デフォルトの名無しさん (ワッチョイ 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を超えています。これ以上書き込みはできません。
ニュース
- 「中国側も日本機のレーダーを感知していた」 中国メディアが報道 [♪♪♪★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★7 [七波羅探題★]
- 防衛省、中国を完全論破www 「事前通告があったのは海自であって空自ではない」 高市早苗勝利 [175344491]
- 【悲報】JA「全然米が売れなくて倉庫を圧迫してる。助けて!」米卸売り業者「安売りしたら赤字になる…助けて!」 [802034645]
- 犬が布団入ってくるんだが
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ★4 [597533159]
- 高市早苗さん、もう自決でしか許されないレベルになる [402859164]
- 韓国政府、高市早苗の「竹島領土」発言にブチギレwwwwwwwwwwwwwwww [834922174]
