!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付ける
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part67
https://mevius.5ch.net/test/read.cgi/tech/1593104489/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part68
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ dbda-8BP0)
2020/08/30(日) 11:55:27.33ID:Oy/VxFsh0509デフォルトの名無しさん (ワッチョイ 0668-xYNh)
2020/10/08(木) 15:59:16.76ID:btiqMG+Y0510デフォルトの名無しさん (ワントンキン MM3a-R/IE)
2020/10/08(木) 17:05:05.08ID:+6fedHspM >>508
くれくれ君本人乙
くれくれ君本人乙
511デフォルトの名無しさん (ワッチョイ 9f7c-eFyE)
2020/10/08(木) 19:30:11.76ID:bwT1M8vM0512デフォルトの名無しさん (ワッチョイ 1b63-dHQN)
2020/10/08(木) 19:55:49.61ID:YPYO8uSI0 たしかにやろうとしないことが問題
てのは御指摘のとおりですね。すみません。
映像制作を生業としてますが普段tipsを聞くのりで聞いてしまいました。
てのは御指摘のとおりですね。すみません。
映像制作を生業としてますが普段tipsを聞くのりで聞いてしまいました。
513デフォルトの名無しさん (ワッチョイ ca4f-+ixC)
2020/10/08(木) 20:04:37.46ID:KjDVO4Tm0514デフォルトの名無しさん (スフッ Sdea-gn5F)
2020/10/08(木) 21:04:52.28ID:DcpygGCOd ただでさえ印象悪いのにどうでもいい言い訳まで付けてさらに印象悪くするよくあるパターン
515デフォルトの名無しさん (ワッチョイ 6bda-q18j)
2020/10/09(金) 00:24:11.53ID:t8qEIjmh0 Dim dw As Date
Dim i As Integer
Sub test()
'ランダムに並び替える
Randomize
'乱数を入れる
For i = 1 To 200
Cells(i, 2) = Rnd()
Next i
'乱数で昇順並び替え
Range("A1:B200").Sort _
Key1:=Range("B1"), Order1:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin
'乱数を削除
Range("B1:B200").Clear
dw = DateAdd("S", 5, Now)
Application.OnTime dw, "test"
End Sub
Dim i As Integer
Sub test()
'ランダムに並び替える
Randomize
'乱数を入れる
For i = 1 To 200
Cells(i, 2) = Rnd()
Next i
'乱数で昇順並び替え
Range("A1:B200").Sort _
Key1:=Range("B1"), Order1:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin
'乱数を削除
Range("B1:B200").Clear
dw = DateAdd("S", 5, Now)
Application.OnTime dw, "test"
End Sub
516デフォルトの名無しさん (ワッチョイ 6bda-q18j)
2020/10/09(金) 00:26:14.42ID:t8qEIjmh0 >>515
のdw = DateAdd("S", 5, Now)
Application.OnTime dw, "test"
を入れると、
「実行できません。このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。」
となってしまいます。
「マクロのセキュリティ」は「すべて有効」にしています。
どうすればいいでしょうか
のdw = DateAdd("S", 5, Now)
Application.OnTime dw, "test"
を入れると、
「実行できません。このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。」
となってしまいます。
「マクロのセキュリティ」は「すべて有効」にしています。
どうすればいいでしょうか
517デフォルトの名無しさん (ワッチョイ 4a2f-Dl/i)
2020/10/09(金) 00:56:17.14ID:8xBy2vBw0518デフォルトの名無しさん (ワッチョイ 6bda-q18j)
2020/10/09(金) 01:28:40.34ID:t8qEIjmh0519デフォルトの名無しさん (ワッチョイ 0f41-ICsZ)
2020/10/09(金) 16:14:30.36ID:SmS5zjtB0 1,1,2,2,3,4,4,4,5,6
を
1-1,1-2,2-1,2-2,3,4-1,4-2,4-3,5,6
に変換したいのですが、どういうコード書けばよいのでしょうか?
を
1-1,1-2,2-1,2-2,3,4-1,4-2,4-3,5,6
に変換したいのですが、どういうコード書けばよいのでしょうか?
520デフォルトの名無しさん (ワッチョイ 4aad-YPNF)
2020/10/09(金) 16:19:59.95ID:5DciVe+j0 連想配列使ってカウントするか(0 to 対象の値のMax)の配列を用意して、Array(対象の値)にカウントするかが1番頭使わなくて済むかな?
521デフォルトの名無しさん (ブーイモ MM76-HnI9)
2020/10/09(金) 16:55:39.01ID:9cfuJ5OLM かなり前だけどこのスレで教わったアドバイスが今やってることでピンときた
タブ増やして進めてくより
userformをhideとshowで工程進めてくみたいにしたほうがいいわ
ありがとうかなり前に教えてくれた人!
タブ増やして進めてくより
userformをhideとshowで工程進めてくみたいにしたほうがいいわ
ありがとうかなり前に教えてくれた人!
522デフォルトの名無しさん (アウアウウー Sa2f-5jeW)
2020/10/09(金) 17:52:44.19ID:OU1KT8YFa >>519
fori=1 to 要素数(※要素数はカンマで区切られた数)
数字=数字 & “-” & i
next i
みたいな感じで
前の数字と違ったら数字をリセット
(iが1ならこの処理はしない)
要素がひとつなら処理せず次のiに
fori=1 to 要素数(※要素数はカンマで区切られた数)
数字=数字 & “-” & i
next i
みたいな感じで
前の数字と違ったら数字をリセット
(iが1ならこの処理はしない)
要素がひとつなら処理せず次のiに
523デフォルトの名無しさん (ワッチョイ 2a4b-XTxo)
2020/10/09(金) 18:03:17.75ID:klvVBjUq0 next i って書く人嫌い
524デフォルトの名無しさん (ササクッテロ Sp03-+ixC)
2020/10/09(金) 18:15:01.53ID:FzRk+nqKp かなり前の話と言えば
昔Privateで書かれたプロパティを
外部から取得する方法を書いてた人がいたけど
あれどうやるんだったっけ
昔Privateで書かれたプロパティを
外部から取得する方法を書いてた人がいたけど
あれどうやるんだったっけ
525デフォルトの名無しさん (ワッチョイ 03e5-SfJD)
2020/10/09(金) 18:33:13.76ID:/2wG1kS20 内部から漏洩させるのが確実
526デフォルトの名無しさん (ワッチョイ 03e5-SfJD)
2020/10/09(金) 18:36:07.52ID:/2wG1kS20 >>523
それ以前にまったく要望を満たしていない
それ以前にまったく要望を満たしていない
527デフォルトの名無しさん (スプッッ Sd8a-Kms5)
2020/10/09(金) 21:13:45.01ID:hr48HmJ4d >>517
俺はブックも必ず指定するけどね。
俺はブックも必ず指定するけどね。
528デフォルトの名無しさん (スプッッ Sd8a-Kms5)
2020/10/09(金) 21:15:25.62ID:hr48HmJ4d >>519
どうしたいのかもう少し言葉で説明してくれる?
どうしたいのかもう少し言葉で説明してくれる?
529デフォルトの名無しさん (ワッチョイ cbda-xYNh)
2020/10/09(金) 21:41:09.60ID:KqgB0xuS0 >>519
普通にカウントアップして、1から2に、2から3に上がるときにカウンターリセット。
普通にカウントアップして、1から2に、2から3に上がるときにカウンターリセット。
530デフォルトの名無しさん (ワッチョイ 07ce-KV+F)
2020/10/09(金) 21:44:54.18ID:VcvC9Dp/0 1つしかなかった時に連番を付けない処理が一手間多くて面倒
データの先読みが必要になる
データの先読みが必要になる
531デフォルトの名無しさん (ワッチョイ 0668-xYNh)
2020/10/09(金) 21:49:11.48ID:5R2Ih+qA0 出力タイミングを次の数字を見てからにすれば楽
532デフォルトの名無しさん (ワッチョイ 9f7c-eFyE)
2020/10/09(金) 21:49:18.81ID:2P2kQgrz0 1個でも複数でも変わらない
おかしな考え方してるんだろう
おかしな考え方してるんだろう
533デフォルトの名無しさん (ワッチョイ 8ae6-SfJD)
2020/10/09(金) 21:49:40.29ID:hWEYACMU0534デフォルトの名無しさん (ワッチョイ 07ce-KV+F)
2020/10/09(金) 22:02:55.54ID:VcvC9Dp/0 次の数字を見るかどうかの所で配列の最後かどうかも判定する必要があって面倒
シンプルでうまい方法があるんなら言葉じゃなくてコードで答えてくれ
シンプルでうまい方法があるんなら言葉じゃなくてコードで答えてくれ
535デフォルトの名無しさん (ワッチョイ 0b3d-5jeW)
2020/10/09(金) 22:06:14.03ID:rNmj4HJx0 splitでカンマ区切りの配列化
instrで個数確認
かね?
instrで個数確認
かね?
536デフォルトの名無しさん (ワッチョイ 0b3d-5jeW)
2020/10/09(金) 22:07:17.45ID:rNmj4HJx0 >>534
Uboundで判定して抜ければいいじゃん
Uboundで判定して抜ければいいじゃん
537デフォルトの名無しさん (ワッチョイ 07ce-KV+F)
2020/10/09(金) 22:19:01.76ID:VcvC9Dp/0 >>536
ちゃんと動くコード書いてみて
ちゃんと動くコード書いてみて
538デフォルトの名無しさん (ワッチョイ 07ce-KV+F)
2020/10/09(金) 22:24:25.52ID:VcvC9Dp/0 Sub Macro1()
Dim a(), b()
a = Array(1, 1, 2, 2, 3, 4, 4, 4, 5, 6)
u = UBound(a)
ReDim Preserve a(u + 1)
ReDim b(u)
a(u + 1) = a(u) + 1
x = a(0) + 1
For i = 0 To u
If a(i) - x Then
c = 1
Else
c = c + 1
End If
If c = 1 Then
b(i) = a(i)
If a(i) = a(i + 1) And u - i Then b(i) = b(i) & "-1"
Else
b(i) = a(i) & "-" & c
End If
x = a(i)
Next
Debug.Print Join(b, ",")
End Sub
Dim a(), b()
a = Array(1, 1, 2, 2, 3, 4, 4, 4, 5, 6)
u = UBound(a)
ReDim Preserve a(u + 1)
ReDim b(u)
a(u + 1) = a(u) + 1
x = a(0) + 1
For i = 0 To u
If a(i) - x Then
c = 1
Else
c = c + 1
End If
If c = 1 Then
b(i) = a(i)
If a(i) = a(i + 1) And u - i Then b(i) = b(i) & "-1"
Else
b(i) = a(i) & "-" & c
End If
x = a(i)
Next
Debug.Print Join(b, ",")
End Sub
539デフォルトの名無しさん (ワッチョイ 07ce-KV+F)
2020/10/09(金) 22:47:08.38ID:VcvC9Dp/0 これよりシンプルにするのは俺には無理だった
Sub Macro1()
Dim a$(), b()
a = Split("1,1,2,2,3,4,4,4,5,6", ",")
u = UBound(a)
ReDim Preserve a(u + 1)
ReDim b(u)
a(u + 1) = a(u) + 1
x = a(0) + 1
For i = 0 To u
b(i) = a(i)
c = c + 1
If a(i) - x Then c = 1
If (c > 1) + (c = 1) * (a(i) = a(i + 1)) * (u - i) Then b(i) = b(i) & "-" & c
x = a(i)
Next
Debug.Print Join(b, ",")
End Sub
Sub Macro1()
Dim a$(), b()
a = Split("1,1,2,2,3,4,4,4,5,6", ",")
u = UBound(a)
ReDim Preserve a(u + 1)
ReDim b(u)
a(u + 1) = a(u) + 1
x = a(0) + 1
For i = 0 To u
b(i) = a(i)
c = c + 1
If a(i) - x Then c = 1
If (c > 1) + (c = 1) * (a(i) = a(i + 1)) * (u - i) Then b(i) = b(i) & "-" & c
x = a(i)
Next
Debug.Print Join(b, ",")
End Sub
540デフォルトの名無しさん (ワッチョイ 07ce-KV+F)
2020/10/09(金) 23:08:21.94ID:VcvC9Dp/0 b(i) = b(i) & "-" & c
↓
b(i) = b(i) & -c
↓
b(i) = b(i) & -c
541デフォルトの名無しさん (ワッチョイ 672c-Dl/i)
2020/10/09(金) 23:19:19.22ID:760t1BpC0 プログラミングのお題スレにも、たまにあるけど、
次の要素を先読みするのは面倒
スタックのpeek みたいに、要素を読み取るだけで、削除しない関数があればよい
次の要素を先読みするのは面倒
スタックのpeek みたいに、要素を読み取るだけで、削除しない関数があればよい
542デフォルトの名無しさん (ワッチョイ 672c-Dl/i)
2020/10/10(土) 06:22:18.37ID:BjcbKuib0 Ruby では、
# 一旦、整数の2次元配列にする。[[1, 1], [2, 2], [3], [4, 4, 4], [5], [6]]
result_ary = input_ary = "1,1,2,2,3,4,4,4,5,6".split( "," ).
chunk_while{ |prev, nxt| prev == nxt }.each_with_object( [ ] ) do |ary, acc| # 蓄積変数は配列
if ary.length == 1
acc.push( ary[ 0 ] )
else
ary.each_with_index do |num, idx|
acc.push( "#{ num }-#{ idx + 1 }" )
end
end
end
puts result_ary.to_a.join( "," ) # カンマ区切り
# 一旦、整数の2次元配列にする。[[1, 1], [2, 2], [3], [4, 4, 4], [5], [6]]
result_ary = input_ary = "1,1,2,2,3,4,4,4,5,6".split( "," ).
chunk_while{ |prev, nxt| prev == nxt }.each_with_object( [ ] ) do |ary, acc| # 蓄積変数は配列
if ary.length == 1
acc.push( ary[ 0 ] )
else
ary.each_with_index do |num, idx|
acc.push( "#{ num }-#{ idx + 1 }" )
end
end
end
puts result_ary.to_a.join( "," ) # カンマ区切り
543542 (ワッチョイ 672c-Dl/i)
2020/10/10(土) 06:24:55.49ID:BjcbKuib0544542 (ワッチョイ 672c-Dl/i)
2020/10/10(土) 06:29:37.77ID:BjcbKuib0 >>542
修正
>result_ary = input_ary = "1,1,2,2,3,4,4,4,5,6".split( "," ).
result_ary = "1,1,2,2,3,4,4,4,5,6".split( "," ).
修正
>result_ary = input_ary = "1,1,2,2,3,4,4,4,5,6".split( "," ).
result_ary = "1,1,2,2,3,4,4,4,5,6".split( "," ).
545デフォルトの名無しさん (ワッチョイ 07ce-KV+F)
2020/10/10(土) 06:39:31.44ID:WLqCacU70 データの種類が少なければ連想配列
546デフォルトの名無しさん (ワッチョイ 0668-xYNh)
2020/10/10(土) 09:37:35.06ID:ejDp+I1j0 先読みって考えるから面倒なのでは?
後出しって考えればいいのでは?
後出しって考えればいいのでは?
547デフォルトの名無しさん (ワッチョイ ca01-yf4V)
2020/10/10(土) 09:43:21.90ID:VjEh1Ow80 てかあの程度の仕様なら自分で書けよって思う
あれぐらいで書けないってのは根本的にプログラミングの基礎分かってないでしょ
forとifで一度自分で書いてみろと
あれぐらいで書けないってのは根本的にプログラミングの基礎分かってないでしょ
forとifで一度自分で書いてみろと
548デフォルトの名無しさん (ワッチョイ 9f7c-eFyE)
2020/10/10(土) 11:33:09.64ID:ZZ8h2+k60 書く気が無いからコードくれと言ってるんじゃないの
549デフォルトの名無しさん (ワントンキン MM3a-R/IE)
2020/10/10(土) 12:12:33.28ID:PwUkT7dUM いつものあいつでしょ
550デフォルトの名無しさん (ワッチョイ 0332-HnI9)
2020/10/10(土) 14:51:13.18ID:l6OboMxr0 書けない奴「いつもあいつでしょ」
551デフォルトの名無しさん (ワントンキン MM3a-R/IE)
2020/10/10(土) 15:12:08.20ID:PwUkT7dUM 煽って自演のいつもの馬鹿
552デフォルトの名無しさん (ワッチョイ 0332-HnI9)
2020/10/10(土) 15:36:01.73ID:l6OboMxr0 おじさん「煽ってなんちゃら」
553デフォルトの名無しさん (ラクッペペ MM86-SfJD)
2020/10/10(土) 15:38:43.61ID:VaQE37nUM バグってハニー
554デフォルトの名無しさん (ワントンキン MM3a-pCej)
2020/10/10(土) 17:43:29.69ID:aEE68DdLM いつものあいつ確定
555542 (ワッチョイ 672c-JAxH)
2020/10/10(土) 22:30:05.80ID:BjcbKuib0 データベース変換などは、Ruby のEnumerable のメソッドを見て、
シェル芸とか、プログラミングのお題スレの問題を解いた方がよい
VBA は可読性が悪すぎて、作っても再利用できない。
OSS で全会社共通で、RubyのEnumerable 相当のメソッドを作って公開するべき!
他言語ではたいてい、Rubyと等価のメソッドを作る
シェル芸とか、プログラミングのお題スレの問題を解いた方がよい
VBA は可読性が悪すぎて、作っても再利用できない。
OSS で全会社共通で、RubyのEnumerable 相当のメソッドを作って公開するべき!
他言語ではたいてい、Rubyと等価のメソッドを作る
557デフォルトの名無しさん (ワッチョイ ca4f-+ixC)
2020/10/11(日) 00:52:32.73ID:l/QRoUUr0558デフォルトの名無しさん (ワッチョイ b301-NY7j)
2020/10/11(日) 08:15:59.41ID:qzIChT2z0 >>555
データ変換てのは基本的な作法さえ知ってればEnumerableメソッド使わなくても特に困ることもないだろう
ただのループ構造をこねくり回してるだけでそのためにメソッドを割り当てるなんてお仕着せもいいところ
データ変換てのは基本的な作法さえ知ってればEnumerableメソッド使わなくても特に困ることもないだろう
ただのループ構造をこねくり回してるだけでそのためにメソッドを割り当てるなんてお仕着せもいいところ
559デフォルトの名無しさん (ワッチョイ ca01-d5Pu)
2020/10/11(日) 10:01:12.40ID:QZ/HZvxF0 >>557-558
なぜ相手するんだ…
なぜ相手するんだ…
560デフォルトの名無しさん (ワッチョイ 6b63-JAxH)
2020/10/11(日) 12:29:43.68ID:lH9sVzvl0 Acrobatを使用したプログラムを複数回実行すると初回だけ成功し
2回目以降は
実行時エラー2147467259(80004005)
エラーを特定できません
となります(idに代入する行でエラー)
終了処理に不備があってacrobatのプロセスが残っているのではと思いましたが
色々なサイトを見ても解決がわからない状態です。
どうすれば治りますか。
プログラムは次のレスを参照ください。
2回目以降は
実行時エラー2147467259(80004005)
エラーを特定できません
となります(idに代入する行でエラー)
終了処理に不備があってacrobatのプロセスが残っているのではと思いましたが
色々なサイトを見ても解決がわからない状態です。
どうすれば治りますか。
プログラムは次のレスを参照ください。
561デフォルトの名無しさん (ワッチョイ 6b63-JAxH)
2020/10/11(日) 12:30:03.99ID:lH9sVzvl0 Dim objAcroApp As New Acrobat.AcroApp
Dim objAcroAVDoc As New Acrobat.AcroAVDoc
Dim objAcroPDDoc As New Acrobat.AcroPDDoc
Dim id As Long
Dim js As Object
Dim SaveName As String
id = objAcroApp.Show
id = objAcroAVDoc.Open(FilePath, "")
Set objAcroPDDoc = objAcroAVDoc.GetPDDoc()
Set js = objAcroPDDoc.GetJSObject
SaveName = FolderPath & "\" & Replace(FileName, ".pdf", "")
'変換のうえテキストファイルとして保存
js.SaveAs SaveName & ".txt", "com.adobe.acrobat.plain-text"
'PDFファイルを変更無しで閉じる
id = objAcroAVDoc.Close(1)
'Acrobatアプリケーションを終了する。
id = objAcroApp.Hide
id = objAcroApp.Exit
Set js = Nothing
Set objAcroAVDoc = Nothing
Set objAcroApp = Nothing
Dim objAcroAVDoc As New Acrobat.AcroAVDoc
Dim objAcroPDDoc As New Acrobat.AcroPDDoc
Dim id As Long
Dim js As Object
Dim SaveName As String
id = objAcroApp.Show
id = objAcroAVDoc.Open(FilePath, "")
Set objAcroPDDoc = objAcroAVDoc.GetPDDoc()
Set js = objAcroPDDoc.GetJSObject
SaveName = FolderPath & "\" & Replace(FileName, ".pdf", "")
'変換のうえテキストファイルとして保存
js.SaveAs SaveName & ".txt", "com.adobe.acrobat.plain-text"
'PDFファイルを変更無しで閉じる
id = objAcroAVDoc.Close(1)
'Acrobatアプリケーションを終了する。
id = objAcroApp.Hide
id = objAcroApp.Exit
Set js = Nothing
Set objAcroAVDoc = Nothing
Set objAcroApp = Nothing
562デフォルトの名無しさん (ワッチョイ cbda-xYNh)
2020/10/11(日) 18:37:51.01ID:7Qx+aWsY0 どこだか忘れたけど、閉じる・解放はこの順番じゃないとダメって書いてあるサイトがあったぞ。
563デフォルトの名無しさん (ワッチョイ 07ce-KV+F)
2020/10/11(日) 20:12:54.59ID:WEczn1o20 オブジェクト型にNothingを代入しても、参照ポインタが書き換わるだけでメモリが解放されるわけじゃないんで、順序はそれほど重要じゃない
564デフォルトの名無しさん (ワッチョイ 67da-xYNh)
2020/10/11(日) 21:39:34.57ID:CPiGYYUg0 >>560
必ず再現するなら同じ現象が発生する最小のコードを作ってみ
必ず再現するなら同じ現象が発生する最小のコードを作ってみ
565デフォルトの名無しさん (ワッチョイ 4a2f-JAxH)
2020/10/11(日) 23:29:10.26ID:gmCwGThW0 >>561
とりあえずDimでNewするのやめて様子見てみ
とりあえずDimでNewするのやめて様子見てみ
566デフォルトの名無しさん (ワッチョイ 6f5f-e5Pm)
2020/10/12(月) 01:35:39.95ID:EUVfONAL0 どうやって再度、実行できているのか?
仕事ができない人がよく言う説明。
仕事ができない人がよく言う説明。
567デフォルトの名無しさん (ワッチョイ 672c-JAxH)
2020/10/12(月) 08:27:00.05ID:CsRHImZw0 >>560
タスクマネージャーを起動して、プロセスを終了させてから、実行すれば?
タスクマネージャーを起動して、プロセスを終了させてから、実行すれば?
568デフォルトの名無しさん (ラクッペペ MM86-SfJD)
2020/10/12(月) 10:12:47.93ID:5eYbb8SbM アクロバットがすぐに終了しないのは体感でも分かるレベル
569デフォルトの名無しさん (ワッチョイ 6f5f-e5Pm)
2020/10/12(月) 18:47:34.51ID:EUVfONAL0 2回目以降から1回目に戻る手順くらい書けよ!
570デフォルトの名無しさん (ワッチョイ 07ad-yGJI)
2020/10/12(月) 21:34:54.79ID:mxOFfEsA0571デフォルトの名無しさん (ワッチョイ 67da-tQNK)
2020/10/12(月) 23:43:56.93ID:k3Vmfe+e0 時間を戻そう
572デフォルトの名無しさん (ワッチョイ ca4f-+ixC)
2020/10/13(火) 08:13:53.62ID:548t3foS0 >>561
objAcroAppにCloseメソッドがあってそれを実行していないとかいうオチだったりして
objAcroAppにCloseメソッドがあってそれを実行していないとかいうオチだったりして
573デフォルトの名無しさん (ワッチョイ ca01-d5Pu)
2020/10/13(火) 09:32:19.92ID:2dX+mfF30574デフォルトの名無しさん (ワッチョイ 6749-xYNh)
2020/10/13(火) 10:34:47.53ID:lK6RB09G0 「.CloseAllDocs」 ってメソッドもAcrobat.AcroAppにはあるらしいな
そしてExitだけじゃプロセスが残ることもあるらしい
まあAcrobatの環境ないから検証も何もできんけど、
安全取るならExitしたあとにプロセス監視してkillするしかないんじゃね
途中でエラー落ちしてもプロセスのこっちゃうらしいし
ちなみにどうでもいいが個人的にはExitとCloseは、意味的に異なると思う
だからExitとCloseが両方あってもおかしくないとは思う
でもExitがCloseを包括していても、それはそれでありだとも思う
Acrobat.AcroAppの公式ドキュメント見れてないからワイには答えが出せんわ
そしてExitだけじゃプロセスが残ることもあるらしい
まあAcrobatの環境ないから検証も何もできんけど、
安全取るならExitしたあとにプロセス監視してkillするしかないんじゃね
途中でエラー落ちしてもプロセスのこっちゃうらしいし
ちなみにどうでもいいが個人的にはExitとCloseは、意味的に異なると思う
だからExitとCloseが両方あってもおかしくないとは思う
でもExitがCloseを包括していても、それはそれでありだとも思う
Acrobat.AcroAppの公式ドキュメント見れてないからワイには答えが出せんわ
575デフォルトの名無しさん (ワッチョイ 9f63-F9zC)
2020/10/15(木) 08:48:14.01ID:wrF56cyr0 >>560です
皆さん本当にありがとうございます。
みなさんのご意見をプログラムに反映した後、
ソースを最小(adobeをオープン・クローズするのみ)
にしてもエラーです・・・(次レス参照)
タスクマネージャには
adobe CEF helper、adobe update serviceがありますが
前者は消しても湧いてきているように見えます。
パソコン再起動してもダメ、日付が変わってもダメです。
しかし、エラーになったあとちょうど24時間経過すると
無事実行できるようになることがわかりました・・・
24時間後の数分前はエラーでしたが
数分後は無事実行できました。
ちょうど24時間で消えるプロセスが存在するんだと思いますが
何かご存知のかた居ましたらご教示ください・・・
皆さん本当にありがとうございます。
みなさんのご意見をプログラムに反映した後、
ソースを最小(adobeをオープン・クローズするのみ)
にしてもエラーです・・・(次レス参照)
タスクマネージャには
adobe CEF helper、adobe update serviceがありますが
前者は消しても湧いてきているように見えます。
パソコン再起動してもダメ、日付が変わってもダメです。
しかし、エラーになったあとちょうど24時間経過すると
無事実行できるようになることがわかりました・・・
24時間後の数分前はエラーでしたが
数分後は無事実行できました。
ちょうど24時間で消えるプロセスが存在するんだと思いますが
何かご存知のかた居ましたらご教示ください・・・
576デフォルトの名無しさん (ワッチョイ 9f63-F9zC)
2020/10/15(木) 08:49:26.67ID:wrF56cyr0 ソースを最小にするためところどころコメントアウトしてます
Dim objAcroApp As Acrobat.AcroApp
Dim objAcroAVDoc As Acrobat.AcroAVDoc
' Dim objAcroPDDoc As Acrobat.AcroPDDoc
Dim id As Long
' Dim js As Object
' Dim SaveName As String
Set objAcroApp = CreateObject( "AcroExch.App" )
Set objAcroAVDoc = CreateObject( "AcroExch.AVDoc" )
id = objAcroApp.Show
id = objAcroAVDoc.Open(FilePath, "")
' Set objAcroPDDoc = objAcroAVDoc.GetPDDoc()
' Set js = objAcroPDDoc.GetJSObject
' SaveName = FolderPath & "\" & Replace(FileName, ".pdf", "")
'変換のうえテキストファイルとして保存
' js.SaveAs SaveName & ".txt", "com.adobe.acrobat.plain-text"
'PDFファイルを変更無しで閉じる
id = objAcroAVDoc.Close(1)
'Acrobatアプリケーションを終了する。
id = objAcroApp.CloseAllDocs←どっかのサイトでobjAcroApp.Hideの前に入れてました
id = objAcroApp.Hide
id = objAcroApp.Exit
' Set js = Nothing
Set objAcroAVDoc = Nothing
Set objAcroApp = Nothing
Dim objAcroApp As Acrobat.AcroApp
Dim objAcroAVDoc As Acrobat.AcroAVDoc
' Dim objAcroPDDoc As Acrobat.AcroPDDoc
Dim id As Long
' Dim js As Object
' Dim SaveName As String
Set objAcroApp = CreateObject( "AcroExch.App" )
Set objAcroAVDoc = CreateObject( "AcroExch.AVDoc" )
id = objAcroApp.Show
id = objAcroAVDoc.Open(FilePath, "")
' Set objAcroPDDoc = objAcroAVDoc.GetPDDoc()
' Set js = objAcroPDDoc.GetJSObject
' SaveName = FolderPath & "\" & Replace(FileName, ".pdf", "")
'変換のうえテキストファイルとして保存
' js.SaveAs SaveName & ".txt", "com.adobe.acrobat.plain-text"
'PDFファイルを変更無しで閉じる
id = objAcroAVDoc.Close(1)
'Acrobatアプリケーションを終了する。
id = objAcroApp.CloseAllDocs←どっかのサイトでobjAcroApp.Hideの前に入れてました
id = objAcroApp.Hide
id = objAcroApp.Exit
' Set js = Nothing
Set objAcroAVDoc = Nothing
Set objAcroApp = Nothing
577デフォルトの名無しさん (ワッチョイ 5b2c-F9zC)
2020/10/15(木) 09:20:24.96ID:7eWumHpU0 起動設定で、プロセスを殺すと、また再起動するアプリがある。
ウィルスチェックなどの、何かをチェックするアプリ
必ず、最低1つは起動しておくタイプのアプリ
そういうアプリは使わない方がよい。
何をチェックして、本社に送っているか、怪しい
会社に問い合わせて、再起動を止めるような設定を聞けば?
ウィルスチェックなどの、何かをチェックするアプリ
必ず、最低1つは起動しておくタイプのアプリ
そういうアプリは使わない方がよい。
何をチェックして、本社に送っているか、怪しい
会社に問い合わせて、再起動を止めるような設定を聞けば?
578デフォルトの名無しさん (スププ Sdbf-K5sQ)
2020/10/15(木) 10:57:30.25ID:LAL4jdY0d 区分1〜10のデータが記録されたcsvを区分ごとにExcelシート毎(シート名は1〜10)に分割して読み込むvbaがどうしても出来ません…
ご教示いただけないでしょうか…
ご教示いただけないでしょうか…
579デフォルトの名無しさん (ワッチョイ 5b49-fMdf)
2020/10/15(木) 11:36:34.23ID:+kinuzul0 そんな説明でわかるわけがないので、
そこまで頑張って作ったコードとエラーメッセージを提示するのが最低限
そして、自分で何を試行したのかも説明すること
そこまで頑張って作ったコードとエラーメッセージを提示するのが最低限
そして、自分で何を試行したのかも説明すること
580デフォルトの名無しさん (ワントンキン MMbf-QVAX)
2020/10/15(木) 12:20:58.11ID:k/WlCRMPM いつもの人
581デフォルトの名無しさん (ワッチョイ 5b2c-F9zC)
2020/10/15(木) 13:02:07.76ID:7eWumHpU0 Ruby なら、これで最初の列だけを、出力できる
require 'csv'
# CSV ファイルを、1行ずつ処理する
CSV.foreach( "a.csv" ) do |row|
puts row[ 0 ]
end
require 'csv'
# CSV ファイルを、1行ずつ処理する
CSV.foreach( "a.csv" ) do |row|
puts row[ 0 ]
end
582デフォルトの名無しさん (ワッチョイ 9f6d-sSL1)
2020/10/15(木) 14:36:16.06ID:sVQ5bVjI0 >>581
C#スレで恥を晒したRuby荒らしは帰れよ
C#スレで恥を晒したRuby荒らしは帰れよ
583デフォルトの名無しさん (ワッチョイ 8bda-fMdf)
2020/10/15(木) 19:36:00.91ID:GQ796pt70 簡単かどうかなんてどうでもいい。
200万件のデータをADO+SQLより速く処理できるならRuby使ってやらなくもないが。
どうなんだい?
無理ならイラネ。
200万件のデータをADO+SQLより速く処理できるならRuby使ってやらなくもないが。
どうなんだい?
無理ならイラネ。
584デフォルトの名無しさん (ワッチョイ 9fb5-K72c)
2020/10/15(木) 19:54:07.37ID:hF5+vxPB0 もう時代遅れなのはわかってるけど
会社が2019に更新してまだまだ使う気満々なので
そして配布が出来ないと困る
会社が2019に更新してまだまだ使う気満々なので
そして配布が出来ないと困る
585デフォルトの名無しさん (テテンテンテン MM7f-RGwm)
2020/10/15(木) 21:24:39.62ID:Dg+UC/FqM >>583
ルビ糞基地外の味方をするつもりはないけど、DBがボトルネックならRubyだろうが何だろうが速さは変わらんよ
ルビ糞基地外の味方をするつもりはないけど、DBがボトルネックならRubyだろうが何だろうが速さは変わらんよ
586デフォルトの名無しさん (ワッチョイ 9fe6-lr1q)
2020/10/15(木) 21:53:38.55ID:3DKNzMNt0 俺の解釈だとこんな感じ
Sub Macro1(Filename, Fieldname)
Set ws = Workbooks.Open(Filename).Sheets(1)
Set pvt = ws.PivotTableWizard(1, ws.UsedRange)
pvt.PivotFields(Fieldname).Orientation = 1
pvt.PivotFields(Fieldname).Orientation = 4
pvt.ColumnGrand = False
For Each r In pvt.DataBodyRange: r.ShowDetail = True: Next
End Sub
Sub Macro1(Filename, Fieldname)
Set ws = Workbooks.Open(Filename).Sheets(1)
Set pvt = ws.PivotTableWizard(1, ws.UsedRange)
pvt.PivotFields(Fieldname).Orientation = 1
pvt.PivotFields(Fieldname).Orientation = 4
pvt.ColumnGrand = False
For Each r In pvt.DataBodyRange: r.ShowDetail = True: Next
End Sub
587デフォルトの名無しさん (ワッチョイ fb19-F9zC)
2020/10/15(木) 23:19:16.95ID:fOL5OZab0588デフォルトの名無しさん (ワッチョイ 8bda-fMdf)
2020/10/16(金) 19:09:16.33ID:Hr39/iau0 >>587
多分それ。
多分それ。
589デフォルトの名無しさん (ワッチョイ bb5f-snog)
2020/10/16(金) 19:55:23.45ID:rggqlWcj0 PDFファイルの件は、マクロの記録でやるとどうなるのか、確認すればいいんじゃないの?
590デフォルトの名無しさん (ワッチョイ 8bda-fMdf)
2020/10/16(金) 21:55:06.26ID:Hr39/iau0 なあそれ、マクロの記録をするとどうなるか確認してから言ってるのか?
591デフォルトの名無しさん (ワッチョイ 9f42-B8Ym)
2020/10/16(金) 22:07:10.71ID:9Da+1I/Z0 モチのロンだぜ
592デフォルトの名無しさん (ワッチョイ 5bda-fMdf)
2020/10/16(金) 22:24:45.68ID:tI22s9TB0 モロのチンだぜ
593デフォルトの名無しさん (スップ Sdbf-huX3)
2020/10/18(日) 16:09:00.37ID:SMfw56kvd >>533
そういうことじゃねえ。
そういうことじゃねえ。
594デフォルトの名無しさん (ワッチョイ 05da-tMQb)
2020/10/21(水) 23:21:44.77ID:w3Ug/D8p0595デフォルトの名無しさん (テテンテンテン MMe6-B6QP)
2020/10/22(木) 03:14:09.06ID:RxEiNjgnM こまけぇこたぁ
いいんだよ!!
/)
//) __
`/ 二つ/⌒⌒\
| ニ⊃ (●)(●)\
/\ノ|⌒(_人_)⌒|
/ > ヽニノ <
いいんだよ!!
/)
//) __
`/ 二つ/⌒⌒\
| ニ⊃ (●)(●)\
/\ノ|⌒(_人_)⌒|
/ > ヽニノ <
596デフォルトの名無しさん (スプッッ Sd02-4ynI)
2020/10/22(木) 08:49:00.24ID:8kbg1eIjd まだVBAなんて使ってる人がいてビックリ
懐かしい言語だよね
懐かしい言語だよね
597デフォルトの名無しさん (テテンテンテン MMe6-B6QP)
2020/10/22(木) 09:02:14.12ID:OZW0tgCBM Excel2000から20年なんて家電製品なら普通ですよ
598デフォルトの名無しさん (ラクッペペ MMe6-E8a6)
2020/10/22(木) 12:37:02.60ID:QXcT5+jPM Excel5.0からだよ
16ビットだよ
16ビットだよ
599デフォルトの名無しさん (ドコグロ MM15-o6QC)
2020/10/22(木) 12:37:11.57ID:N0tQIHiYM600デフォルトの名無しさん (ワッチョイ 05cc-LA9s)
2020/10/22(木) 17:17:13.81ID:8WoYrv7v0 A1に"2020/10/22"のように日付が入っています。
その日付が土曜日の場合、その月の何回目の土曜日かを調べるコードを教えてください。
その日付が土曜日の場合、その月の何回目の土曜日かを調べるコードを教えてください。
601デフォルトの名無しさん (テテンテンテン MMe6-FUnU)
2020/10/22(木) 17:41:32.24ID:V9nm7cr3M 嫌です
602デフォルトの名無しさん (ラクッペペ MMe6-E8a6)
2020/10/22(木) 18:23:26.36ID:jxPHtPQlM 22÷7
603デフォルトの名無しさん (ワッチョイ 86c3-m/xB)
2020/10/22(木) 18:50:04.05ID:lPQIKdWd0 >>600
その日付は木曜日です
その日付は木曜日です
604デフォルトの名無しさん (ワッチョイ e1d2-o8Qw)
2020/10/22(木) 18:56:20.17ID:CJ3HroyY0 int((日-1)/7+1)
605デフォルトの名無しさん (アウアウウー Sa45-S+8T)
2020/10/22(木) 19:08:32.49ID:XgRR6MjRa days
606デフォルトの名無しさん (ワッチョイ 21da-tMQb)
2020/10/22(木) 20:00:05.75ID:Nlv/Qw7G0 >>596
ここでRuby教を広めようとしても無駄ですよ
ここでRuby教を広めようとしても無駄ですよ
>>599
そうそう、それに win32api のほとんどを呼び出すことができるんですよね
そうそう、それに win32api のほとんどを呼び出すことができるんですよね
608600 (オイコラミネオ MM69-joA3)
2020/10/22(木) 20:54:38.55ID:EVMbdUMSM 〉〉604
ありがとうございます
ありがとうございます
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 国民 居住目的でない住宅所有者に「空室税」課せる法案を提出 [少考さん★]
- 【おこめ】「有能だったんじゃ」おこめ券で批判殺到の鈴木農水大臣…ネットでは前任の“進次郎再評価” ★2 [ぐれ★]
- アメリカ、入国時に「日本人を含む外国人観光客の最大5年分のSNS履歴の提出」義務化へ 過去10年間に使用のメールアドレスや電話番号等も★3 [Hitzeschleier★]
- 「暖房が使えない」「食費が高くて子どもの栄養が…」 物価高に苦しむ子育て世帯、政府に期待する支援は ★2 [蚤の市★]
- バイク事故で入院ゆたぼん、見舞金「1円」振り込みの名義に衝撃「悲しい人ですね」「こういう人がいるから…」 [muffin★]
- 玉川徹氏、中国を猛獣に例え「いたずらに刺激して何も得はない」高市首相を厳しくただす [muffin★]
- ところで、氷河期の基礎年金が増える話どうなった?厚生年金の溜まり分を活用して付け替える話!!! [252835186]
- 高市早苗、森元総理の愛人だった [347751896]
- ひろゆき「冬の朝って「あ、今日無理かも」の日が多すぎる」
- 高市内閣の支持率、下落wwwwwwwwwww [834922174]
- 来年からPCの価格がガチのマジで超ヤバイ程値上がる模様。お前ら買ったか?Sandy高市 [484676894]
- PayPayスクラッチチャンスの声やってるけどあの声出なくなった
