X



Excel VBA 質問スレ Part68

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ dbda-8BP0)
垢版 |
2020/08/30(日) 11:55:27.33ID:Oy/VxFsh0
!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
0004デフォルトの名無しさん (スッップ Sd22-WkEz)
垢版 |
2020/08/30(日) 12:41:50.27ID:wybDtxdZd
以下の特徴を持つ書き込みは無視するか罵倒されます。

・「教えて」「助けて」で始まる質問者の頭が悪いことが容易にわかる質問
・自分で考えるともせず全部作ってもらおうとする厚かましい質問
・VBA、マクロに関係ないExcelの質問
・自分のために利用するだけ利用してやろうと、後出しで条件を付け加える人
0005デフォルトの名無しさん (アウアウエー Sa0a-ifKp)
垢版 |
2020/08/30(日) 20:36:42.00ID:Cc0wen40a
Testフォルダの中に複数のテキストファイルがあり、それぞれのテキストファイルの中身を1つのエクセルシートに取り込みたいのですが、うまくいきません。
test()をfunc()の中で使えないか考えています。
Sub fun()
Dim fso, file, files
Dim folderPath As String: folderPath = "G:\Test\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set files = fso.GetFolder(folderPath).files

For Each file In files
Dim wb As Workbook
'Set wb = Workbooks.Open(file)

Dim ts As Object
Set ts = fso.OpenTextFile(file, ForReading)

'Call wb.Close(SaveChanges:=False)

Next file
End Sub
0006デフォルトの名無しさん (アウアウエー Sa0a-ifKp)
垢版 |
2020/08/30(日) 20:37:09.10ID:Cc0wen40a
Sub test()
Dim folderPath As String: folderPath = "G:\Test\"
Dim textLine, fileName As String
Dim fileToOpen As Integer
Dim i As Integer
fileName = folderPath & "01.txt"
fileToOpen = FreeFile()

Open fileName For Input As fileToOpen

i = 1

While Not EOF(fileToOpen)
Line Input #fileToOpen, textLine
Cells(1, i).Value = textLine
i = i + 1
Wend
End Sub
0007デフォルトの名無しさん (アウアウエー Sa0a-ifKp)
垢版 |
2020/08/30(日) 21:02:31.41ID:Cc0wen40a
すみません。何とか事故解決しました。
もしこう書けばより良いとアドバイス頂けたら幸いです。
Sub fun()
Dim fso, file, files
Dim folderPath As String: folderPath = "G:\Test\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set files = fso.GetFolder(folderPath).files

Dim j As Integer

For Each file In files
Dim wb As Workbook
'Set wb = Workbooks.Open(file)

Dim ts As Object
Set ts = fso.OpenTextFile(file)
Dim i As Integer: i = 1
j = j + 1
Do Until ts.AtEndOfStream
Cells(j, i).Value = ts.ReadLine
i = i + 1
Loop
ts.Close
'Call wb.Close(SaveChanges:=False)
Next file
End Sub
0011デフォルトの名無しさん (ドコグロ MMca-ftwo)
垢版 |
2020/08/31(月) 00:06:45.91ID:SE//WJVaM
誰に言われるまでもなく上に全部まとめて宣言しているわ
違うプロシージャにそのままコピペで流用して使わないのは消すだけ
0013デフォルトの名無しさん (ワッチョイ 45cc-pyQU)
垢版 |
2020/08/31(月) 19:07:17.70ID:Lt7FggAF0
B列に"2020/8/1"のように日付が入っていて
B列に"発行日"&和暦を入力したいのですが、年・月・日がそれぞれ1桁の場合は頭に0が入ってしまします。
1桁の場合は、0の代わりに半角スペースにしたいのですがどう書けばいいですか

Dim r As Long

For r = 1 To Cells(Rows.Count,1).End(xlUp).Row
Cells(r,2).Value = Format(CDate(Cells(r,1)), "ggge年m月d日")
Next r
0015デフォルトの名無しさん (アウアウエー Sa0a-ifKp)
垢版 |
2020/08/31(月) 19:11:34.92ID:0S1gXD8ua
>>10
>>12
助言ありがとうございます。
0018デフォルトの名無しさん (ラクッペペ MM66-i8JQ)
垢版 |
2020/09/01(火) 16:02:43.57ID:IEy7mEwuM
vba実行時
実行時エラー2147467259(80004005)エラーを特定できません
が出ます。
半月前は出ませんでした。
どうすれば良いでしょうか。

具体的に申しますと
pdfをテキストにコンバートする関数に
入った直後に出ます。
Dim objAcroApp As New Acrobat.AcroApp
Dim id As Long
id=objAcroApp.Show←ここで出ます

事情がありスマホで手打ちしました。
見苦しくすみませんがよろしくお願い申し上げます
0019デフォルトの名無しさん (アウアウクー MM11-1Npq)
垢版 |
2020/09/01(火) 19:54:21.29ID:GHp5MfoEM
小計シートのA列に日付があります
1.メニューシートでリストボックスを設置して、そこに小計シートのダブりを省いた日付を入れて選択できるようにしたいです
2.メニューシートの実行ボタンを押すと選択した日付の行全てを結果シートに出力したいです

どのような関数を使えば1、2を実現できるのでしょうか?
0020デフォルトの名無しさん (ワッチョイ 4d10-t21d)
垢版 |
2020/09/01(火) 20:49:46.16ID:4J5+lU0z0
神経衰弱を作っています
Image1~52を並べて全てのImageにクリックされた時の処理を記述しているのですがImageがクリックされた時の処理をひとつにまとめる方法はないでしょうか?
0023デフォルトの名無しさん (ドコグロ MMca-yRqa)
垢版 |
2020/09/01(火) 21:59:11.19ID:o1zup8QpM
>>20
Imagename = Application.Caller
i = Mid(Imagename, 6)

あとは、Select Caseで割り振る
0025デフォルトの名無しさん (ワッチョイ 4d10-t21d)
垢版 |
2020/09/01(火) 22:24:18.51ID:4J5+lU0z0
Application.callerよさそうですね
使ってみます
ありがとうございました
0030デフォルトの名無しさん (ワッチョイ e710-t/Jd)
垢版 |
2020/09/02(水) 20:49:21.06ID:hWT8nCmb0
神経衰弱を作っています
カードを2枚裏返して2枚の数字が同じだった
Image1.visible = falseで2枚を非表示にしています
ゲーム途中でコマンドボタンを押すと1から13までのランダムな数字の枚数だけ裏面のカードを表にしたいのですが今のコードだと既に非表示になっているカードまで表にする対象になってしまっていて13という数字を引いても5枚しかめくれないみたいな状態になってしまいます
どうすれば既に非表示になっているカードは除いて表面にする処理ができるようになるでしょうか?
ゲーム開始直後の状態であればちゃんと引いた数字分表面にすることができています
0032デフォルトの名無しさん (ワッチョイ 5f1f-W64q)
垢版 |
2020/09/02(水) 21:06:16.30ID:wVSDLDLi0
For i = Lbound(arr) to ubound(arr)

next i
配列の中 ファイル名*書込文字。
(0)001*abc (1)001*bca (2)001*dca (3)002*fed の様な配列の処理を

(0)で001.xlsを開いて文字書き込み
(1)開いてあるから文字書き込み
(2)同様
(3)001閉じる002開く文字書き込み

こんな感じに開いてたら閉じる。違うファイルなら閉じて新たに開くってどうしたら
いいですか?
0034デフォルトの名無しさん (ドコグロ MM1f-th+2)
垢版 |
2020/09/02(水) 21:43:27.34ID:M5ACMng3M
>>30
If Worksheets(シート名).Shapes("Image" & カード番号).Visible = False Then
0037デフォルトの名無しさん (ドコグロ MM1f-aCGe)
垢版 |
2020/09/02(水) 23:26:58.04ID:CEKOaVwIM
>>35
じゃあ、trueに変えればいいじゃん
0038デフォルトの名無しさん (ワッチョイ 7f63-3NJ+)
垢版 |
2020/09/02(水) 23:43:34.57ID:4SR2iB8C0
>>22
sはこれでエラーが出ませんでしたが
これでテストになっているのか疑問です。。(acrobatを操作しているように見えない
Sub ConvertFile()
Dim objAcroApp
Dim objAcroAVDoc
Dim objAcroPDDoc
Dim id
Dim js
Dim SaveName
id = objAcroApp.Show
id = objAcroAVDoc.Open("PDFへのパス", "")

ちなみに>>18のソースを本日数度起動してみたところ
1回だけ動作成功しましたww
プログラム以外のところに原因があるんでしょうか。
0042デフォルトの名無しさん (ラクッペペ MM8f-dQ4P)
垢版 |
2020/09/03(木) 09:49:18.05ID:8vHUVo2kM
>>40
visibleプロパティで管理してるんだから問題ないだろ

13回選んで4回裏が出たら17回選べばいいんだよ
0046デフォルトの名無しさん (ラクッペペ MM8f-qH39)
垢版 |
2020/09/04(金) 12:46:00.80ID:lx1E7kKYM
csvをある列でフィルタし
結果を別のブックに貼り付け
csvとして保存したところ
日付+時刻(ゼロ時)の列すべて
5桁の数字になります
どうしたら日付+時刻のままで
いてくれますか
0048デフォルトの名無しさん (ワッチョイ 7f8e-+abr)
垢版 |
2020/09/04(金) 16:31:17.78ID:9qR3rveJ0
>>46
VBAの話しか?
0049デフォルトの名無しさん (ラクッペペ MM8f-qH39)
垢版 |
2020/09/04(金) 17:16:17.55ID:lx1E7kKYM
>>48
はぃ、vbaでそういう処理を書きました
0055デフォルトの名無しさん (ワッチョイ e710-t/Jd)
垢版 |
2020/09/04(金) 23:53:41.25ID:3ZUt+s6n0
モジュール1で定義した配列をモジュール2で使うにはどうすればいいですか?
モジュール1でdimではなくpublicで宣言すればいいのでしょうか?
0057デフォルトの名無しさん (ワッチョイ c763-3NJ+)
垢版 |
2020/09/05(土) 00:15:03.09ID:oZJVOAAi0
>>51
すべてご推察のとおりです。ありがとうございます。
xlPasteValuesで張り付けてます。
xlPasteAllだと年が月日の後になってしまいます(5/31/2020 0:00)

>>47さんのおっしゃる
「文字列として」貼り付ける設定を発見できません。
""で囲めば文字列として貼り付けられるのでしょうか。
0058デフォルトの名無しさん (ワッチョイ 7f8e-+abr)
垢版 |
2020/09/05(土) 00:15:37.71ID:wG6iKMy+0
最近また馬鹿が出てきた
0064デフォルトの名無しさん (スフッ Sd7f-7sgX)
垢版 |
2020/09/05(土) 14:03:42.79ID:4XqPsYsKd
ループカウンタ用の変数名はとりあえずiにでもしとこうっていう昔からの名残
細かく言うと整数を表すIntegerのi
i、j、k〜nまで順によく使われる
006663 (ワッチョイ 0701-zmOT)
垢版 |
2020/09/05(土) 14:19:36.48ID:CLMpHe/Q0
何度もレスしてすいません。
問題の文章とVBAのマクロの文章を照らし合わせて回答をみると何となく答えがわかる気がしてきたのですが、

相対(a2,work_line,3)

がなぜ来店状況ワークシートのセルd列のことになるのか分かりません。
3列目なのでcだと思ったのですが…
007463 (ワッチョイ 0701-zmOT)
垢版 |
2020/09/05(土) 16:23:09.92ID:ZUfl2WLX0
>>70
すいません
そもそもそれもよく分かってなかったのです。
ちなみに良かったらどういう意味が教えて欲しいです。
聞いてばかりで申し訳ありません。
0077デフォルトの名無しさん (ワッチョイ 7f8e-+abr)
垢版 |
2020/09/05(土) 17:24:34.57ID:wG6iKMy+0
>>74
そろそろ消えろ
0078デフォルトの名無しさん (ドコグロ MM1f-aCGe)
垢版 |
2020/09/05(土) 17:30:09.65ID:k1PkCOGDM
>>74
相対(a2,行,列)
0の場合は省略可なので
相対(a2,行)とか相対(a2,,列)でもいい
008663 (ワッチョイ 0701-zmOT)
垢版 |
2020/09/06(日) 14:01:01.76ID:spMqG8Fw0
>>85
上手く質問できなくて申し訳ありません。

全体的な単語の一つ一つの意味が知りたかったのです。

お手隙ならばで構わないのですが、

https://www.fe-siken.com/kakomon/30_haru/pm02.html

この問題の設問3の重みパラメータというのがどう作用して出力Zの値になるのか教えて頂けないでしょうか。
008763 (ワッチョイ 0701-zmOT)
垢版 |
2020/09/06(日) 14:02:20.47ID:spMqG8Fw0
あ、すみません。問題よく読んでませんでした。
これについてはレス直後理解しました。
ごめんなさい( ;ᯅ; )
0090デフォルトの名無しさん (ワッチョイ 7f8e-+abr)
垢版 |
2020/09/06(日) 18:43:46.86ID:Mql9n0EK0
>>88
死ね
0096デフォルトの名無しさん (テテンテンテン MM8f-Ccsn)
垢版 |
2020/09/07(月) 20:07:21.03ID:Yu9E5X6OM
VBA勉強しはじめて、ようやくOutlook連携とかzip圧縮とかやり始めたんだけど
Excelそのものの操作に関する情報と比べて、参考に出来る情報の質も量もガクッと落ちた気がする

やっぱ話題のpythonに切替えたほうが悩まずやれるのだろうか
0098デフォルトの名無しさん (ワッチョイ e7e6-dQ4P)
垢版 |
2020/09/07(月) 20:22:49.70ID:sgrgY4Mk0
zip.exe叩けばええやろ
0099デフォルトの名無しさん (ワッチョイ 5f6d-4jJb)
垢版 |
2020/09/07(月) 20:51:37.54ID:/DR3/4oV0
目の前に答えが書いてあっても理解できない、答えだと気付けない
これが「馬鹿には無理」の意味
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況