!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付ける
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part66
https://mevius.5ch.net/test/read.cgi/tech/1589085825/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
Excel VBA 質問スレ Part67
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 33da-3+hg)
2020/06/26(金) 02:01:29.56ID:uDfmpksE0206デフォルトの名無しさん (アウアウエー Sa82-qC4h)
2020/07/04(土) 15:56:38.11ID:D9As6lACa プロはとりあえず配列に格納するのが好きなんです
207デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/04(土) 16:03:39.61ID:DEQjmcqBd208デフォルトの名無しさん (スププ Sdaa-bNAA)
2020/07/04(土) 16:04:11.08ID:qCMIttGKd 十分な量を確保
あとで失敗するパターン
あとで失敗するパターン
209デフォルトの名無しさん (アウアウエー Sa82-h0J+)
2020/07/04(土) 16:09:00.53ID:MUUOvXMba data.csv
年月日,時間,気温,湿度
2020/07/04,11:15,28.5℃,78%
2020/07/04,12:15,ー,78%
2020/07/04,13:15,28.5℃,ー
2020/07/04,14:15,ー,ー
2020/07/04,15:15,28.5℃,78%
・・・
・・
・
1カ月データとして24時間×31日=744行+先頭行
1年12ヶ月データで8,928行かぁ
データスルーとかデータ穴埋めとかって
どっちの場合も
VBA じゃなくてデータベースのSQLで出来たりするのかな?
年月日,時間,気温,湿度
2020/07/04,11:15,28.5℃,78%
2020/07/04,12:15,ー,78%
2020/07/04,13:15,28.5℃,ー
2020/07/04,14:15,ー,ー
2020/07/04,15:15,28.5℃,78%
・・・
・・
・
1カ月データとして24時間×31日=744行+先頭行
1年12ヶ月データで8,928行かぁ
データスルーとかデータ穴埋めとかって
どっちの場合も
VBA じゃなくてデータベースのSQLで出来たりするのかな?
210デフォルトの名無しさん (ワッチョイ 1bac-OmMV)
2020/07/04(土) 16:22:41.23ID:DNEaiqy30 おれならそもそも案件をRDBMSに移す提案をするわ
だめなら元データはどうせCSVやJsonかなにかだろうし、VBAから普通にRDBにいれてプロシージャ叩くとか
外部プログラムで直に処理するね
元データがExcelでExcel縛りなら、どうやって案件から手を引くかを考えるねw
Excel起動するVBAでやることじゃない
まあ金次第でもあるけど
だめなら元データはどうせCSVやJsonかなにかだろうし、VBAから普通にRDBにいれてプロシージャ叩くとか
外部プログラムで直に処理するね
元データがExcelでExcel縛りなら、どうやって案件から手を引くかを考えるねw
Excel起動するVBAでやることじゃない
まあ金次第でもあるけど
211デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/04(土) 16:30:22.62ID:DEQjmcqBd212デフォルトの名無しさん (スププ Sdaa-bNAA)
2020/07/04(土) 16:35:45.74ID:qCMIttGKd pythonでデータクリーニングさせれば?
213デフォルトの名無しさん (ワッチョイ 8a01-21HI)
2020/07/04(土) 16:42:21.08ID:IjVZd7O90214デフォルトの名無しさん (ワッチョイ 8a01-21HI)
2020/07/04(土) 16:47:20.12ID:IjVZd7O90215デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/04(土) 17:02:54.82ID:DEQjmcqBd216デフォルトの名無しさん (アウアウウー Sacf-z1wt)
2020/07/04(土) 17:18:55.42ID:pfDbF4Mra どうせ適当なデータでっち上げて表示させても気づかないだろ
217200 (ワッチョイ 87cc-ERT+)
2020/07/04(土) 17:35:53.50ID:oup49XFx0218デフォルトの名無しさん (ワッチョイ 8e02-JJ0U)
2020/07/04(土) 17:46:55.47ID:aRnpDm0b0 5ちゃんのExcelVBA質問スレでMonaさんに対してマウントを取りたいのですが、
Mount Mona
と記述してもマウントが取れません
どうすればいいですか?
Mount Mona
と記述してもマウントが取れません
どうすればいいですか?
219デフォルトの名無しさん (ワッチョイ 1e8e-0gyK)
2020/07/04(土) 17:49:24.23ID:1naoKVTK0220デフォルトの名無しさん (ワッチョイ 87cc-ERT+)
2020/07/04(土) 17:54:43.71ID:oup49XFx0 A列の2行目以降に値あり、B列の2行目以降に同じ行のA列の値が
上から何回目に出現したかを返す関数として「=COUNTIF($A$1:A2,A2」を使っています。
同じことを配列で使用する方法を教えて下さい。
(A列の値は並び替えをしてあります)
Dim EndRow As Long, r As Long
EndRow = Cells(Rows.Count, 1).End(xlUp).Row
ReDim ary(EndRow, 2)
ary = Range("A2:B" & EndRow).Value
For r = 1 To EndRow - 1
ary(r, 2) = Application.WorksheetFunction.CountIf _
(Range(ary(1, 1), ary(r, 1)), ary(r, 1))
Next r
これだとRangeメソッドは失敗しましたになります。
上から何回目に出現したかを返す関数として「=COUNTIF($A$1:A2,A2」を使っています。
同じことを配列で使用する方法を教えて下さい。
(A列の値は並び替えをしてあります)
Dim EndRow As Long, r As Long
EndRow = Cells(Rows.Count, 1).End(xlUp).Row
ReDim ary(EndRow, 2)
ary = Range("A2:B" & EndRow).Value
For r = 1 To EndRow - 1
ary(r, 2) = Application.WorksheetFunction.CountIf _
(Range(ary(1, 1), ary(r, 1)), ary(r, 1))
Next r
これだとRangeメソッドは失敗しましたになります。
221デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/04(土) 18:14:15.70ID:DEQjmcqBd222デフォルトの名無しさん (ワッチョイ 8a01-5cl0)
2020/07/04(土) 19:58:17.09ID:VZt6Ms3K0 >>185
批判したいとかそういうもんじゃないんだけど
わりと大きなデータ扱うことに興味があったんでどんなもんか実際やってみた
1カ所分しかやってないんだけど
csvから取得して平均値26280個をシート記入するまで1秒もかかってない感じ
一日ごとの平均は出してないけどこの分じゃそれほど差はないと思う
もしや取得時には配列で一括取得してても
シート記入時に配列使った一括記入してないんじゃ?
も少し情報提供すると
https://www.data.jma.go.jp/gmd/risk/obsdl/index.php#
ここから3年分時間別気温データを、1年ごとcsvにして三個ダウンロード
https://www.moug.net/tech/exvba/0060086.html
これと同じ感じでOpen使って取得
年ごとに必要な気温データのみ1次元配列に入れる
3つの配列を1つの配列にまとめる
平均値入れていく配列AveArrayを新しく作る(あえてString宣言)
あとはforで回しながら過去8時間分のデータを調べてデータない場合の個数を調べて
4つ以上ならAveArrayにN/Aを入れる
4つ未満なら8時間合計して、有効データ数で除算し、AveArrayに入れる
AveArrayを列数1の2次元配列にしてからシートに一括記入
なんかおれ間違ってる?
批判したいとかそういうもんじゃないんだけど
わりと大きなデータ扱うことに興味があったんでどんなもんか実際やってみた
1カ所分しかやってないんだけど
csvから取得して平均値26280個をシート記入するまで1秒もかかってない感じ
一日ごとの平均は出してないけどこの分じゃそれほど差はないと思う
もしや取得時には配列で一括取得してても
シート記入時に配列使った一括記入してないんじゃ?
も少し情報提供すると
https://www.data.jma.go.jp/gmd/risk/obsdl/index.php#
ここから3年分時間別気温データを、1年ごとcsvにして三個ダウンロード
https://www.moug.net/tech/exvba/0060086.html
これと同じ感じでOpen使って取得
年ごとに必要な気温データのみ1次元配列に入れる
3つの配列を1つの配列にまとめる
平均値入れていく配列AveArrayを新しく作る(あえてString宣言)
あとはforで回しながら過去8時間分のデータを調べてデータない場合の個数を調べて
4つ以上ならAveArrayにN/Aを入れる
4つ未満なら8時間合計して、有効データ数で除算し、AveArrayに入れる
AveArrayを列数1の2次元配列にしてからシートに一括記入
なんかおれ間違ってる?
223デフォルトの名無しさん (アウアウエー Sa82-qC4h)
2020/07/04(土) 20:07:02.00ID:ZiXQ0AsVa こうやって実際にやってみる人は素晴らしいと思う
224デフォルトの名無しさん (ワッチョイ 46f7-5RIT)
2020/07/04(土) 20:15:53.04ID:/OqMGH1W0225デフォルトの名無しさん (アウアウウー Sacf-ewff)
2020/07/04(土) 20:17:12.12ID:JHoncA5/a countifじゃなくてloopでfindにすればよいのでは
226デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/04(土) 22:27:57.95ID:VMWug14q0 VBAは手段の一つ、目的はデータの加工ってわりきればすぐ終わる作業なのに
無理してVBAだけでやろうとするからいつまでもおわらない
無理してVBAだけでやろうとするからいつまでもおわらない
227デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/04(土) 23:58:08.33ID:DEQjmcqBd >>222
ちょっと見た感じほぼ、俺と同じ感じだね。
>もしや取得時には配列で一括取得してても
シート記入時に配列使った一括記入してないんじゃ?
オイオイ、そんな素人なわけ無いだろ。
Line inputを使ったか、それより速いバイナリ読み込み+StrConv使ったかについては覚えて居ない。
まあ、速いといっても劇的に速くなる訳じゃないから、そんなことよりマルチプロセスってことでLine inputのままだったかも。
オレがやった時のデータは日付+24列のデータだった。
貼り付けは元データ込みで、元データの右に8時間平均と1日平均書いたと思うが、もしかしたら8時間平均は出力しなかったかも。
多分読み込みよりも列を増やした二次元配列にして書き込みにも利用してたと思う。
ちょっと見た感じほぼ、俺と同じ感じだね。
>もしや取得時には配列で一括取得してても
シート記入時に配列使った一括記入してないんじゃ?
オイオイ、そんな素人なわけ無いだろ。
Line inputを使ったか、それより速いバイナリ読み込み+StrConv使ったかについては覚えて居ない。
まあ、速いといっても劇的に速くなる訳じゃないから、そんなことよりマルチプロセスってことでLine inputのままだったかも。
オレがやった時のデータは日付+24列のデータだった。
貼り付けは元データ込みで、元データの右に8時間平均と1日平均書いたと思うが、もしかしたら8時間平均は出力しなかったかも。
多分読み込みよりも列を増やした二次元配列にして書き込みにも利用してたと思う。
228デフォルトの名無しさん (スップ Sd4a-aBdg)
2020/07/05(日) 00:48:44.07ID:poq4gvQsd 複数のファイルの名前を編集したい
具体的には、全てのファイルのファイル名に、2020と入れたい。
具体的には、全てのファイルのファイル名に、2020と入れたい。
229デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/05(日) 00:51:15.79ID:C4Jqu0Op0 DOSコマンドでできる
230デフォルトの名無しさん (ワッチョイ 27ce-BXkI)
2020/07/05(日) 01:49:00.12ID:UMxIfgnY0 >>228
ファイル名のどこに入れるの?先頭?真ん中?末尾?
ファイル名のどこに入れるの?先頭?真ん中?末尾?
231デフォルトの名無しさん (ワッチョイ bfe6-s8sF)
2020/07/05(日) 01:59:51.75ID:S3+IlzuQ0232デフォルトの名無しさん (ワッチョイ 1e8e-0gyK)
2020/07/05(日) 02:04:39.40ID:sCEs+yW00233デフォルトの名無しさん (ワッチョイ 46f7-5RIT)
2020/07/05(日) 03:08:45.12ID:EDU6Wt820 powershellでやれ
234デフォルトの名無しさん (ワッチョイ 8a01-c9XW)
2020/07/05(日) 07:10:34.18ID:Mq9FuBzw0 標準モジュールに、
Sub 1()
・・・
・・・
End Sub
Sub 2()
・・・
・・・
End Sub
Sub 3()
・・・
・・・
End Sub
と、書いていき、Sub 1()がSub 2()を呼び、Sub 2()がSub 3()を呼ぶ、って可能でしょうか?
Sub 1()
・・・
・・・
End Sub
Sub 2()
・・・
・・・
End Sub
Sub 3()
・・・
・・・
End Sub
と、書いていき、Sub 1()がSub 2()を呼び、Sub 2()がSub 3()を呼ぶ、って可能でしょうか?
235デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/05(日) 07:16:23.84ID:2yUokYO9d236デフォルトの名無しさん (ワッチョイ 8a01-5cl0)
2020/07/05(日) 07:44:05.89ID:VaIdJVAp0 >>227
せっかくなんで
csvは日付+24列に加工してみた
1カ所の8時間ごと平均データ26280個を作って1列に貼り付けるfunctionを作る
引数は貼り付け先の列の列番号
これを
@1回だけ実行 A列のみに貼り付け
A100回実行 A列から右100列に1列ごと貼り付け
B200回実行 A列から右200列に1列ごと貼り付け
timer付けて一応測ってみた
@0.31秒
A32秒
B67秒
2000回だと12分ぐらいか?
CPU i5-4670
メモリ 24GB
Win7
実行時はPCでテレビ見ながらJane2個起動
firefox、Janetterなど20個以上のアプリが動いてる
環境やらデータの数値の大きさやらで
差は2000倍に拡大する可能性があるんで何とも言えない
うちの職場のしょぼいPCでやったらもっと酷いと思う
せっかくなんで
csvは日付+24列に加工してみた
1カ所の8時間ごと平均データ26280個を作って1列に貼り付けるfunctionを作る
引数は貼り付け先の列の列番号
これを
@1回だけ実行 A列のみに貼り付け
A100回実行 A列から右100列に1列ごと貼り付け
B200回実行 A列から右200列に1列ごと貼り付け
timer付けて一応測ってみた
@0.31秒
A32秒
B67秒
2000回だと12分ぐらいか?
CPU i5-4670
メモリ 24GB
Win7
実行時はPCでテレビ見ながらJane2個起動
firefox、Janetterなど20個以上のアプリが動いてる
環境やらデータの数値の大きさやらで
差は2000倍に拡大する可能性があるんで何とも言えない
うちの職場のしょぼいPCでやったらもっと酷いと思う
237234 (ワッチョイ 8a01-c9XW)
2020/07/05(日) 07:54:44.65ID:Mq9FuBzw0 >>234をグーグルで検索するには、どういうキーワードで検索すればいいでしょうか?
238デフォルトの名無しさん (ワッチョイ 872c-+ZV3)
2020/07/05(日) 07:57:11.74ID:R1IME3L+0 >>228
Ruby で作った。
ただし、DryRun なので実際には実行されません!
require 'fileutils'
# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
glob_pattern = "C:/Users/Owner/Documents/*"
src_dir = File.dirname( glob_pattern ) # ディレクトリパスだけを取り出す
Dir.glob( glob_pattern )
.select { |full_path| File.file?( full_path ) } # ファイルのみ処理する
.each do |full_path| # 1つずつ処理する
dest_path = src_dir + "/" + "2020_" + File.basename( full_path ) # ファイル名
FileUtils::DryRun.move( full_path, dest_path )
end
# mv C:/Users/Owner/Documents/a.txt
# C:/Users/Owner/Documents/2020_a.txt
Ruby で作った。
ただし、DryRun なので実際には実行されません!
require 'fileutils'
# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
glob_pattern = "C:/Users/Owner/Documents/*"
src_dir = File.dirname( glob_pattern ) # ディレクトリパスだけを取り出す
Dir.glob( glob_pattern )
.select { |full_path| File.file?( full_path ) } # ファイルのみ処理する
.each do |full_path| # 1つずつ処理する
dest_path = src_dir + "/" + "2020_" + File.basename( full_path ) # ファイル名
FileUtils::DryRun.move( full_path, dest_path )
end
# mv C:/Users/Owner/Documents/a.txt
# C:/Users/Owner/Documents/2020_a.txt
239234 (ワッチョイ 8a01-c9XW)
2020/07/05(日) 08:01:08.68ID:Mq9FuBzw0240デフォルトの名無しさん (ワッチョイ 8a01-5cl0)
2020/07/05(日) 08:01:41.62ID:VaIdJVAp0241デフォルトの名無しさん (アウアウエー Sa82-h0J+)
2020/07/05(日) 08:04:40.53ID:nDNnOTMWa >>234
普通に最後にサブルーチンの名前呼び出し書いたら良いのでは?
Sub 1()
・・・
・・・
2
End Sub
Sub 2()
・・・
・・・
3
End Sub
Sub 3()
・・・
・・・
End Sub
普通に最後にサブルーチンの名前呼び出し書いたら良いのでは?
Sub 1()
・・・
・・・
2
End Sub
Sub 2()
・・・
・・・
3
End Sub
Sub 3()
・・・
・・・
End Sub
242234 (ワッチョイ 8a01-c9XW)
2020/07/05(日) 08:05:40.42ID:Mq9FuBzw0 >>240
どうもです。
どうもです。
243234 (ワッチョイ 8a01-c9XW)
2020/07/05(日) 08:06:29.51ID:Mq9FuBzw0 >>241
どうもです。
どうもです。
244デフォルトの名無しさん (ワッチョイ 8f5f-ewff)
2020/07/05(日) 11:36:58.35ID:CJtrxhlB0 >>242
呼び出しは、可読性考慮すると文頭にCall書いた方がいいよ
呼び出しは、可読性考慮すると文頭にCall書いた方がいいよ
245デフォルトの名無しさん (ワッチョイ 0a2f-+ZV3)
2020/07/05(日) 13:58:43.83ID:U1BgWcwt0 >>207
VBAでやっても6時間はかかりすぎな気がするが
マシンスペックとコード晒してみ
それ、計算式でやって再計算に1時間以上かかるのか?
当然試してるよな
マルチプロセスもどうやってやったのか気になるが
俺なら間違いなくDBにつっこんでSQLでやる
そういえばエクセルシートなりCSVなりに対してSQL投げる方法がいくつかあったけど
それは試したのか?
VBAでやっても6時間はかかりすぎな気がするが
マシンスペックとコード晒してみ
それ、計算式でやって再計算に1時間以上かかるのか?
当然試してるよな
マルチプロセスもどうやってやったのか気になるが
俺なら間違いなくDBにつっこんでSQLでやる
そういえばエクセルシートなりCSVなりに対してSQL投げる方法がいくつかあったけど
それは試したのか?
246デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/05(日) 15:07:25.29ID:2yUokYO9d247デフォルトの名無しさん (ワッチョイ 1bac-OmMV)
2020/07/05(日) 15:11:46.86ID:BTTSshKd0248デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/05(日) 15:16:11.04ID:2yUokYO9d249デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/05(日) 15:22:54.54ID:2yUokYO9d マルチプロセスはExcel.Application8個(自分含めて)呼び出して、自分のブック開いて別CPUにやらせるプロシージャをApplication.OnTimeで呼び出したかSetTimerで呼び出したかだったんじゃないかな。
細かい連携しないで済むようにしてたと思う。
複雑なことはやってねえよ。
細かい連携しないで済むようにしてたと思う。
複雑なことはやってねえよ。
250220 (ワッチョイ 87cc-ERT+)
2020/07/05(日) 19:59:50.06ID:Y6miK3VP0251デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/05(日) 21:27:28.28ID:2yUokYO9d >>236
う〜ん、分からん。
俺もやってみたんだが、同じような時間だった。
観測値はテキ卜一に0〜100をランダムで書き込み。
観測出来なかった値は当時の記憶を頼りに9999とした。
確か9998もあったけど変わらんだろう。
前に書いた制約というかは、1年分のファイルが50〜60個ぐらいだったということ。
つまり県ごとのファイルで観測地が多い所は複数ファイルって感じ。
だから実際は行頭に観測地名が入って、その後に何かの数値とかが幾つかあって日付、観測値という具合だった。
年ごとのファイルが完全に固定フォーマットで無かったか、俺が信用してなかったか、観測値名で検索してたと思う。
そこから365日分は連続してたと思うけど。
それでも6時間は掛からんような気がしてきた。
もっと複雑なことやってたのかなあ。
どっちにしても後だしで申し訳ない。
う〜ん、分からん。
俺もやってみたんだが、同じような時間だった。
観測値はテキ卜一に0〜100をランダムで書き込み。
観測出来なかった値は当時の記憶を頼りに9999とした。
確か9998もあったけど変わらんだろう。
前に書いた制約というかは、1年分のファイルが50〜60個ぐらいだったということ。
つまり県ごとのファイルで観測地が多い所は複数ファイルって感じ。
だから実際は行頭に観測地名が入って、その後に何かの数値とかが幾つかあって日付、観測値という具合だった。
年ごとのファイルが完全に固定フォーマットで無かったか、俺が信用してなかったか、観測値名で検索してたと思う。
そこから365日分は連続してたと思うけど。
それでも6時間は掛からんような気がしてきた。
もっと複雑なことやってたのかなあ。
どっちにしても後だしで申し訳ない。
252デフォルトの名無しさん (ワッチョイ 8a01-21HI)
2020/07/05(日) 22:26:04.09ID:ys79fvH60253デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/05(日) 22:29:31.22ID:2yUokYO9d254238 (ワッチョイ 872c-+ZV3)
2020/07/05(日) 22:43:00.48ID:R1IME3L+0 ファイル名の先頭に、2020_ を付けるぐらい、robocopy で出来ないのか?
255デフォルトの名無しさん (ワッチョイ 8a01-21HI)
2020/07/05(日) 22:49:17.55ID:ys79fvH60 2016ならよほど変なことをしてないと数時間とかかからんと思う
256デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/05(日) 23:53:51.99ID:C4Jqu0Op0 2020_2020_2020_2020・・・・
257デフォルトの名無しさん (ワッチョイ ea24-bNAA)
2020/07/06(月) 00:43:25.66ID:Cn1gvhVh0 officeが32bitだったというオチは?
258デフォルトの名無しさん (オッペケ Sr23-aBdg)
2020/07/06(月) 06:39:12.08ID:NN5xIHVpr workbookとworksheetって何が違うか。
259デフォルトの名無しさん (ワッチョイ 8a01-21HI)
2020/07/06(月) 07:15:30.65ID:5mzvDM1u0 キングジムファイルと綴じられてる一覧表って感じかな
260デフォルトの名無しさん (ワッチョイ 27ce-BXkI)
2020/07/06(月) 08:12:33.04ID:XvhlV03D0 32bitと64bitで計算スピードの差は2倍もないような
261デフォルトの名無しさん (オッペケ Sr23-aBdg)
2020/07/06(月) 08:39:32.35ID:NN5xIHVpr Activesheet.cells(1.1).Activate
Activesheet.Paste
は上手くいくのに、
Activesheet.cells(1.1).Paste
は何でダメなんですか?
Activesheet.Paste
は上手くいくのに、
Activesheet.cells(1.1).Paste
は何でダメなんですか?
262デフォルトの名無しさん (ワッチョイ 8aea-Qwhy)
2020/07/06(月) 09:18:02.55ID:Ag715axD0 >>261
.pasteは、worsheetのメンバであってrangeやcellsのメンバじゃないから、かな?
.pasteは、worsheetのメンバであってrangeやcellsのメンバじゃないから、かな?
263デフォルトの名無しさん (ワッチョイ 8749-OmMV)
2020/07/06(月) 09:49:31.89ID:Smcv6rvz0 パラメータ Destinationがあるから
ワイはPasteSpecialのほうが好き
ワイはPasteSpecialのほうが好き
264デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/06(月) 12:08:40.63ID:0NryXgvDd265デフォルトの名無しさん (ワッチョイ 87cc-ERT+)
2020/07/06(月) 18:39:32.80ID:XttWreH00 For
処理1
処理2
処理3
処理4
Next
よりも
For
処理1
Next
For
処理2
Next
For
処理3
Next
For
処理4
Next
の方が処理が早い傾向がありますが、そういうものですか?
処理1
処理2
処理3
処理4
Next
よりも
For
処理1
Next
For
処理2
Next
For
処理3
Next
For
処理4
Next
の方が処理が早い傾向がありますが、そういうものですか?
266デフォルトの名無しさん (ワッチョイ 3aba-/RNd)
2020/07/06(月) 19:08:39.04ID:tFUllOPh0267デフォルトの名無しさん (ワッチョイ 3aba-/RNd)
2020/07/06(月) 19:10:33.89ID:tFUllOPh0 てか、もうRubyは徒花だったな。
人気もダダ下がりだし。
人気もダダ下がりだし。
268デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/06(月) 20:45:52.99ID:0NryXgvDd269デフォルトの名無しさん (ワッチョイ 0a2f-+ZV3)
2020/07/06(月) 20:59:38.60ID:aGu/2bZb0270デフォルトの名無しさん (ワッチョイ 3aba-/RNd)
2020/07/06(月) 21:12:06.08ID:tFUllOPh0 >>268
どこでもかしこでもRubyで書いて押し付けてきて、「出来だよ!」っていうオジサンがいるのよ。
WSHスレでは「Rubyおじさん」として有名だった。
が、自分よりスキルの上な奴がコードをうしたら黙り込む。
こんなところにまで出張いてるとはね…。
無視推奨。Rubyはオワコンだし。
どこでもかしこでもRubyで書いて押し付けてきて、「出来だよ!」っていうオジサンがいるのよ。
WSHスレでは「Rubyおじさん」として有名だった。
が、自分よりスキルの上な奴がコードをうしたら黙り込む。
こんなところにまで出張いてるとはね…。
無視推奨。Rubyはオワコンだし。
271デフォルトの名無しさん (アウアウエー Sa82-qC4h)
2020/07/06(月) 21:13:16.26ID:K1goXTAAa じゃあVBAはお爺ちゃんだろ
272デフォルトの名無しさん (ワッチョイ 3aba-/RNd)
2020/07/06(月) 21:17:13.18ID:tFUllOPh0 >>271
VBAは「頼れるジジイ」だろ。何言ってんの?
VBAは「頼れるジジイ」だろ。何言ってんの?
273デフォルトの名無しさん (ワッチョイ 27ce-BXkI)
2020/07/06(月) 21:29:12.52ID:XvhlV03D0274デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/06(月) 22:27:45.01ID:33E9zFJO0 Rubyの話がしたければRubyのスレ行けばいいのにね
275デフォルトの名無しさん (スプッッ Sd4a-tYaB)
2020/07/07(火) 12:27:17.68ID:mk51G87Dd276デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/07(火) 19:51:41.03ID:CAdbpiIn0 宣伝だろ
277デフォルトの名無しさん (ワッチョイ 8a01-c9XW)
2020/07/07(火) 20:15:33.65ID:2cf+0s2v0 音楽のmidiファイルを作りたい、つまりバイナリファイルを作りたい者です。で、
↓を試してみたいのですが、"C3"にバイナリの配列を書き込まなければいけません。
この場合、どうやってexcelのセルに、バイナリの配列データを書き込むのでしょうか?
https://oshiete.goo.ne.jp/qa/8402512.html
Sub test()
TEMP = Worksheets("Sheet1").Range("C3")
ReDim BIN(Len(TEMP) / 2 - 1) As Byte
For I = 1 To Len(TEMP) Step 2
BIN((I - 1) / 2) = Val("&H" & Mid(TEMP, I, 2))
Next I
Open "1.BIN" For Binary As #1
Put #1, , BIN
Close #1
End Sub
↓を試してみたいのですが、"C3"にバイナリの配列を書き込まなければいけません。
この場合、どうやってexcelのセルに、バイナリの配列データを書き込むのでしょうか?
https://oshiete.goo.ne.jp/qa/8402512.html
Sub test()
TEMP = Worksheets("Sheet1").Range("C3")
ReDim BIN(Len(TEMP) / 2 - 1) As Byte
For I = 1 To Len(TEMP) Step 2
BIN((I - 1) / 2) = Val("&H" & Mid(TEMP, I, 2))
Next I
Open "1.BIN" For Binary As #1
Put #1, , BIN
Close #1
End Sub
278デフォルトの名無しさん (ワッチョイ 1bac-OmMV)
2020/07/07(火) 20:25:40.74ID:BPFgnJg70 なんでVBAでやるの?
279デフォルトの名無しさん (ブーイモ MMef-aKnn)
2020/07/07(火) 20:27:13.84ID:z4TbLErcM VBAスレだから
280犬丸 ◆MRCYWQz4rc (ワッチョイ 8a01-c9XW)
2020/07/07(火) 20:31:41.96ID:2cf+0s2v0 >>278
和音の構成音(ドレミ・・・)を1つづつセルに入れられるから。
和音の構成音(ドレミ・・・)を1つづつセルに入れられるから。
281デフォルトの名無しさん (ワッチョイ 1bac-OmMV)
2020/07/07(火) 20:33:47.85ID:BPFgnJg70 なんでdominoとか使わないの?
282デフォルトの名無しさん (ワッチョイ 8a01-c9XW)
2020/07/07(火) 20:34:49.08ID:2cf+0s2v0 あと、PCにインストールされてる開発系はexcelだけだから。
283277 (ワッチョイ 8a01-c9XW)
2020/07/07(火) 20:41:28.24ID:2cf+0s2v0 つか、改変させたいmidiファイルが300個位あって、それの欲しいデータのexcelファイルへの読み込みはもう終わったわけ。
あとは、そのデータをちょい改変して、同様な300個のmidiファイルを吐き出すだけなんですよ。
あとは、そのデータをちょい改変して、同様な300個のmidiファイルを吐き出すだけなんですよ。
284277 (ワッチョイ 8a01-c9XW)
2020/07/07(火) 20:42:49.00ID:2cf+0s2v0 だから、excelでバイナルファイルを作りたいのです。
285デフォルトの名無しさん (ワッチョイ de02-VQSO)
2020/07/07(火) 21:00:27.95ID:yByKJQAn0 読み込めたなら反対をやればいいんじゃないの
286デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/07(火) 21:05:07.15ID:CAdbpiIn0 >>283
著作権的にどうなの?
著作権的にどうなの?
287277 (ワッチョイ 8a01-c9XW)
2020/07/07(火) 21:10:37.49ID:2cf+0s2v0288デフォルトの名無しさん (ワッチョイ 1bac-OmMV)
2020/07/07(火) 21:13:27.88ID:BPFgnJg70 じゃあそうすればいいじゃない?
所詮16進数の文字の羅列(Byteの配列とかにはさすがに出来てるんやろ?)なんだから
最終的には好きに料理してファイルに吐き出せばいい
ただ、1つのセルにバイナリなんて入れたら手作業で編集なんてしずらくてしょうがないけどな
あとセルの文字数上限もあるだろうし
midiの規格書読んだことあるのかしらんが、よくチャンクとかバイナリいじって編集しようと思うな
所詮16進数の文字の羅列(Byteの配列とかにはさすがに出来てるんやろ?)なんだから
最終的には好きに料理してファイルに吐き出せばいい
ただ、1つのセルにバイナリなんて入れたら手作業で編集なんてしずらくてしょうがないけどな
あとセルの文字数上限もあるだろうし
midiの規格書読んだことあるのかしらんが、よくチャンクとかバイナリいじって編集しようと思うな
289デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/07(火) 21:13:57.80ID:CAdbpiIn0 >>287
ならmidiの編集ソフトが使った方がいいね
ならmidiの編集ソフトが使った方がいいね
290277 (ワッチョイ 8a01-c9XW)
2020/07/07(火) 21:14:00.67ID:2cf+0s2v0 >>286
そもそも観賞するためのmidiデータではなく音楽制作に使うツールとしてのmidiデータなんだよね。
そもそも観賞するためのmidiデータではなく音楽制作に使うツールとしてのmidiデータなんだよね。
291デフォルトの名無しさん (ドコグロ MM7f-21HI)
2020/07/07(火) 21:14:32.40ID:/HMzap4UM >>282
C#やVB.NETもあるけど?w
C#やVB.NETもあるけど?w
292277 (ワッチョイ 8a01-c9XW)
2020/07/07(火) 21:22:41.71ID:2cf+0s2v0 >>288
> midiの規格書読んだことあるのかしらんが、よくチャンクとかバイナリいじって編集しようと思うな
基礎的な部分は把握してます。
> 所詮16進数の文字の羅列(Byteの配列とかにはさすがに出来てるんやろ?)
これがわからないんです。たとえば、4D 54 68 64という16進のデータをexcelの1つのセルに書き込む方法を教えて欲しいのです。
> midiの規格書読んだことあるのかしらんが、よくチャンクとかバイナリいじって編集しようと思うな
基礎的な部分は把握してます。
> 所詮16進数の文字の羅列(Byteの配列とかにはさすがに出来てるんやろ?)
これがわからないんです。たとえば、4D 54 68 64という16進のデータをexcelの1つのセルに書き込む方法を教えて欲しいのです。
293277 (ワッチョイ 8a01-c9XW)
2020/07/07(火) 21:25:44.85ID:2cf+0s2v0 で、excelの"C3"に、4D 54 68 64を書き込んで>>277のソースを動かして試してみたいんです。
294デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/07(火) 21:26:04.88ID:CAdbpiIn0 これなんか良いんじゃね
https://openmidiproject.osdn.jp/Sekaiju.html
https://openmidiproject.osdn.jp/Sekaiju.html
295デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/07(火) 21:29:51.89ID:CAdbpiIn0 midiの規格ってそんな簡単じゃないから素人が扱っても音が切れたりトラックがずれたりして
結局使えないだろ
結局使えないだろ
296デフォルトの名無しさん (ワッチョイ 1e63-LTdq)
2020/07/07(火) 21:32:34.47ID:7cSgkxva0 ExcelのRange#valueにバイト列なんか入るわけないんだから自分がわかりやすいように文字列か数値に勝手に変換して勝手に入れろとしか言えない
297デフォルトの名無しさん (テテンテンテン MMc6-LTdq)
2020/07/07(火) 21:34:29.92ID:MaHOmhaOM Excelでmidiデータを取り扱うなんて常人の発想ではない
たぶんあなた以外に誰も方法はわからないから頑張ってその道の第一人者になって欲しい
たぶんあなた以外に誰も方法はわからないから頑張ってその道の第一人者になって欲しい
298デフォルトの名無しさん (ワッチョイ 1bac-OmMV)
2020/07/07(火) 21:35:25.31ID:BPFgnJg70 >>292
セルに入れられるのはあくまで文字列ってこと理解してないの?
その例なら「Byte(0):77 Byte(1):84〜」とかいう配列から「4D 54 68 64」という文字列にしなければセルには書き込めない
Byteはそれぞれの数値が入ってるだろうけど、hexかなんかで16進数にしたうえで(編集上必要あるか知らんけど)
join(array, " ")かなんかで1つの文字列にする
くっそ編集しずらいだろうけどな
セルに入れられるのはあくまで文字列ってこと理解してないの?
その例なら「Byte(0):77 Byte(1):84〜」とかいう配列から「4D 54 68 64」という文字列にしなければセルには書き込めない
Byteはそれぞれの数値が入ってるだろうけど、hexかなんかで16進数にしたうえで(編集上必要あるか知らんけど)
join(array, " ")かなんかで1つの文字列にする
くっそ編集しずらいだろうけどな
299デフォルトの名無しさん (ワッチョイ 8ab5-5DWS)
2020/07/07(火) 21:44:56.92ID:tZSrRerM0 前スレのテキストフルスキャンの発想とコード提示してくれた人
改めて言わせて貰う
職場の一大イベントを乗り切ったわこれで
改めて言わせて貰う
職場の一大イベントを乗り切ったわこれで
300デフォルトの名無しさん (ワッチョイ 8ab5-5DWS)
2020/07/07(火) 21:46:02.99ID:tZSrRerM0 改めて多大なるお礼を言わせて貰うが抜けてた
これのおかげですべての可能性が広がったわ
これのおかげですべての可能性が広がったわ
301277 (ワッチョイ 8a01-c9XW)
2020/07/07(火) 22:23:53.24ID:2cf+0s2v0 では、すみません。 >>277の質問はなしにして、↓の質問をお願いします。
1、変数に「4D 54 68 64」のバイナリデータを代入するソース
2、中身は「4D 54 68 64」だけのファイル
3、ファイル名は5ch.bin
こんなファイルを作るにはどのようなソースを書けばよいでしょうか?
1、変数に「4D 54 68 64」のバイナリデータを代入するソース
2、中身は「4D 54 68 64」だけのファイル
3、ファイル名は5ch.bin
こんなファイルを作るにはどのようなソースを書けばよいでしょうか?
302277 (ワッチョイ 8a01-c9XW)
2020/07/07(火) 22:29:17.16ID:2cf+0s2v0 >>228
allrenameというフリーソフトを使えばいいのじゃ。
allrenameというフリーソフトを使えばいいのじゃ。
303デフォルトの名無しさん (ワッチョイ 87da-VQSO)
2020/07/07(火) 22:32:51.69ID:CAdbpiIn0 >>301
バイナリ編集のソフト使えばいいんじゃね
バイナリ編集のソフト使えばいいんじゃね
304301 (ワッチョイ 8a01-c9XW)
2020/07/07(火) 22:42:26.54ID:2cf+0s2v0 >>303
すみません。 「VBAを使って」でした。
すみません。 「VBAを使って」でした。
305デフォルトの名無しさん (ワッチョイ 0302-WfHi)
2020/07/07(火) 22:43:37.27ID:O/UE8zUS0 もはやExcelを使うことが目的化してる
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 ★2 [お断り★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★6 [ぐれ★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★4 [BFU★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 [ぐれ★]
- 【外交】前台湾総統・馬英九氏、高市首相発言に「台湾を危険にさらす」台湾海峡の問題は「両岸の中国人が自ら話し合うべき」 [1ゲットロボ★]
- 【岸田速報】山上妹、覚醒。「自慢の兄」「安倍晋三と統一教会は強固な関係性」「法の下では解決不能」 [559744496]
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪
- 【悲報】高市早苗さん、もう辞職しか選択肢がない… [271912485]
- 【高市悲報】「岡田のせいです」と父さんに説明して通用するはずないんだけど大丈夫なの?ガチでその方向で固めてない?怒られない? [213647114]
- 【悲報】中国上海市民「総理は一般人じゃないんだからそんな発言したらダメですよ😅」ド正論を言われてしまう [359965264]
- 【ござる専🏡】風間🥷配信実況スレ🏯【風間いろは】
