!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part58
https://mevius.5ch.net/test/read.cgi/tech/1542577644/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
Excel VBA 質問スレ Part59
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ d2a3-A3MQ)
2019/02/09(土) 15:12:30.70ID:3lTArmdf0656デフォルトの名無しさん (ワッチョイ 9701-gWFi)
2019/03/06(水) 00:29:35.50ID:qZfNBEKA0 >>655
既存のウインドウを触るのは初心者にとっては結構大事だよ
閉じれてないのはQuitメソッドの前に次の処理が入ってしまってるだけだと思うから、
処理が終わったと思われる場所に自分でコードを挿入したらどうだろう
既存のウインドウを触るのは初心者にとっては結構大事だよ
閉じれてないのはQuitメソッドの前に次の処理が入ってしまってるだけだと思うから、
処理が終わったと思われる場所に自分でコードを挿入したらどうだろう
657デフォルトの名無しさん (ワッチョイ 9701-gWFi)
2019/03/06(水) 00:33:49.27ID:qZfNBEKA0658デフォルトの名無しさん (ワッチョイ 9701-gWFi)
2019/03/06(水) 00:36:57.21ID:qZfNBEKA0659デフォルトの名無しさん (オッペケ Sr0b-9DxJ)
2019/03/06(水) 00:54:59.22ID:jXlQSKwgr660デフォルトの名無しさん (ワッチョイ 9f7c-sBsz)
2019/03/06(水) 01:00:18.09ID:wqRC+Uom0 >>654
replace(str,vbcrlf,"うんこ")
replace(str,vbcrlf,"うんこ")
661デフォルトの名無しさん (ワッチョイ 9701-gWFi)
2019/03/06(水) 01:08:03.42ID:qZfNBEKA0662デフォルトの名無しさん (JP 0H4f-j5yB)
2019/03/06(水) 07:35:28.45ID:3ub5rlP9H IEってBusy以外にステータスも見てないとループ抜けちゃわなかったっけ
663デフォルトの名無しさん (ラクッペ MMcb-Z6MB)
2019/03/06(水) 07:51:07.24ID:9ZQV49QQM 抜けた気がする
要素がありませんってよく怒られた
要素がありませんってよく怒られた
664デフォルトの名無しさん (スプッッ Sd3f-IK5z)
2019/03/06(水) 08:14:30.41ID:OZZFIuGOd 両方見てても抜ける時が有る。
滅多に無いけど。
例えばClickで遷移する場合に、抜けてからBusyになることがあった。
Submitに比べてClickは単純に文字通りClickするだけなので遷移しないページも有るから必ずBusyになると想定されていないと想像してる。
それ以降Clickの時は最初にSleepを入れるようにしてる。
滅多に無いけど。
例えばClickで遷移する場合に、抜けてからBusyになることがあった。
Submitに比べてClickは単純に文字通りClickするだけなので遷移しないページも有るから必ずBusyになると想定されていないと想像してる。
それ以降Clickの時は最初にSleepを入れるようにしてる。
665デフォルトの名無しさん (スプッッ Sd3f-IK5z)
2019/03/06(水) 08:20:35.12ID:OZZFIuGOd >>654
別に方法は色々あると思うけど1行ずつ読み込んでも良いんじゃない?
1行ずつでも条件に合うまで1レコードとしなければ良い。
1レコードの最後にも改行は有るんだろ。
もし1行ずつ読むなら1レコード内に複数改行が有る可能性を考慮すること。
別に方法は色々あると思うけど1行ずつ読み込んでも良いんじゃない?
1行ずつでも条件に合うまで1レコードとしなければ良い。
1レコードの最後にも改行は有るんだろ。
もし1行ずつ読むなら1レコード内に複数改行が有る可能性を考慮すること。
666デフォルトの名無しさん (ワッチョイ ff2c-Im2K)
2019/03/06(水) 08:57:22.69ID:Uli2bEJM0 >>654
Ruby では、列をダブルクオートで囲むと、その中にカンマや改行を含める事もできる。
他の仕様も含め、詳しくはRFC4180を参照
require 'csv'
p CSV.parse_line( "a,\"あ\nい\"" )
# => ["a", "あ\nい"]
\n は改行
列区切りはカンマで、外側の"〜" は文字列を表すための囲み。
内側の\"〜\" は、"〜"内での"〜"を表すため、\ でエスケープしている。列囲みを表す
a の部分は、\"〜\"で囲まなくてもよい
Ruby では、列をダブルクオートで囲むと、その中にカンマや改行を含める事もできる。
他の仕様も含め、詳しくはRFC4180を参照
require 'csv'
p CSV.parse_line( "a,\"あ\nい\"" )
# => ["a", "あ\nい"]
\n は改行
列区切りはカンマで、外側の"〜" は文字列を表すための囲み。
内側の\"〜\" は、"〜"内での"〜"を表すため、\ でエスケープしている。列囲みを表す
a の部分は、\"〜\"で囲まなくてもよい
667デフォルトの名無しさん (ワッチョイ bf68-W5e4)
2019/03/06(水) 09:17:24.17ID:R/1sU7PR0 rubyって・・・
もう完全に終わってる言語なんだからそんなもの勧めないでよ
もう完全に終わってる言語なんだからそんなもの勧めないでよ
668デフォルトの名無しさん (ブーイモ MM1b-9NtP)
2019/03/06(水) 09:47:16.43ID:HGc0sPl8M669デフォルトの名無しさん (ワッチョイ bfab-GrE3)
2019/03/06(水) 11:28:25.04ID:p4qnJjw30 下記リンク先のページ下部にあるユーザ定義関数がVBAとして正しく書けてるかチェックして貰えませんか
https://peltiertech.com/loess-smoothing-in-excel/
https://peltiertech.com/loess-smoothing-in-excel/
670デフォルトの名無しさん (ワッチョイ bf68-W5e4)
2019/03/06(水) 11:39:12.31ID:R/1sU7PR0 >>669
どういう計算をしてるかは知らんけど、コード上は問題ない
どういう計算をしてるかは知らんけど、コード上は問題ない
671デフォルトの名無しさん (ワッチョイ bfab-GrE3)
2019/03/06(水) 15:05:39.78ID:p4qnJjw30 多分スレチだろうと思いますが、>>669をLibreoffice最新版に実装したところ戻り値に=LOESS(x,y,z,n)で指定したyの配列がそのまま表示されたのでコードどこか間違ってるか仕様変更したのを俺が見落としてるのかなと思って聞きました
ありがとうございました
ありがとうございました
672デフォルトの名無しさん (ワッチョイ 9fa3-+f+8)
2019/03/06(水) 15:12:15.84ID:n2VNtnMC0 >>666
市ね
市ね
673デフォルトの名無しさん (ワッチョイ 9701-SKB1)
2019/03/06(水) 21:16:11.63ID:qNVr+Lwh0 指定した列以外の列を削除する方法を模索しています。
たとえば、ABCDE列の1行目にそれぞれ
あ い う え お
と入っていて、
"あ"と"う"と"お"以外の列を削除し、
あ う お
というよにしたく、
このようなプログラミングをしたのですが意図するように動作しません。
ド素人と罵られること承知で質問に参りました。
論理式自体考え方がおかしいものとも思っています。
どなたかお力添えいただけないでしょうか?
Sub 不要列削除()
Dim i As Long
For i = 1 To 50
If Cells(1, i).Value <> "あ" Or Cells(1, i).Value <> "う" Or Cells(1, i).Value <> "お" Then
Columns(i).Delete
End If
Next
End Sub
たとえば、ABCDE列の1行目にそれぞれ
あ い う え お
と入っていて、
"あ"と"う"と"お"以外の列を削除し、
あ う お
というよにしたく、
このようなプログラミングをしたのですが意図するように動作しません。
ド素人と罵られること承知で質問に参りました。
論理式自体考え方がおかしいものとも思っています。
どなたかお力添えいただけないでしょうか?
Sub 不要列削除()
Dim i As Long
For i = 1 To 50
If Cells(1, i).Value <> "あ" Or Cells(1, i).Value <> "う" Or Cells(1, i).Value <> "お" Then
Columns(i).Delete
End If
Next
End Sub
674デフォルトの名無しさん (アウアウウー Sa9b-fNI3)
2019/03/06(水) 21:30:16.04ID:o9MkSJEKa >>673
ifの条件がおかしい
ifの条件がおかしい
675デフォルトの名無しさん (ワッチョイ 377c-u5eM)
2019/03/06(水) 21:31:48.30ID:LIhekGiK0 表示形式が混在したセルを見た目通りのまま表示形式が文字列の別のセルにコピーするいい方法ありませんか
例えばA1〜A3を、この見た目のまま表示形式が文字列のB1〜B3にコピーしたい場合
A
1 $1,000
2 2019/1/1
3 9:30
@
Dim buf() As Variant
buf = Range("A1:A3").Value
Range("B1:B3").Formula = buf '←そのまま入れてみる
B1〜B3は 3/6/2019、0.836111111、\10,000.00 になる
A
Dim buf() As Variant
Dim buf2(1 to 3, 1 to 1) As String
buf = Range("A1:A3").Value
For i = 1 to 3
buf2(i, 1) = buf(i, 1) '←文字列型にして入れてみる
Next
Range("B1:B3").Formula = buf2
B1〜B3は 2019/03/06、0.836111111111111、10000 になる
@Aどちらも書式が勝手に変わります
ちなみにセル範囲を配列に直接つっこまず、文字列型の配列に1セルずつ buf = Range(i, j).Text みたいな感じで入れてからセルに貼り付けると希望の結果になりますがめちゃくちゃ時間がかかります(大量データに使いたいので)
他にやり方があれば教えてください
例えばA1〜A3を、この見た目のまま表示形式が文字列のB1〜B3にコピーしたい場合
A
1 $1,000
2 2019/1/1
3 9:30
@
Dim buf() As Variant
buf = Range("A1:A3").Value
Range("B1:B3").Formula = buf '←そのまま入れてみる
B1〜B3は 3/6/2019、0.836111111、\10,000.00 になる
A
Dim buf() As Variant
Dim buf2(1 to 3, 1 to 1) As String
buf = Range("A1:A3").Value
For i = 1 to 3
buf2(i, 1) = buf(i, 1) '←文字列型にして入れてみる
Next
Range("B1:B3").Formula = buf2
B1〜B3は 2019/03/06、0.836111111111111、10000 になる
@Aどちらも書式が勝手に変わります
ちなみにセル範囲を配列に直接つっこまず、文字列型の配列に1セルずつ buf = Range(i, j).Text みたいな感じで入れてからセルに貼り付けると希望の結果になりますがめちゃくちゃ時間がかかります(大量データに使いたいので)
他にやり方があれば教えてください
676675 (ワッチョイ 377c-u5eM)
2019/03/06(水) 21:34:55.08ID:LIhekGiK0 例のA列は↓の間違いです、すいません
1 2019/3/6
2 20:04
3 \10,000
1 2019/3/6
2 20:04
3 \10,000
677デフォルトの名無しさん (アウアウウー Sa9b-fNI3)
2019/03/06(水) 21:37:03.61ID:o9MkSJEKa 画面表示を止めても遅い?
678デフォルトの名無しさん (アークセー Sx0b-yUTo)
2019/03/06(水) 21:54:06.80ID:ZuXoITq7x >>673
列インデックスで加算ループをしている途中で列削除をしてるから、削除した回数分だけ参照参照列の位置がおかしくなるのでは
例えば2列目を削除した後にループ処理の最初の処理に戻ると、次にi=3として.Cells(1,3)とセルアクセスしたときに見ることになるのは本来D1に位置していたセルになる
列削除した分インデックスがずれるので
こうやって減算ループにするのが正解の一つかと
Sub 不要列削除()
Dim i As Long
For i = 5 To 1 Step -1
If Cells(1, i).Value <> "あ" Or Cells(1, i).Value <> "う" Or Cells(1, i).Value <> "お" Then
Columns(i).Delete
End If
Next
End Sub
あるいは、列削除した場合にはEnd Ifの手前でiから1を引いてインデックス調整するようにしたりか
列インデックスで加算ループをしている途中で列削除をしてるから、削除した回数分だけ参照参照列の位置がおかしくなるのでは
例えば2列目を削除した後にループ処理の最初の処理に戻ると、次にi=3として.Cells(1,3)とセルアクセスしたときに見ることになるのは本来D1に位置していたセルになる
列削除した分インデックスがずれるので
こうやって減算ループにするのが正解の一つかと
Sub 不要列削除()
Dim i As Long
For i = 5 To 1 Step -1
If Cells(1, i).Value <> "あ" Or Cells(1, i).Value <> "う" Or Cells(1, i).Value <> "お" Then
Columns(i).Delete
End If
Next
End Sub
あるいは、列削除した場合にはEnd Ifの手前でiから1を引いてインデックス調整するようにしたりか
679デフォルトの名無しさん (アークセー Sx0b-yUTo)
2019/03/06(水) 21:56:07.90ID:ZuXoITq7x680デフォルトの名無しさん (ワッチョイ 178e-4jKm)
2019/03/06(水) 22:13:28.72ID:0dxLNo3Q0 馬鹿過ぎるのが問題
681デフォルトの名無しさん (ワッチョイ bf68-W5e4)
2019/03/06(水) 22:23:00.33ID:R/1sU7PR0 >>675
textプロパティ
Sub foo()
Range("c1").Value = Range("a1").Text
End Sub
範囲で代入は出来なかったので、適当にforeachで回してくれ
Range("c1:d2").Value = Range("a1:b2").Text
textプロパティ
Sub foo()
Range("c1").Value = Range("a1").Text
End Sub
範囲で代入は出来なかったので、適当にforeachで回してくれ
Range("c1:d2").Value = Range("a1:b2").Text
682デフォルトの名無しさん (ワッチョイ 377c-2g28)
2019/03/06(水) 22:36:44.70ID:LIhekGiK0683デフォルトの名無しさん (ワッチョイ 37e6-W5e4)
2019/03/06(水) 22:56:49.85ID:xGO4PHc60 CSVで書き出せばTEXTが得られるぞ
684デフォルトの名無しさん (ワッチョイ bf68-W5e4)
2019/03/06(水) 23:08:59.57ID:R/1sU7PR0 >>682
あぁtext使ったって書いてたね、ゴメン
配列でも無理なら高速化はどうだろうか
https://15g.jp/post-314/
高速化でも配列でも重いなら、
もうアクセス辺りに移行した方がいいかも
あぁtext使ったって書いてたね、ゴメン
配列でも無理なら高速化はどうだろうか
https://15g.jp/post-314/
高速化でも配列でも重いなら、
もうアクセス辺りに移行した方がいいかも
685デフォルトの名無しさん (ワッチョイ bf68-W5e4)
2019/03/06(水) 23:09:20.80ID:R/1sU7PR0 >>683
csvは勝手に変換されるのが鬼門すぎる
csvは勝手に変換されるのが鬼門すぎる
686675 (ワッチョイ 377c-2g28)
2019/03/06(水) 23:48:56.32ID:LIhekGiK0 やっぱりTextプロパティ使う以外無理そうですかね…
687デフォルトの名無しさん (ワッチョイ 1e68-uGU8)
2019/03/07(木) 00:01:59.48ID:UepKFInK0688デフォルトの名無しさん (ワッチョイ a701-ZBQD)
2019/03/07(木) 00:20:00.91ID:UmWyYgm40689デフォルトの名無しさん (ワッチョイ a3e6-uGU8)
2019/03/07(木) 00:26:34.58ID:bl5ieqXF0 >>688
遅いって書いてあるだろ。もっと上をお望みなんだよ
遅いって書いてあるだろ。もっと上をお望みなんだよ
690デフォルトの名無しさん (ワッチョイ a701-ZBQD)
2019/03/07(木) 00:44:39.67ID:UmWyYgm40 >>689
直接入力が遅いって言ってるから、入力だけ一括でやれば?と思ったんだが
直接入力が遅いって言ってるから、入力だけ一括でやれば?と思ったんだが
691675 (ワッチョイ a37c-DZHv)
2019/03/07(木) 00:46:43.69ID:zt2fCEgu0692デフォルトの名無しさん (ワッチョイ a701-ZBQD)
2019/03/07(木) 01:15:09.98ID:UmWyYgm40 描写と計算止めてCopyメソッドで10万行×30列を列ごとにコピペしたら一瞬で終わったが・・・
っていうかこれ以上増やそうとするとリソース不足でエクセルが悲鳴を上げるし、どういうデータをコピーしたいんだろ
っていうかこれ以上増やそうとするとリソース不足でエクセルが悲鳴を上げるし、どういうデータをコピーしたいんだろ
693デフォルトの名無しさん (ワッチョイ a701-ZBQD)
2019/03/07(木) 01:18:31.96ID:UmWyYgm40 あ、書式変わるのか・・・上のレスは忘れてください
694デフォルトの名無しさん (ワッチョイ cbb0-fHMV)
2019/03/07(木) 02:33:57.63ID:cMWEbvvB0 コピーしてテキストとして貼り付けじゃダメなのか?
695デフォルトの名無しさん (アウアウウー Sac3-tGXB)
2019/03/07(木) 02:58:39.40ID:Wb+CU65ma 早い遅いは個人の感覚でしかないとおもう
696デフォルトの名無しさん (ワッチョイ df67-Ly0m)
2019/03/07(木) 07:14:54.02ID:RImgiSgC0697デフォルトの名無しさん (スッップ Sd32-hyvy)
2019/03/07(木) 07:24:21.94ID:ldY6B6U1d >>691
valueで配列コピペした後に、セルに対してそれぞれ書式設定を手動もしくはマクロですれば?
書式は列ごとくらいは揃ってると思うし。
それもバラバラってことだと、そもそも集計の仕方が悪過ぎる。
valueで配列コピペした後に、セルに対してそれぞれ書式設定を手動もしくはマクロですれば?
書式は列ごとくらいは揃ってると思うし。
それもバラバラってことだと、そもそも集計の仕方が悪過ぎる。
698デフォルトの名無しさん (ワッチョイ a701-DUKr)
2019/03/07(木) 07:28:16.03ID:IFVQ3Zq/0699デフォルトの名無しさん (スッップ Sd32-hyvy)
2019/03/07(木) 07:44:13.43ID:ldY6B6U1d >>696
684じゃないけど、複雑に関数組んだりとか遅い関数が大量に入っててかつデータ数がエクセル上限近くで再計算に時間がかかるとか、あとセル上で反復計算やソルバー使ってたりするとある。
ただ684は書式がバラバラなセルを扱ってる時点で、複雑な計算をしてるとは思えないけど。
684じゃないけど、複雑に関数組んだりとか遅い関数が大量に入っててかつデータ数がエクセル上限近くで再計算に時間がかかるとか、あとセル上で反復計算やソルバー使ってたりするとある。
ただ684は書式がバラバラなセルを扱ってる時点で、複雑な計算をしてるとは思えないけど。
700デフォルトの名無しさん (ワッチョイ df67-Ly0m)
2019/03/07(木) 07:52:53.03ID:RImgiSgC0701675 (スフッ Sd32-tsl5)
2019/03/07(木) 08:38:04.86ID:QURDMn8Xd 再描画等定番の部分は止めています
セル数は100万ぐらい、列数、行数分回してTextプロパティを1セルずつ配列に入れる処理だけです
シートへの貼り付け処理ではなくこの取得部分に時間がかかります
同じ回数回すAや、Format関数、worksheetfunction.textを使った場合その半分以下の時間ですが望みの結果を得る方法はわかりませんでした…
セル数は100万ぐらい、列数、行数分回してTextプロパティを1セルずつ配列に入れる処理だけです
シートへの貼り付け処理ではなくこの取得部分に時間がかかります
同じ回数回すAや、Format関数、worksheetfunction.textを使った場合その半分以下の時間ですが望みの結果を得る方法はわかりませんでした…
702デフォルトの名無しさん (ワッチョイ f2a2-ouaW)
2019/03/07(木) 10:57:17.39ID:QGzmAmpt0 コピーした後NumberFormatで整えればええんちゃうん?
Dim buf() As Variant
buf = Range("A1:A3").Value
Range("B1:B3").Formula = buf
Range("b1").NumberFormat = "yyyy/m/d"
Range("b2").NumberFormat = "h:mm"
Range("b3").NumberFormat = "[$\-ja-JP]#,##0;-[$\-ja-JP]#,##0"
データが多すぎて無理?
Dim buf() As Variant
buf = Range("A1:A3").Value
Range("B1:B3").Formula = buf
Range("b1").NumberFormat = "yyyy/m/d"
Range("b2").NumberFormat = "h:mm"
Range("b3").NumberFormat = "[$\-ja-JP]#,##0;-[$\-ja-JP]#,##0"
データが多すぎて無理?
703デフォルトの名無しさん (ワッチョイ f2a2-ouaW)
2019/03/07(木) 10:58:23.63ID:QGzmAmpt0 アー、見た目が同じまま、「文字列」なのか・・・
すんません無視してください
すんません無視してください
704デフォルトの名無しさん (アウアウクー MM07-fHMV)
2019/03/07(木) 11:39:04.19ID:OUaGUe4hM705デフォルトの名無しさん (エムゾネ FF32-ekDA)
2019/03/07(木) 12:41:45.56ID:g1Ak82VsF 勘違いしてる奴が多いが、自動計算を止めたり描画を止めるのは初心者が速度アップのためにやる方法で、>>675のように速度アップの為に考えて組まれている場合には効果が無い。
上級者はこういう場合に描画止めたりしないよ。
考えずに組んで面倒くさい場合にやる奴はいるかもしれんけど。
上級者はこういう場合に描画止めたりしないよ。
考えずに組んで面倒くさい場合にやる奴はいるかもしれんけど。
706675 (スフッ Sd32-tsl5)
2019/03/07(木) 12:42:12.66ID:QURDMn8Xd >>702
あとからNumberformatを適用させるんでなく配列に入れる時点で適用させる手を考えたんですが、
適用させるのにworksheetfunction.textを使うと書式に「マイナス値は[赤]」みたいな色設定があるとなぜか1004エラーが出るし、Format関数使うと表示形式が標準の時なぜか値が「標準」という文字列になってしまいます
速度的にはtextプロパティ使うよりずっと速いんですが…もう訳がわからない
あとからNumberformatを適用させるんでなく配列に入れる時点で適用させる手を考えたんですが、
適用させるのにworksheetfunction.textを使うと書式に「マイナス値は[赤]」みたいな色設定があるとなぜか1004エラーが出るし、Format関数使うと表示形式が標準の時なぜか値が「標準」という文字列になってしまいます
速度的にはtextプロパティ使うよりずっと速いんですが…もう訳がわからない
707デフォルトの名無しさん (エムゾネ FF32-ekDA)
2019/03/07(木) 12:46:54.74ID:g1Ak82VsF >>675
他に方法があるか探る時間が無いので何とも言えんが、DB処理にするか、マルチプロセスで上手いことすれば早くなると思う。
他に方法があるか探る時間が無いので何とも言えんが、DB処理にするか、マルチプロセスで上手いことすれば早くなると思う。
708デフォルトの名無しさん (エムゾネ FF32-ekDA)
2019/03/07(木) 12:50:28.91ID:g1Ak82VsF よく考えたらDB処理は駄目な気がする。
表示部分を扱え無さそうだ。
表示部分を扱え無さそうだ。
709デフォルトの名無しさん (ワッチョイ ebce-2wIc)
2019/03/07(木) 18:02:24.90ID:6oCjCAip0 メモ帳にコピペすると書式が全部消えて見た目通りの文字列になる
メモ帳アプリの実体はエディットコントロールそのものだから、ユーザーフォームにエディットコントロールを貼っただけの作業場所を作って、そこ経由でコピペしてみたら?
メモ帳アプリの実体はエディットコントロールそのものだから、ユーザーフォームにエディットコントロールを貼っただけの作業場所を作って、そこ経由でコピペしてみたら?
710デフォルトの名無しさん (ワッチョイ 12a6-/DyH)
2019/03/07(木) 18:03:18.10ID:hp531q160 UserForm1にTextBox1とCommandButton1、TextBox2とCommandButton2の計4つが配置され
UserForm2には入力フォームが配置されています。
CommandButton1からUserForm2を呼び出した時は、TextBox1に記入
CommandButton2からUserForm2を呼び出した時は、TextBox2に記入
させるには、どうすれば良いですか?
UserForm2には入力フォームが配置されています。
CommandButton1からUserForm2を呼び出した時は、TextBox1に記入
CommandButton2からUserForm2を呼び出した時は、TextBox2に記入
させるには、どうすれば良いですか?
711デフォルトの名無しさん (エムゾネ FF32-ekDA)
2019/03/07(木) 18:34:04.34ID:rXPjoswtF712デフォルトの名無しさん (ワッチョイ cbda-/kwh)
2019/03/07(木) 18:34:43.55ID:qs1KmWLa0 複雑な処理でデータ量が多いなら遅くても仕方ないんじゃね?
どうせエクセルだし、専門職じゃないし、大した会社じゃないし、給料安いし
どうせエクセルだし、専門職じゃないし、大した会社じゃないし、給料安いし
713デフォルトの名無しさん (アークセー Sxc7-sOih)
2019/03/07(木) 19:03:35.19ID:qo/Sl71gx >>710
やり方はいくつもある
一番簡単な方法を書くと、
Userform1側の各ボタンのクリックイベント内に、任意のセルや標準モジュール上のPublic変数等にコマンドボタンのオブジェクト名をコピーする処理を書く(Me.ActiveControl.Nameでフォーム上でフォーカスされているコントロールオブジェクトの名前を取れるのでこれを使う)
Userform2側のイベントコードではそのコピーされたボタン名を読み取って書き込み先のテキストボックスを判定するようにする
やり方はいくつもある
一番簡単な方法を書くと、
Userform1側の各ボタンのクリックイベント内に、任意のセルや標準モジュール上のPublic変数等にコマンドボタンのオブジェクト名をコピーする処理を書く(Me.ActiveControl.Nameでフォーム上でフォーカスされているコントロールオブジェクトの名前を取れるのでこれを使う)
Userform2側のイベントコードではそのコピーされたボタン名を読み取って書き込み先のテキストボックスを判定するようにする
714デフォルトの名無しさん (アウアウエー Saaa-CO8P)
2019/03/07(木) 19:11:06.28ID:ximLdO0ya >>710
コマンドボタンのクリックイベントプロシージャで、グローバル変数に呼び出したボタン番号を格納→ユーザーフォーム2のコンストラクタでグローバル変数で分岐させる方法
もしくはコマンドボタンのクリックイベントプロシージャでユーザーフォーム2のマルチページコントロールのプロパティを変更する(value=1,2)方法もある
コマンドボタンのクリックイベントプロシージャで、グローバル変数に呼び出したボタン番号を格納→ユーザーフォーム2のコンストラクタでグローバル変数で分岐させる方法
もしくはコマンドボタンのクリックイベントプロシージャでユーザーフォーム2のマルチページコントロールのプロパティを変更する(value=1,2)方法もある
715675 (ワッチョイ a37c-DZHv)
2019/03/07(木) 21:34:32.55ID:zt2fCEgu0 セル範囲をコピーしてクリップボードから直接二次元配列に入れるようにしたら何十秒もかかってたのが0.5秒になりました
ただ、クリップボードから切り出す時にうっかりセルの値に手を加えてしまわないかが心配です
単純にVbCrLfで行を区切って、VbTabで列を区切ってるんですがそれで問題ないんでしょうか?
ただ、クリップボードから切り出す時にうっかりセルの値に手を加えてしまわないかが心配です
単純にVbCrLfで行を区切って、VbTabで列を区切ってるんですがそれで問題ないんでしょうか?
716デフォルトの名無しさん (ワッチョイ ebce-2wIc)
2019/03/07(木) 22:48:37.99ID:6oCjCAip0 >>715
セル内改行を使ってなければそれで大丈夫
セル内改行を使ってなければそれで大丈夫
717デフォルトの名無しさん (ワッチョイ a37c-DZHv)
2019/03/08(金) 00:03:05.83ID:+kJkkfKW0 >>716
セル内改行入れてみたら…またこんな落とし穴が…
セル内改行入れてみたら…またこんな落とし穴が…
718デフォルトの名無しさん (ワッチョイ 12a6-/DyH)
2019/03/08(金) 02:12:12.40ID:k3BFo3Xw0719デフォルトの名無しさん (アウアウエー Saaa-CO8P)
2019/03/08(金) 03:08:04.26ID:Tjqa7GxLa システムの大規模化が想定されるならユーザーフォームでユーザーフォームを呼び出すのは危険w
ユーザーフォーム間の依存性を高めてしまうw
ここはユーザーフォームを呼び出すクラスを作った方がいいw
クラスを介して情報を渡せば安全だし再利用性も高まるw
ユーザーフォーム間の依存性を高めてしまうw
ここはユーザーフォームを呼び出すクラスを作った方がいいw
クラスを介して情報を渡せば安全だし再利用性も高まるw
720デフォルトの名無しさん (ワッチョイ 1201-ouaW)
2019/03/08(金) 08:00:14.88ID:IUpgvQZO0 やっぱりuserformからuserform呼ぶのってよくないのか
こういうのってクラスモジュール使えるんだろうなって思ってたんだけど
余り使ったことなかたんで、ちゃんと勉強してみよう
参考書ぽちってきたわ
JavaとかC#を多少触ってきたからオブジェクト指向の概念は分かってるんだけど
VBAでの効果的な使い方をマスターしたいわ
こういうのってクラスモジュール使えるんだろうなって思ってたんだけど
余り使ったことなかたんで、ちゃんと勉強してみよう
参考書ぽちってきたわ
JavaとかC#を多少触ってきたからオブジェクト指向の概念は分かってるんだけど
VBAでの効果的な使い方をマスターしたいわ
721デフォルトの名無しさん (アークセー Sxc7-sOih)
2019/03/08(金) 08:01:46.46ID:aYiBhvGax 引数付きコンストラクタすら簡単に実装できない言語で呼び出し用クラス作る方がきついと感じてしまうね、個人的には
722デフォルトの名無しさん (ワッチョイ 1201-ouaW)
2019/03/08(金) 08:08:56.71ID:IUpgvQZO0 普通のコンストラクタには引数渡せないんだ
まぁその辺の限界も含めて一度勉強しておいたほうがいいとは思ってる
できることと出来ないことを知った上で、クラスを使う選択肢を持つことができればいいかなって
まぁその辺の限界も含めて一度勉強しておいたほうがいいとは思ってる
できることと出来ないことを知った上で、クラスを使う選択肢を持つことができればいいかなって
723デフォルトの名無しさん (ドコグロ MM32-DUKr)
2019/03/08(金) 08:15:50.67ID:nNie5CZRM VBAでクラスとか言ってるのはたいてい知ったかだからスルーしていい
VB.NETとかC#知ってたらストレスしかたまらん
VB.NETとかC#知ってたらストレスしかたまらん
724デフォルトの名無しさん (アウアウエー Saaa-/Er5)
2019/03/08(金) 08:23:55.15ID:URVXf1I+a そもそもVBAにクラスが欲しくなるような規模の要件を押し付けている時点で業務設計が破綻してる
725デフォルトの名無しさん (スプッッ Sd52-ekDA)
2019/03/08(金) 08:24:18.53ID:wvJFI7ubd726デフォルトの名無しさん (アウアウエー Saaa-/Er5)
2019/03/08(金) 08:43:43.11ID:URVXf1I+a727デフォルトの名無しさん (ドコグロ MM97-/Er5)
2019/03/08(金) 08:55:03.19ID:GpWg6Xx2M 逆にいうと、ワークシート上で人間が無理なく扱えるようなデータ構造にならざるを得ないから、
生え抜きのVBerが作りがちな酷いDB設計になりにくい
そういう良い意味でデータ構造に無理が利かないので、クラスでデータ構造を抽象化したくなるケースが少ないのだと思われる
生え抜きのVBerが作りがちな酷いDB設計になりにくい
そういう良い意味でデータ構造に無理が利かないので、クラスでデータ構造を抽象化したくなるケースが少ないのだと思われる
728デフォルトの名無しさん (エムゾネ FF32-ekDA)
2019/03/08(金) 12:25:06.22ID:3iX4ejeoF DBとして扱うならクラス使うことも考えるよ。
でも、DBとして扱うことも多くない。
DBならAccessにしちまうんで。
でも、DBとして扱うことも多くない。
DBならAccessにしちまうんで。
729デフォルトの名無しさん (ブーイモ MM0e-4aR2)
2019/03/08(金) 16:46:49.91ID:YR0R2o1EM いまAccessを使う理由って何?
無料版のSQL Server のスペックの方が上だろう。
移行が大変だから?
無料版のSQL Server のスペックの方が上だろう。
移行が大変だから?
730デフォルトの名無しさん (ワッチョイ b78e-mXZC)
2019/03/08(金) 16:53:49.99ID:84JrbWWM0 エンジンだけで比べてる頭の不自由な人かな?
731デフォルトの名無しさん (ドコグロ MM97-/Er5)
2019/03/08(金) 16:53:54.67ID:GpWg6Xx2M フォーム中心のまともなデータベースアプリが比較的簡単に作れるという点では意味がある
まあ今ならPowerApps使えばいいと思うけど
まあ今ならPowerApps使えばいいと思うけど
732デフォルトの名無しさん (アークセー Sxc7-sOih)
2019/03/08(金) 17:59:29.39ID:uRP/bscvx PowerApps使うならPowerShellかJScript使わないとな
まぁVBAは要らんわ
まぁVBAは要らんわ
733デフォルトの名無しさん (スプッッ Sd52-ekDA)
2019/03/08(金) 18:55:16.76ID:aTSUMsKkd ???
会社のPCに既にAccessがインストールされているのにもかかわらず、
Excelで扱うような程度のものをDBとして扱いたい時に、SQL Serverインストールはじめちゃう人?
全てにおいてセンスねーわ。
会社のPCに既にAccessがインストールされているのにもかかわらず、
Excelで扱うような程度のものをDBとして扱いたい時に、SQL Serverインストールはじめちゃう人?
全てにおいてセンスねーわ。
734デフォルトの名無しさん (スプッッ Sd52-ekDA)
2019/03/08(金) 18:56:25.33ID:aTSUMsKkd まだSQLiteの方が理解出来るわ。
735デフォルトの名無しさん (ブーイモ MM0e-4aR2)
2019/03/08(金) 19:18:32.09ID:rErY3KdLM >>733
正直君の意見はよくわからん
Management Studioすごく便利だよ
それにExcel からADOやODBCでつつく際のIFは大して変わらないんだからSQL Serverの方がパフォーマンスいいじゃん
正直君の意見はよくわからん
Management Studioすごく便利だよ
それにExcel からADOやODBCでつつく際のIFは大して変わらないんだからSQL Serverの方がパフォーマンスいいじゃん
736デフォルトの名無しさん (ワッチョイ a37c-DZHv)
2019/03/08(金) 19:24:33.31ID:+kJkkfKW0 うちの会社そういうの入れる時はそれを使う理由説明して了解得るのに手間がかかる
737デフォルトの名無しさん (スププ Sd32-wUBi)
2019/03/08(金) 19:46:50.70ID:iqA0OhOAd まあ普通はセキュリティ部門にリクエストして審査通らんと入れるのは無理だわな
VBAも原則禁止だから毎回例外申請してるわ
VBAも原則禁止だから毎回例外申請してるわ
738デフォルトの名無しさん (ワッチョイ cbda-/kwh)
2019/03/08(金) 21:38:31.98ID:quBQyQDX0 環境申請が必要な業務を未経験者にさせるほどうちの会社はブラックじゃない
739デフォルトの名無しさん (ワッチョイ b78e-mXZC)
2019/03/08(金) 21:38:33.69ID:84JrbWWM0 >>735
馬鹿はエンジンしか見ていない
馬鹿はエンジンしか見ていない
740デフォルトの名無しさん (ワッチョイ de8c-4aR2)
2019/03/08(金) 22:23:14.58ID:AVEVGkz60 具体的な事を言えよ
741デフォルトの名無しさん (ワッチョイ b78e-mXZC)
2019/03/08(金) 23:50:58.19ID:84JrbWWM0 >>740
馬鹿には理解できんのか?
馬鹿には理解できんのか?
742デフォルトの名無しさん (ワッチョイ a701-rbBm)
2019/03/09(土) 02:13:50.44ID:zk58FQoZ0 会社がoffice365に切り替わってAccess使えるようになった俺歓喜
743デフォルトの名無しさん (アウアウウー Sac3-tGXB)
2019/03/09(土) 02:15:54.88ID:w2C0D7DGa accessはスレチ
744デフォルトの名無しさん (ワッチョイ de8c-91/d)
2019/03/09(土) 04:02:18.85ID:83GbxNdW0 accessって開発続いてるの?
Excelを強化してAccessを見放すように思えてしょうがない
Excelを強化してAccessを見放すように思えてしょうがない
745デフォルトの名無しさん (ワッチョイ b7f1-IjB2)
2019/03/09(土) 04:12:29.83ID:676zsyfX0 accessはウンコです
746デフォルトの名無しさん (ワッチョイ ebdc-Ly0m)
2019/03/09(土) 07:26:22.26ID:j4uu9hgX0 Acccessとか。 いつの時代の遺品だよって感じだな
使いにくかったしなあ
使いにくかったしなあ
747デフォルトの名無しさん (ワッチョイ 1201-DUKr)
2019/03/09(土) 07:48:05.33ID:ABNsWlsO0748デフォルトの名無しさん (ワッチョイ 7234-pA/6)
2019/03/09(土) 08:34:58.65ID:nDxlP6J/0 SQLとOracleとAccess使うと書き方混乱する
749デフォルトの名無しさん (ワッチョイ 16da-/kwh)
2019/03/09(土) 09:22:46.51ID:Z89d69KF0 シート上に複数のテキストボックスを配置して、
KeyDownイベント + vbKeyRightとかvbKeyTabで、
テキストボックス間を移動出来るようにすると、
カーソルがたまに見えなくなるんだけど、回避策ない?
見えないだけで、存在はしているので、
文字は打てるんだけど、文字まで透明になっちゃう。
テキストボックスを何回か適当にクリックすると、
突然見えるようになる。
KeyDownイベント + vbKeyRightとかvbKeyTabで、
テキストボックス間を移動出来るようにすると、
カーソルがたまに見えなくなるんだけど、回避策ない?
見えないだけで、存在はしているので、
文字は打てるんだけど、文字まで透明になっちゃう。
テキストボックスを何回か適当にクリックすると、
突然見えるようになる。
750デフォルトの名無しさん (ワッチョイ 16da-/kwh)
2019/03/09(土) 09:24:00.36ID:Z89d69KF0 ↑あと、わざわざ画面更新を止めたりはしていない。
751デフォルトの名無しさん (ワッチョイ 16da-/kwh)
2019/03/09(土) 09:29:10.33ID:Z89d69KF0 ↑あ、別のPCで開いたら再現しなくなった。
もしかして、グラフィックボードの問題?
もしかして、グラフィックボードの問題?
752デフォルトの名無しさん (ワッチョイ a701-rbBm)
2019/03/09(土) 10:19:05.53ID:zk58FQoZ0 >>751
ボードと言ってるのはたぶんドライバのことだと思うけど、その可能性はあるよね。
いくつかバージョン違いを落としてきて試してみればいい。
とりあえずは、各メジャーバージョンが上がったばかりのは除いて、それぞれ最終リビジョンのを集めてきてかな
ボードと言ってるのはたぶんドライバのことだと思うけど、その可能性はあるよね。
いくつかバージョン違いを落としてきて試してみればいい。
とりあえずは、各メジャーバージョンが上がったばかりのは除いて、それぞれ最終リビジョンのを集めてきてかな
753デフォルトの名無しさん (ワッチョイ 1e90-R+To)
2019/03/09(土) 21:56:21.30ID:QAZD12fZ0 excel vbaとaccess vba
どちらの方が実用的ですか?
どちらの方が実用的ですか?
754デフォルトの名無しさん (ドコグロ MMea-/Er5)
2019/03/09(土) 22:00:31.82ID:BnoVO+GEM755デフォルトの名無しさん (ワッチョイ 1e90-R+To)
2019/03/09(土) 22:03:03.09ID:QAZD12fZ0 両方できて当たり前ですか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 【ネトウヨ終了】大人気ユーチューバー「高市早苗のことをまともだと思うやつは私のコンテンツにさわらないでください」 [339712612]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 外務局長「中国さんごめんなさぁ...」小野田「中国なんかどうでもいいっ!」高市「首脳会談したい」マスコミ「立憲が悪いっ!!」 [237216734]
