!extend:checked:vvvvv:1000:512
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part61
http://mevius.5ch.net/test/read.cgi/tech/1556203263/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
Excel VBA 質問スレ Part62
■ このスレッドは過去ログ倉庫に格納されています
1
2019/06/24(月) 00:21:37.48423デフォルトの名無しさん (ワッチョイ cfda-0ngu)
2019/07/21(日) 13:53:33.71ID:jI92lOqS0 デリケートにやるんだ
424デフォルトの名無しさん (アウアウカー Sac3-msqt)
2019/07/21(日) 14:18:30.41ID:4aIgjVvla >>418
ありがたいが、今ぱっと出せるのがクラス部分ぐらいしかない・・・
(StringBuilder.cls)Option Explicit
Private sBuf As String
Private iBuf As Long
Public Sub Initialize(ByRef tSize As Long)
sBuf = String$(tSize, vbNullChar)
iBuf = 0
End Sub
Public Sub Append(ByRef sValue As String)
If iBuf + Len(sValue) > Len(sBuf) Then sBuf = sBuf & String$(Len(sBuf) * 2 + Len(sValue), vbNullChar)
Mid(sBuf, iBuf + 1) = sValue
iBuf = iBuf + Len(sValue)
End Sub
Public Function ToString() As String
ToString = Left$(sBuf, iBuf)
End Function
https://excel-ubara.com/excelvba4/EXCEL271.html
のに少し手を加えただけなんだが(class_initializeでなく、呼び出し側が必ずinitializeを呼び出してサイズを決めるようにした)。
呼び出し側のコードが今手元になくて夜中までちょっと無理なんだが、やってる中身は、
Set objStringBuilder=New StringBuilder
Call objStringBuilder.Initialize(CONST_SIZE)
For i=1 To Len(srcStr)
Call objStringBuilder.Append(convertFunction(Mid$(srcStr,i,1)))
Next i
Let MainFunction=objStringBuilder.ToString
みたいな感じ。実際はもうちょい複雑だが、&使う方はここが
For i=1 To Len(srcStr)
Let MainFunction=MainFunction&convertFunction(Mid$(srcStr,i,1))
Next i
になってる、ぐらいなもん。
やっぱ、文字列型変数の評価回数が多いせいなんだろうか?
ありがたいが、今ぱっと出せるのがクラス部分ぐらいしかない・・・
(StringBuilder.cls)Option Explicit
Private sBuf As String
Private iBuf As Long
Public Sub Initialize(ByRef tSize As Long)
sBuf = String$(tSize, vbNullChar)
iBuf = 0
End Sub
Public Sub Append(ByRef sValue As String)
If iBuf + Len(sValue) > Len(sBuf) Then sBuf = sBuf & String$(Len(sBuf) * 2 + Len(sValue), vbNullChar)
Mid(sBuf, iBuf + 1) = sValue
iBuf = iBuf + Len(sValue)
End Sub
Public Function ToString() As String
ToString = Left$(sBuf, iBuf)
End Function
https://excel-ubara.com/excelvba4/EXCEL271.html
のに少し手を加えただけなんだが(class_initializeでなく、呼び出し側が必ずinitializeを呼び出してサイズを決めるようにした)。
呼び出し側のコードが今手元になくて夜中までちょっと無理なんだが、やってる中身は、
Set objStringBuilder=New StringBuilder
Call objStringBuilder.Initialize(CONST_SIZE)
For i=1 To Len(srcStr)
Call objStringBuilder.Append(convertFunction(Mid$(srcStr,i,1)))
Next i
Let MainFunction=objStringBuilder.ToString
みたいな感じ。実際はもうちょい複雑だが、&使う方はここが
For i=1 To Len(srcStr)
Let MainFunction=MainFunction&convertFunction(Mid$(srcStr,i,1))
Next i
になってる、ぐらいなもん。
やっぱ、文字列型変数の評価回数が多いせいなんだろうか?
425デフォルトの名無しさん (アウアウカー Sac3-msqt)
2019/07/21(日) 14:22:28.88ID:4aIgjVvla 行数制限でギュウギュウになってしまった。ごめん。
あと呼び出し側もOption Explicitつけてるので。一応。
あと呼び出し側もOption Explicitつけてるので。一応。
426デフォルトの名無しさん (ワッチョイ 4fad-9k8E)
2019/07/21(日) 16:35:43.80ID:YTBWsrAX0427デフォルトの名無しさん (ワッチョイ 8f8e-DngZ)
2019/07/21(日) 16:44:43.49ID:zVh3KjUp0 全角文字で書くような馬鹿の後出し言い訳か
428デフォルトの名無しさん (ワッチョイ 4fad-9k8E)
2019/07/21(日) 17:18:46.36ID:YTBWsrAX0 なぜかちょうど今やってることと2連続で関係してる
DB編集画面は結局フラグ式にしたけど
自分用なので、ユーザーフレンドリーより処理の単純さと自分的な分かりやすさを取った
文字列連結も改めて整理しようとしてたところ
Midは固定なら速いが、可変だと遅い
■100文字を10万回連結
・固定: 1000万字確保: 0.08秒
・固定: 5億字確保: 2.5秒 (20億字はSpace関数が駄目だった)
・可変: 2万字ずつ拡張: 3.3秒
1000万字だって十分あり得ないし、なんなら2万字でも、実際に拡張する場面はないとは思う
でも心理的にわだかまりが残る
可変の配列は0.3秒だった (ReDim Preserveで後ろへ後ろへ追加、最後にJoin)
ほどほどの固定の超速を取るか、可変の高速を取るか
これも逆に、あり得ない規模でも0.3秒、困る場面はあり得ない
DB編集画面は結局フラグ式にしたけど
自分用なので、ユーザーフレンドリーより処理の単純さと自分的な分かりやすさを取った
文字列連結も改めて整理しようとしてたところ
Midは固定なら速いが、可変だと遅い
■100文字を10万回連結
・固定: 1000万字確保: 0.08秒
・固定: 5億字確保: 2.5秒 (20億字はSpace関数が駄目だった)
・可変: 2万字ずつ拡張: 3.3秒
1000万字だって十分あり得ないし、なんなら2万字でも、実際に拡張する場面はないとは思う
でも心理的にわだかまりが残る
可変の配列は0.3秒だった (ReDim Preserveで後ろへ後ろへ追加、最後にJoin)
ほどほどの固定の超速を取るか、可変の高速を取るか
これも逆に、あり得ない規模でも0.3秒、困る場面はあり得ない
429デフォルトの名無しさん (ワッチョイ 4fad-9k8E)
2019/07/21(日) 17:23:37.68ID:YTBWsrAX0 い、言い訳?逆に配列をSQLで操作する方法を知らん
430デフォルトの名無しさん (ワッチョイ 7f68-0ngu)
2019/07/21(日) 17:51:10.98ID:tbU/thR+0 >>424
cで言うint left() と string left()を比較してみた
left$()の方が早い、これは予想外だったな
Sub foo()
Debug.Print "str: " & Time()
a = Time()
For i = 1 To 10000000
ToString = Left$("aaaaaaaaab", 1)
Next
Debug.Print "str: " & a - Time()
Debug.Print "int?: " & Time()
a = Time()
For i = 1 To 10000000
ToString = Left("aaaaaaaaab", 1)
Next
Debug.Print "int?: " & a - Time()
End Sub
後は文字列評価だけど、どこが必要でどこが不要かは分からないので何とも言えない
全体見ればどこで最適化したいか分かるかもしれない。後はどれぐらい減らしたいか
一日一回のマクロを10秒→1秒に減らしたいってなら寝る
cで言うint left() と string left()を比較してみた
left$()の方が早い、これは予想外だったな
Sub foo()
Debug.Print "str: " & Time()
a = Time()
For i = 1 To 10000000
ToString = Left$("aaaaaaaaab", 1)
Next
Debug.Print "str: " & a - Time()
Debug.Print "int?: " & Time()
a = Time()
For i = 1 To 10000000
ToString = Left("aaaaaaaaab", 1)
Next
Debug.Print "int?: " & a - Time()
End Sub
後は文字列評価だけど、どこが必要でどこが不要かは分からないので何とも言えない
全体見ればどこで最適化したいか分かるかもしれない。後はどれぐらい減らしたいか
一日一回のマクロを10秒→1秒に減らしたいってなら寝る
431デフォルトの名無しさん (ワッチョイ 3fda-0ngu)
2019/07/21(日) 19:07:22.36ID:wqzeAX+60432デフォルトの名無しさん (ワッチョイ 3fda-0ngu)
2019/07/21(日) 21:44:27.38ID:wqzeAX+60 PDFに、AddNewAnnotでテキスト注釈を追加しようとしても、
ポップアップ注釈になっちゃう。
何でだろう?
第2引数には"Text"を指定していて、
Debug.PrintでGetSubtypeを確認しても、間違いなく"Text"と表示されてるのに。
ポップアップ注釈になっちゃう。
何でだろう?
第2引数には"Text"を指定していて、
Debug.PrintでGetSubtypeを確認しても、間違いなく"Text"と表示されてるのに。
433デフォルトの名無しさん (ワッチョイ 3fda-0ngu)
2019/07/21(日) 23:48:26.23ID:wqzeAX+60 ↑自己解決
× "Text"
○ "FreeText"
こうだった。
× "Text"
○ "FreeText"
こうだった。
434デフォルトの名無しさん (ワッチョイ 3f59-6LU0)
2019/07/22(月) 00:41:41.83ID:sdD1SeGB0 100個くらいのxlsxデータを1つ1つ開かずにセル値を配列に格納させたいんだけど
できるだけ速く処理させるにはどんな方法がありますか?
データベース形式のファイルでないのでADO接続は諦めました。
できるだけ速く処理させるにはどんな方法がありますか?
データベース形式のファイルでないのでADO接続は諦めました。
435デフォルトの名無しさん (アークセー Sxa3-9hAT)
2019/07/22(月) 00:56:28.70ID:zv/NMHHfx ExecuteExcel4Macro("'[任意のファイルのフルパス]'シート名!R1C1形式のセルアドレス")で、ファイルを開かなくても読める
436デフォルトの名無しさん (アークセー Sxa3-9hAT)
2019/07/22(月) 00:57:17.91ID:zv/NMHHfx 処理速度が速いかどうかは分からないけど
437デフォルトの名無しさん (ワッチョイ cfda-0ngu)
2019/07/22(月) 01:02:00.91ID:odzqFd9J0 >>434
優秀な後輩にやらせる
優秀な後輩にやらせる
438デフォルトの名無しさん (ワッチョイ 3f2c-QKg6)
2019/07/22(月) 06:18:13.29ID:GAEqWBnq0 >>428
言語による、処理系の速度の比較
C/C++ のnative・マシン語系 : 100
Java, C# などのコンパイル・中間言語系 : 10
JavaScript, Python, Ruby などの動的言語系: 1
なお、JIT は、フィボナッチ数列・素数などの計算では速いが、普通のプログラミングでは無意味
遅い理由は、I/O, 動的配列(動的コンテナ)などでメモリを動的に確保する、
動的にアドレス計算するなど
言語による、処理系の速度の比較
C/C++ のnative・マシン語系 : 100
Java, C# などのコンパイル・中間言語系 : 10
JavaScript, Python, Ruby などの動的言語系: 1
なお、JIT は、フィボナッチ数列・素数などの計算では速いが、普通のプログラミングでは無意味
遅い理由は、I/O, 動的配列(動的コンテナ)などでメモリを動的に確保する、
動的にアドレス計算するなど
439デフォルトの名無しさん (ワッチョイ 0f95-k+pP)
2019/07/22(月) 09:27:20.13ID:rxI3cfFL0 Excel VBA の速度は Cの100に対してどれぐらい?
440デフォルトの名無しさん (ワッチョイ cfce-0ngu)
2019/07/22(月) 10:08:13.43ID:DAYqWJvs0 VBAは中間言語方式だけど、内部構造の違いからC#より遅くてJavaよりは速い
441デフォルトの名無しさん (ワッチョイ ff68-ShKg)
2019/07/22(月) 19:19:01.79ID:MenVMjW60 Excel VBAはExcelの評価が入るとすげー遅くなるけど、
EXCELの評価ナシならそこまで遅くない
ただ、vbaで速さを求めるのはナンセンスだと思う
EXCELの評価ナシならそこまで遅くない
ただ、vbaで速さを求めるのはナンセンスだと思う
442デフォルトの名無しさん (ワッチョイ 4f7c-xwIM)
2019/07/22(月) 19:20:20.47ID:x75J2JMa0 >>434
ExecuteExcel4Macroで開かずに読めるが、いちいち開いて読むより速いだけで速いわけではない
ExecuteExcel4Macroで開かずに読めるが、いちいち開いて読むより速いだけで速いわけではない
443デフォルトの名無しさん (ワッチョイ 3fda-0ngu)
2019/07/22(月) 22:17:37.77ID:SAttBB2w0444デフォルトの名無しさん (スププ Sd5f-x7W1)
2019/07/22(月) 23:58:25.16ID:ZZbz3w4Ud >>434
定期的にインデックス化するのは他言語なら常識
定期的にインデックス化するのは他言語なら常識
445デフォルトの名無しさん (ワッチョイ 4fad-9k8E)
2019/07/23(火) 05:29:57.32ID:LmcM+lna0 意外と記憶にないコレクションからの連結
追加時にサイズを記録しといて、最後にぴったりサイズでメモリ確保してMid
(クラス想定)
Public Item As New Collection, Length As Long
Sub Add(Text As String)
Item.Add Text
Length = Length + Len(Text)
End Sub
Function Text() As String
Dim Pos As Long, Var As Variant
Text = Space(Length)
Pos = 1
For Each Var In Item
Mid(Text, Pos) = Var
Pos = Pos + Len(Var)
Next
End Function
配列のJoinは実装のシンプルさがいいんだけど、100字+10万回で0.3秒
こっちは0.15秒という倍の速さで、そこそこシンプル、可変
普通と言えば普通な発想だけど力業のイメージがあって、やってみようと思わなかったのかも
ちなみにFor Eachを番号方式にすると、80秒ぐらいかかってびっくりした
そんな違うんだね
追加時にサイズを記録しといて、最後にぴったりサイズでメモリ確保してMid
(クラス想定)
Public Item As New Collection, Length As Long
Sub Add(Text As String)
Item.Add Text
Length = Length + Len(Text)
End Sub
Function Text() As String
Dim Pos As Long, Var As Variant
Text = Space(Length)
Pos = 1
For Each Var In Item
Mid(Text, Pos) = Var
Pos = Pos + Len(Var)
Next
End Function
配列のJoinは実装のシンプルさがいいんだけど、100字+10万回で0.3秒
こっちは0.15秒という倍の速さで、そこそこシンプル、可変
普通と言えば普通な発想だけど力業のイメージがあって、やってみようと思わなかったのかも
ちなみにFor Eachを番号方式にすると、80秒ぐらいかかってびっくりした
そんな違うんだね
446デフォルトの名無しさん (ワッチョイ 4fad-9k8E)
2019/07/23(火) 06:30:29.98ID:LmcM+lna0 >>441
Excelの強みはむしろシートだと思う
ただしデータ処理用ではなく、表示・操作用のグリッドコントロールとして
VSにこんな高速高機能なグリッドコントロールはない、はず(知る限り)
特に CopyFromRecordset の異様な速さ
大量に表示した状態での動きも速い
DBの表示媒体として実は最強だと思う
(他の言語からExcelを呼び出してもいいので、VBA限定ではないけど)
Excelの強みはむしろシートだと思う
ただしデータ処理用ではなく、表示・操作用のグリッドコントロールとして
VSにこんな高速高機能なグリッドコントロールはない、はず(知る限り)
特に CopyFromRecordset の異様な速さ
大量に表示した状態での動きも速い
DBの表示媒体として実は最強だと思う
(他の言語からExcelを呼び出してもいいので、VBA限定ではないけど)
447デフォルトの名無しさん (ワントンキン MM9f-Ei4u)
2019/07/23(火) 12:43:05.74ID:Wmp6rbs0M セルA1からはじまる、5万行30列あるディレクトリツリーを、グループ化したいんですが、
最初のA列のみはエクセルのグループ化でうまくいくけど、B列以降がうまく行きません。
VBAでいっぱつで処理できる方法ってありますか。
最初のA列のみはエクセルのグループ化でうまくいくけど、B列以降がうまく行きません。
VBAでいっぱつで処理できる方法ってありますか。
448デフォルトの名無しさん (スッップ Sd5f-k2pK)
2019/07/23(火) 13:58:45.14ID:6EIv8bzUd449デフォルトの名無しさん (ワッチョイ 0f95-k+pP)
2019/07/23(火) 14:14:05.21ID:+7TCISw60 >>446
sed や tail などでいい
30GBのテキストも0.04秒で tail できたし
編集も sed は問題なかった
行数上限がない理想的なExcelが将来でても
そういう大きいDBはしんどいんじゃないかな?
sed や tail などでいい
30GBのテキストも0.04秒で tail できたし
編集も sed は問題なかった
行数上限がない理想的なExcelが将来でても
そういう大きいDBはしんどいんじゃないかな?
450デフォルトの名無しさん (ワントンキン MM9f-I8ja)
2019/07/23(火) 16:29:02.63ID:wjsoV9EZM つうか普通に10万レコード辺り越えたら遅いだろ
DBを舐めすぎ
DBを舐めすぎ
451デフォルトの名無しさん (スッップ Sd5f-k2pK)
2019/07/23(火) 16:49:12.46ID:6EIv8bzUd つうかDBは同時接続数が多くなるほど威力を発揮する
単一接続のエクセルと比較するのがどうかと思う
単一接続のエクセルと比較するのがどうかと思う
452デフォルトの名無しさん (スプッッ Sddf-9W53)
2019/07/23(火) 18:25:17.72ID:W2R1kWYLd 質問です。
長さAに対して等間隔の点のピッチを計算したい。欲しい答えはピッチ長さ、両端の数字。
条件
両端は同一数値で30以上50以下。ピッチは190以上220以下。
共に50と220の整数に近い数値。
結果
長さ 1200
ピッチ 220☓5
両端 50
こういった計算って結構面倒くさいですか?
関数電卓で計算する分には出来ますがVBAだと全く思いつきません。
宜しくお願いします。
長さAに対して等間隔の点のピッチを計算したい。欲しい答えはピッチ長さ、両端の数字。
条件
両端は同一数値で30以上50以下。ピッチは190以上220以下。
共に50と220の整数に近い数値。
結果
長さ 1200
ピッチ 220☓5
両端 50
こういった計算って結構面倒くさいですか?
関数電卓で計算する分には出来ますがVBAだと全く思いつきません。
宜しくお願いします。
453デフォルトの名無しさん (ワッチョイ cfce-0ngu)
2019/07/23(火) 19:05:35.16ID:de2cQTfB0 >>452
Aの長さによっては絶対に答えが出ない場合があるけど、その時はどうすんの?
Aの長さによっては絶対に答えが出ない場合があるけど、その時はどうすんの?
454デフォルトの名無しさん (ワッチョイ cfce-0ngu)
2019/07/23(火) 19:07:08.73ID:de2cQTfB0 >>452
Aの長さによっては、答えが2種類出る場合があるけど、その時はどうするの?
Aの長さによっては、答えが2種類出る場合があるけど、その時はどうするの?
455デフォルトの名無しさん (ワッチョイ 4f7c-xwIM)
2019/07/23(火) 19:23:21.87ID:ToxLFwwH0456デフォルトの名無しさん (ワッチョイ 8f8e-DngZ)
2019/07/23(火) 19:57:04.84ID:vEtQ8tFE0 >>452
馬鹿は死ねや
馬鹿は死ねや
457デフォルトの名無しさん (ワッチョイ 7f63-k+pP)
2019/07/23(火) 19:58:57.06ID:zqVgh/rh0 はい
458デフォルトの名無しさん (ワントンキン MM13-Ei4u)
2019/07/23(火) 20:14:58.52ID:vYgPd/B2M459デフォルトの名無しさん (スプッッ Sddf-9W53)
2019/07/23(火) 23:18:29.89ID:M6EwQBh2d460デフォルトの名無しさん (ワッチョイ 0f95-k+pP)
2019/07/24(水) 12:08:14.05ID:/HKiGEdd0 Prelude> let collectPitch = [(t,p,n)| t<-[30..50],p<-[190..220],n<-[1..10], 2*t+n*p==1200]
Prelude> collectPitch
[(30,190,6),(50,220,5)]
Prelude> last collectPitch
(50,220,5)
Prelude> 218*2+50*2
536
Prelude> 220*2+48*2
536
つまり長さが536 の時に (pitch,truncate)=((218,50),(220,48))の
どちらが欲しいのかわからないな
Prelude> collectPitch
[(30,190,6),(50,220,5)]
Prelude> last collectPitch
(50,220,5)
Prelude> 218*2+50*2
536
Prelude> 220*2+48*2
536
つまり長さが536 の時に (pitch,truncate)=((218,50),(220,48))の
どちらが欲しいのかわからないな
461デフォルトの名無しさん (スッップ Sd5f-9W53)
2019/07/24(水) 12:12:04.48ID:Ei3DGN3ud462デフォルトの名無しさん (アメ MMb3-b8Rf)
2019/07/24(水) 16:52:46.32ID:8dT07gCiM463デフォルトの名無しさん (ワッチョイ 8f01-Ge65)
2019/07/24(水) 17:22:10.81ID:l/M93qCQ0 勤務表の作成目的での使用は可能でしょうか。
50人の職員で勤務時間帯が7種類あり、休み希望や特定の勤務帯の希望があれば絶対にその希望にしなくてはならない。希望を入れたらあとは乱数で勤務表が出来るなんて事は可能ですか?
50人の職員で勤務時間帯が7種類あり、休み希望や特定の勤務帯の希望があれば絶対にその希望にしなくてはならない。希望を入れたらあとは乱数で勤務表が出来るなんて事は可能ですか?
464デフォルトの名無しさん (ワッチョイ 8f2b-xwIM)
2019/07/24(水) 17:32:21.73ID:mE96IG5M0 可能。
勤務が集中したりして不満がでたり、法令違反になるような勤務表になる場合もあるが。
当然解無しもある。
勤務が集中したりして不満がでたり、法令違反になるような勤務表になる場合もあるが。
当然解無しもある。
465デフォルトの名無しさん (アメ MMb3-b8Rf)
2019/07/24(水) 17:46:30.09ID:8dT07gCiM466デフォルトの名無しさん (ドコグロ MMbf-fHem)
2019/07/24(水) 17:48:18.02ID:leU1oAAPM467デフォルトの名無しさん (ワッチョイ 8fad-9k8E)
2019/07/24(水) 17:52:45.82ID:MYVnxp7u0 >>449
「DB」というのは、SQL Server等のDBサーバのこと
Excelを「DB」という言い方したことはないよw
そのDBサーバの内容を動的に転写して、
編集画面として使う場合、Excelが最速ってこと
編集画面なので、元データが100万行あっても、表示するのは人間が作業できる数十行や数百行
根性のある事務員がいると、千行ぐらい一気に扱えるよう要求される場合もある
千行ぐらい行くと、一般のグリッドコントロールでは動作が重くなるが、Excelはすぱっと動く、という話
「DB」というのは、SQL Server等のDBサーバのこと
Excelを「DB」という言い方したことはないよw
そのDBサーバの内容を動的に転写して、
編集画面として使う場合、Excelが最速ってこと
編集画面なので、元データが100万行あっても、表示するのは人間が作業できる数十行や数百行
根性のある事務員がいると、千行ぐらい一気に扱えるよう要求される場合もある
千行ぐらい行くと、一般のグリッドコントロールでは動作が重くなるが、Excelはすぱっと動く、という話
468デフォルトの名無しさん (ワッチョイ 8fad-9k8E)
2019/07/24(水) 17:57:45.46ID:MYVnxp7u0469デフォルトの名無しさん (アークセー Sxa3-9hAT)
2019/07/24(水) 18:23:13.93ID:WV2r95Zsx 半角先生を彷彿とさせる奇文
本人かもしれんな
本人かもしれんな
470デフォルトの名無しさん (ワッチョイ 7fb0-o+hp)
2019/07/24(水) 21:41:29.06ID:/T35oaZK0 ユーザーフォーム内にwindows explorerを埋め込む事は可能でしょうか?
windows explorerを個別に動作させたいです
windows explorerを個別に動作させたいです
471デフォルトの名無しさん (ワッチョイ 4f7c-xwIM)
2019/07/24(水) 21:48:43.51ID:nvQWEisZ0 >>470
埋め込むことと個別に動作させることは矛盾してない?
埋め込むことと個別に動作させることは矛盾してない?
472デフォルトの名無しさん (ワッチョイ 7fb0-o+hp)
2019/07/24(水) 23:53:52.50ID:/T35oaZK0 >>471
ユーザーフォーム内に複数のexplorerを埋め込んで、それぞれを独立して動かしたいです。
例えば、explorer1、2、3があるとしてexplorer1でディレクトリ遷移したらexplorer2や3はexplorer1に追従しないようにしたいです。
ユーザーフォーム内に複数のexplorerを埋め込んで、それぞれを独立して動かしたいです。
例えば、explorer1、2、3があるとしてexplorer1でディレクトリ遷移したらexplorer2や3はexplorer1に追従しないようにしたいです。
473デフォルトの名無しさん (ワッチョイ 7fb0-o+hp)
2019/07/24(水) 23:56:23.15ID:/T35oaZK0 >>472
ユーザーフォーム内にexplorer1、2、3がある想定です
ユーザーフォーム内にexplorer1、2、3がある想定です
474デフォルトの名無しさん (アウアウウー Sacf-k9+0)
2019/07/25(木) 00:09:45.00ID:OfNmjxeUa475デフォルトの名無しさん (ワッチョイ ab95-wm0+)
2019/07/25(木) 00:16:40.13ID:D8pzUtDE0476デフォルトの名無しさん (アメ MMc7-HdTi)
2019/07/25(木) 00:33:27.67ID:5qtaCE1dM477デフォルトの名無しさん (ワッチョイ bf7c-Ssy3)
2019/07/25(木) 00:35:58.87ID:o8Dlhs3E0478デフォルトの名無しさん (ワッチョイ 8a01-KIok)
2019/07/25(木) 00:42:50.48ID:Gl1cJZMi0 作り始めてみないと作れるかどうかなんか分からない
作ってみりゃいい
ダメなら使わなければいいだけ
そうやって上達していく
作ってみりゃいい
ダメなら使わなければいいだけ
そうやって上達していく
479デフォルトの名無しさん (アメ MMc7-HdTi)
2019/07/25(木) 01:12:01.57ID:5qtaCE1dM 適当に作って上達って・・
ちゃんと考えなくっちゃ上達なんてない
ちゃんと考えなくっちゃ上達なんてない
480デフォルトの名無しさん (ワッチョイ eaa2-KIok)
2019/07/25(木) 02:17:55.08ID:j99gzyNC0 質問です。
セルB2の時間から4時間5秒後の時間をセルC2に記載したいときどのようにコードを書けばいいでしょうか?
セルB2が文字や数字だとC2は""でB2が時間のときだけC2に4時間5秒足したいです。
時間を足すだけなら
range("c2").value = DateAdd("s", 14405 , range("b2")
)と書けばいいのは解るんですが、分岐処理が上手くかけません。
セルB2の時間から4時間5秒後の時間をセルC2に記載したいときどのようにコードを書けばいいでしょうか?
セルB2が文字や数字だとC2は""でB2が時間のときだけC2に4時間5秒足したいです。
時間を足すだけなら
range("c2").value = DateAdd("s", 14405 , range("b2")
)と書けばいいのは解るんですが、分岐処理が上手くかけません。
481デフォルトの名無しさん (ワッチョイ 8a59-ySdJ)
2019/07/25(木) 03:57:32.39ID:04HWMie30 時間の表示形式は?統一されてるの?
482デフォルトの名無しさん (ワッチョイ 068c-0v1+)
2019/07/25(木) 03:58:38.58ID:lnZalLM00 VBA使わずに関数だけでやっちゃだめなの?
483デフォルトの名無しさん (ワッチョイ 8a2c-aoqV)
2019/07/25(木) 05:26:07.94ID:dATWdLko0484デフォルトの名無しさん (ワッチョイ 87da-ZVB1)
2019/07/25(木) 07:08:49.98ID:AYG483l20 >>480
IsDate でいいんじゃね
IsDate でいいんじゃね
485デフォルトの名無しさん (アメ MMc7-HdTi)
2019/07/25(木) 07:54:16.98ID:5qtaCE1dM VBAはセルの追加削除に追随出来ないから関数で十分なものは関数を使うべき
486デフォルトの名無しさん (ワッチョイ 2ff9-aoqV)
2019/07/25(木) 11:30:00.12ID:nCaXNWq80487デフォルトの名無しさん (ワントンキン MMfa-mBoI)
2019/07/25(木) 11:52:40.21ID:5L4KGe8+M なんでお前らが他人の業務心配してんの
回答は
VBAで出来ますよ
で終わりだろ
回答は
VBAで出来ますよ
で終わりだろ
488デフォルトの名無しさん (ワッチョイ 2ff9-aoqV)
2019/07/25(木) 12:05:41.30ID:nCaXNWq80489デフォルトの名無しさん (ワッチョイ 2ff9-aoqV)
2019/07/25(木) 13:27:15.91ID:nCaXNWq80490デフォルトの名無しさん (ワッチョイ 2ff9-aoqV)
2019/07/25(木) 13:34:02.88ID:nCaXNWq80 あ、エラーはピッチがMiniより小さかったらエラーだな(笑)
491デフォルトの名無しさん (ワッチョイ 7f91-3Utc)
2019/07/25(木) 14:30:07.15ID:a7DwyeCF0492デフォルトの名無しさん (ワッチョイ 6a57-/0C9)
2019/07/26(金) 10:59:45.98ID:nW8IFIW60 ExcelVBAのユーザーフォーム上で、PDFを表示、操作をしたいです。
ですが、ユーザーフォームにコントロールを追加しようとすると、
「要素が見つかりません」とダイアログが表示され出来ません。
どなたか解決策をご存じの方がいましたら、教えていただけますでしょうか。。
Acrobat pro DCはインストールしてあり、ExcelはOffice365を最新の状態で使用してます。
ですが、ユーザーフォームにコントロールを追加しようとすると、
「要素が見つかりません」とダイアログが表示され出来ません。
どなたか解決策をご存じの方がいましたら、教えていただけますでしょうか。。
Acrobat pro DCはインストールしてあり、ExcelはOffice365を最新の状態で使用してます。
493デフォルトの名無しさん (ワッチョイ bf7c-Ssy3)
2019/07/26(金) 19:39:04.29ID:Mlm4oTrf0 >>492
コントロールってどれ?
コントロールってどれ?
494デフォルトの名無しさん (ワッチョイ 8a01-KIok)
2019/07/27(土) 08:56:54.14ID:4Tko0dWk0 バーコードたくさん作って印刷するプログラム作ってるんだけど
一筋縄ではいかないな
いろいろエラーが出て大変だわ
しかもステップインしながら様子みようとすると
中断モードでは入力できません
とやらのエラーがでる
回避する方法はあるようだけどめんどくさそうだ
一筋縄ではいかないな
いろいろエラーが出て大変だわ
しかもステップインしながら様子みようとすると
中断モードでは入力できません
とやらのエラーがでる
回避する方法はあるようだけどめんどくさそうだ
495デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 08:59:35.78ID:T1jDYlFV0496デフォルトの名無しさん (ワッチョイ 8a01-KIok)
2019/07/27(土) 09:07:12.15ID:4Tko0dWk0 >>495
それって外部からフォント導入しないといけないやつですよね?
会社のPCでやってるんでだめなんですよね
今はこれ↓を参照して使ってます
Microsoft Access BarCode Control 14.0
重いしエラー出やすいし別の方法があればいいんですけど
それって外部からフォント導入しないといけないやつですよね?
会社のPCでやってるんでだめなんですよね
今はこれ↓を参照して使ってます
Microsoft Access BarCode Control 14.0
重いしエラー出やすいし別の方法があればいいんですけど
497デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 09:09:23.16ID:T1jDYlFV0 フォントの導入も出来ないのか
それはさすがにキツイなぁ
それはさすがにキツイなぁ
498デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 09:11:52.17ID:T1jDYlFV0499デフォルトの名無しさん (ワッチョイ 8a01-KIok)
2019/07/27(土) 09:18:31.74ID:4Tko0dWk0 >>498
ありがとう
でも、そもそもネットすら自由に使えないんですよね
あと、数百個作って印刷するので、ネット経由だと時間かかりそう
お客さんがらみの情報を外に出すことに上の人が嫌がるだろうということを考えると
ローカルで終わる仕組みがないと厳しいですね
ありがとう
でも、そもそもネットすら自由に使えないんですよね
あと、数百個作って印刷するので、ネット経由だと時間かかりそう
お客さんがらみの情報を外に出すことに上の人が嫌がるだろうということを考えると
ローカルで終わる仕組みがないと厳しいですね
500デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 09:23:26.79ID:T1jDYlFV0 牢獄かよwwwww
・フォントを作る。
バーコードは0-9の10個しかない
svgで作ってローカルのhtmlに表示させる
・フォントを作る。
バーコードは0-9の10個しかない
svgで作ってローカルのhtmlに表示させる
501デフォルトの名無しさん (ワッチョイ 27ce-ZVB1)
2019/07/27(土) 09:50:59.75ID:9xF62cln0502デフォルトの名無しさん (ワッチョイ 8a01-KIok)
2019/07/27(土) 09:54:25.37ID:4Tko0dWk0 >>500
セキュリティが特に厳しすぎるというよりも、意識が昭和なんですよね
人員削減されるからエクセルマクロつくるなとか面と向かって言う大御所もいるんで
とにかく目立たぬよう、些細な問題であっても起きないよう・・・と神経使うんです
今エラー回避の大きな進展があったのでなんとかこのまま組んでみます
Forで回しながらバーコードを作成・セルに配置していくんですけど
配置したセルの左上にナンバリングするコードを入れるとエラーで落ちるんですよね
バーコードを配置する処理と、ナンバリングする処理を異なるForで分けたらエラー出なくなりました
それ以外のコードは同じなんでなんだか理不尽なのですが、
理屈から攻めるより、多様なコードを試して見てどれがいけるか試して見るという
数打ちゃ当たる的な攻め方をするしかないみたいです
ステップ実行できないのがつらいですが
セキュリティが特に厳しすぎるというよりも、意識が昭和なんですよね
人員削減されるからエクセルマクロつくるなとか面と向かって言う大御所もいるんで
とにかく目立たぬよう、些細な問題であっても起きないよう・・・と神経使うんです
今エラー回避の大きな進展があったのでなんとかこのまま組んでみます
Forで回しながらバーコードを作成・セルに配置していくんですけど
配置したセルの左上にナンバリングするコードを入れるとエラーで落ちるんですよね
バーコードを配置する処理と、ナンバリングする処理を異なるForで分けたらエラー出なくなりました
それ以外のコードは同じなんでなんだか理不尽なのですが、
理屈から攻めるより、多様なコードを試して見てどれがいけるか試して見るという
数打ちゃ当たる的な攻め方をするしかないみたいです
ステップ実行できないのがつらいですが
503デフォルトの名無しさん (ワッチョイ 27ce-ZVB1)
2019/07/27(土) 13:48:31.18ID:9xF62cln0504デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 14:03:45.48ID:nw7YuAgg0 なんとなく画像のバッファかなんかが溜まってる気がする
screenupdateをtrueにしたまま回すと多分落ちない気がする
screenupdateをtrueにしたまま回すと多分落ちない気がする
505デフォルトの名無しさん (ワッチョイ 8a01-KIok)
2019/07/27(土) 15:48:46.00ID:4Tko0dWk0 >>504
それっぽいのかなと思ってます
起動して初回の処理は何の問題なくいけるんですけど
2回目ボタンを押して別のバーコードを作ろうとするとエラーがでるんですよね
印刷処理が終わった直後にバーコードや連番すべてを削除するコードを置いているんですけど
おそらく何かが残っているんじゃないかと思います
今の所は>>502で書いたように処理を分けることでうまくいってます
原因特定できたわけじゃないんですけどね
全削除のコード自体はそのままなので、ここに問題はないんじゃないかと思っています
ScreenUpdatingはFalseにしても以前のコードだと同じようにエラーがでますね
それだけじゃなくて、実用には耐えられないレベルで遅くなります
>>503
1.もしオブジェクトの指定が間違えているとするなら初回でもエラーがでるだるはず
2.今のコードと、バーコード配置直後にナンバリングするコードでオブジェクトの指定は同じ
なので、やはり原因とするには矛盾があるかな
最終的には、負荷を減らすために、1ページ分バーコードを作ったら
その都度印刷+全削除を繰り返すことで全て印刷するという形で組んでいこうと思っています
バッファ絡みだと嫌な予感もしますが、原因特定はできなくとも、エラー回避方法は特定できてきたのでなんとかなるかなと
それっぽいのかなと思ってます
起動して初回の処理は何の問題なくいけるんですけど
2回目ボタンを押して別のバーコードを作ろうとするとエラーがでるんですよね
印刷処理が終わった直後にバーコードや連番すべてを削除するコードを置いているんですけど
おそらく何かが残っているんじゃないかと思います
今の所は>>502で書いたように処理を分けることでうまくいってます
原因特定できたわけじゃないんですけどね
全削除のコード自体はそのままなので、ここに問題はないんじゃないかと思っています
ScreenUpdatingはFalseにしても以前のコードだと同じようにエラーがでますね
それだけじゃなくて、実用には耐えられないレベルで遅くなります
>>503
1.もしオブジェクトの指定が間違えているとするなら初回でもエラーがでるだるはず
2.今のコードと、バーコード配置直後にナンバリングするコードでオブジェクトの指定は同じ
なので、やはり原因とするには矛盾があるかな
最終的には、負荷を減らすために、1ページ分バーコードを作ったら
その都度印刷+全削除を繰り返すことで全て印刷するという形で組んでいこうと思っています
バッファ絡みだと嫌な予感もしますが、原因特定はできなくとも、エラー回避方法は特定できてきたのでなんとかなるかなと
506デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 16:22:17.12ID:nw7YuAgg0 >>505
>ScreenUpdating
これは残念
地味に自信があったのにw
>ゴミどうこう
恐らく当たっている
vbaはGC、ガベージコレクション・・要は前の作業のゴミ掃除が貧弱
一番わかりやすいのは、新しいbookをデスクトップが同じフォルダにでも作ってそこで作業させること
コード上は色々とややこしくなるが、大分緩和される
多分一番いいのはVBS、Excel外から作って、Excelをそのたびに再起動させる事
それならまず大丈夫
>ScreenUpdating
これは残念
地味に自信があったのにw
>ゴミどうこう
恐らく当たっている
vbaはGC、ガベージコレクション・・要は前の作業のゴミ掃除が貧弱
一番わかりやすいのは、新しいbookをデスクトップが同じフォルダにでも作ってそこで作業させること
コード上は色々とややこしくなるが、大分緩和される
多分一番いいのはVBS、Excel外から作って、Excelをそのたびに再起動させる事
それならまず大丈夫
507デフォルトの名無しさん (ワッチョイ 46e9-tP4r)
2019/07/27(土) 17:21:27.70ID:0zw3343k0 こういう問題が出て
https://gyazo.com/6bbc43b5a4346db69404d52e985b0244
https://gyazo.com/faf8012dcb22cdd442c687663f1e7524
セル番地(F10)について、次の問1から問3を解答しなさい。
問1 セル番地(F10)を複合参照で列を固定した答えを記入しなさい。
問2 セル番地(F10)を複合参照で行を固定した答えを記入しなさい。
問3 セル番地(F10)を絶対参照で列と行を固定した答えを記入しなさい。
1,SUM($F5:$F9) 2,SUM(F$5:F$9) 3,SUM($F$5:$F$9) と解答したら全て間違えてました。
解答が分からないので教えて下さい。
https://gyazo.com/6bbc43b5a4346db69404d52e985b0244
https://gyazo.com/faf8012dcb22cdd442c687663f1e7524
セル番地(F10)について、次の問1から問3を解答しなさい。
問1 セル番地(F10)を複合参照で列を固定した答えを記入しなさい。
問2 セル番地(F10)を複合参照で行を固定した答えを記入しなさい。
問3 セル番地(F10)を絶対参照で列と行を固定した答えを記入しなさい。
1,SUM($F5:$F9) 2,SUM(F$5:F$9) 3,SUM($F$5:$F$9) と解答したら全て間違えてました。
解答が分からないので教えて下さい。
508デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 17:31:16.63ID:nw7YuAgg0509デフォルトの名無しさん (ワッチョイ bf7c-Ssy3)
2019/07/27(土) 17:37:41.95ID:hapzpDWL0510デフォルトの名無しさん (ワッチョイ 46e9-tP4r)
2019/07/27(土) 17:39:32.12ID:0zw3343k0 >508
そうです。でも全てバツが入ってました…。
返却されたプリントに、"セル番地(F10)についてここのみで記します"と書いてありました。
自分には意味がさっぱりですが何か分かりませんか?
そうです。でも全てバツが入ってました…。
返却されたプリントに、"セル番地(F10)についてここのみで記します"と書いてありました。
自分には意味がさっぱりですが何か分かりませんか?
511デフォルトの名無しさん (ワッチョイ 8a02-tP4r)
2019/07/27(土) 17:52:14.66ID:elOLq8oK0 VBAのフォームのテキストボックス内のフォントサイズが場所によってまちまちなんですが、
どうしたら統一できるでしょうか?
因みに、
テキストボックスのプロパティ(フォント名、フォントサイズ、ボックス高さ)はすべて統一しています。
https://uploader.xzy.pw/upload/20190727174533_466d653379.png
どうしたら統一できるでしょうか?
因みに、
テキストボックスのプロパティ(フォント名、フォントサイズ、ボックス高さ)はすべて統一しています。
https://uploader.xzy.pw/upload/20190727174533_466d653379.png
512510 (ワッチョイ 46e9-tP4r)
2019/07/27(土) 17:55:18.22ID:0zw3343k0 ”ここの外で記します”と書いてあるかも知れないです。先生の字が汚くて読めない…
セル番地(F10)について、ここの外で記します。と書いてあるのでそれがヒントになってると思うのですが。
これを踏まえた上で>>507の解答お願いいたしますm(_ _)m
セル番地(F10)について、ここの外で記します。と書いてあるのでそれがヒントになってると思うのですが。
これを踏まえた上で>>507の解答お願いいたしますm(_ _)m
513デフォルトの名無しさん (ワッチョイ bf7c-Ssy3)
2019/07/27(土) 17:57:54.34ID:hapzpDWL0 >>511
サイズ違うやつって全角じゃないの?
サイズ違うやつって全角じゃないの?
514デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 18:04:51.46ID:nw7YuAgg0 >>510
このスレをその教師に見せろ
その教師は無能でアホだから何も分かっていない
'以下、その教師に当てる連絡
テメーより何十年も現場で使い倒してる連中が全員正解と言っている
つまらないルールがあるならそれを書け、聞いてやった上で正解を出してやるから書き込め
'連絡、ここまで
このスレをその教師に見せろ
その教師は無能でアホだから何も分かっていない
'以下、その教師に当てる連絡
テメーより何十年も現場で使い倒してる連中が全員正解と言っている
つまらないルールがあるならそれを書け、聞いてやった上で正解を出してやるから書き込め
'連絡、ここまで
515デフォルトの名無しさん (ワッチョイ c694-mBoI)
2019/07/27(土) 18:04:53.29ID:zfEkdoko0 スレ違いだっていわれてんのになめてんのか?
516デフォルトの名無しさん (ワッチョイ a38e-SsL+)
2019/07/27(土) 18:05:26.47ID:0I7B0fTa0 >>512
死ねや、クズ
死ねや、クズ
517デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 18:06:41.53ID:nw7YuAgg0518デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 18:08:26.65ID:nw7YuAgg0519デフォルトの名無しさん (スフッ Sdaa-LrPu)
2019/07/27(土) 18:11:07.39ID:X/lrVnpNd >>514
ここ学校の連絡掲示板じゃないんで
ここ学校の連絡掲示板じゃないんで
520デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 18:13:50.95ID:nw7YuAgg0521デフォルトの名無しさん (スフッ Sdaa-LrPu)
2019/07/27(土) 18:16:51.94ID:kP1N8Rftd >>520
スレタイが理解できないなら仕方ないな
スレタイが理解できないなら仕方ないな
522デフォルトの名無しさん (ワッチョイ 8a02-tP4r)
2019/07/27(土) 18:51:44.04ID:elOLq8oK0 >>513
数字はすべて全角です
数字はすべて全角です
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 現役猟師・東出昌大、クマ被害続出も過熱する報道に「クマはそんな危ないもんじゃない」理由語る [muffin★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
