スレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※関連スレ
VBAなんでも質問スレ Part2
http://mevius.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
http://mevius.2ch.net/test/read.cgi/tech/1328536426/
※前スレ
Excel VBA 質問スレ Part51
http://mevius.2ch.net/test/read.cgi/tech/1510107990/
Excel VBA 質問スレ Part52
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/01/27(土) 20:25:05.67ID:Xe+uGT7T536デフォルトの名無しさん
2018/03/26(月) 13:23:21.66ID:0ERRGh/D VBEのコードウインドウの背景色を濃いグレーに変えたのですが、プロシージャの区分線の色も濃いグレーのために背景と同化して見えなくなってしまいました
プロシージャの区分線の色を変更する方法ってありませんか?
プロシージャの区分線の色を変更する方法ってありませんか?
537デフォルトの名無しさん
2018/03/26(月) 13:23:49.36ID:I0XgyLKy538デフォルトの名無しさん
2018/03/26(月) 13:29:25.15ID:WZ1ZCWjW 300万の製品を10年使われると年間30万、月2万5千円だろ。
だったら月2万5千円で最新バージョンが使い続けられるといいのだがな。
アップデートが途中で打ち切られるので未だにXPがあるんだよな。
XPで何でもできるならそれでもいいんだが、新しいソフトはXPサポートしないしな。
300万は微妙すぎる金額だよな。
まあ微妙だからこそ、その価格に集中するんだろうけど。
だったら月2万5千円で最新バージョンが使い続けられるといいのだがな。
アップデートが途中で打ち切られるので未だにXPがあるんだよな。
XPで何でもできるならそれでもいいんだが、新しいソフトはXPサポートしないしな。
300万は微妙すぎる金額だよな。
まあ微妙だからこそ、その価格に集中するんだろうけど。
539デフォルトの名無しさん
2018/03/26(月) 13:31:09.84ID:WZ1ZCWjW 代々受け継がれてるExcelのシートも結構あって、そこで問題になってるのが情報の共有なんだよな。
540デフォルトの名無しさん
2018/03/26(月) 13:56:24.07ID:Fzg6eq8C 小はともかく中規模の事業所はデータの整理も進んできてる
古いデータを必要な物からデータベースに落とし込んで再利用可能にしてる
それをやらないと競争に勝てないんで
古いデータを必要な物からデータベースに落とし込んで再利用可能にしてる
それをやらないと競争に勝てないんで
541デフォルトの名無しさん
2018/03/26(月) 22:38:29.48ID:RlMBpq5I むしろ小規模ならクラウド上に乗っけて
GITとかで管理すればいいんじゃないの?
GITとかで管理すればいいんじゃないの?
542デフォルトの名無しさん
2018/03/27(火) 00:06:28.13ID:i+K8FLsM REST APIをコールしたいんだがVBAだとどんな選択肢がある?
IEインスタンス使う方法以外で
IEインスタンス使う方法以外で
543デフォルトの名無しさん
2018/03/27(火) 07:54:36.52ID:/jbLr42o >>525
その辺のパッケージにマトモなBI作ってない企業は出力したデータをExcelで加工する仕事がある
その辺のパッケージにマトモなBI作ってない企業は出力したデータをExcelで加工する仕事がある
544デフォルトの名無しさん
2018/03/27(火) 08:48:00.11ID:OGHJWfFq >>536
誰もわかんないですか?
誰もわかんないですか?
545デフォルトの名無しさん
2018/03/27(火) 09:00:02.17ID:Rlp7FXcd ID:OGHJWfFq の頭の中では…
なぜ私が質問したのにみんなスルーしてるの!
私が質問したら答えるのが当然でしょ!
答えるのが当然なのに答えないってことは、つまり知らないって事よね!?
↓output
>>544 誰もわかんないですか?
なぜ私が質問したのにみんなスルーしてるの!
私が質問したら答えるのが当然でしょ!
答えるのが当然なのに答えないってことは、つまり知らないって事よね!?
↓output
>>544 誰もわかんないですか?
546デフォルトの名無しさん
2018/03/27(火) 09:52:14.28ID:se4xCVEM547デフォルトの名無しさん
2018/03/27(火) 11:09:50.91ID:nMHUA4Cr >>542
Application.WorksheetFunction.WebService()
Application.WorksheetFunction.WebService()
548デフォルトの名無しさん
2018/03/27(火) 12:10:18.56ID:Z1ln/9g0 >>545
いえ、わかんないの?って感じで煽ったらそれぐらい知ってるわ!ってノリで答えてくれる人が出てくるかなと思いまして
いえ、わかんないの?って感じで煽ったらそれぐらい知ってるわ!ってノリで答えてくれる人が出てくるかなと思いまして
549デフォルトの名無しさん
2018/03/27(火) 12:20:24.49ID:nnyxYnJQ お前ら関係ない事まで答えたがるくせにw
何変ないじり方してんだよw
何変ないじり方してんだよw
550デフォルトの名無しさん
2018/03/27(火) 22:07:01.34ID:8sNHT6Rv Dim c As Byte
For c = 1 To 43
処理
Next c
For c = 43 To 1 Step -1
ここでオーバーフローのエラーになります。cの中身は44でByteの範囲内です。
エラーになる原因を教えてください。
For c = 1 To 43
処理
Next c
For c = 43 To 1 Step -1
ここでオーバーフローのエラーになります。cの中身は44でByteの範囲内です。
エラーになる原因を教えてください。
551デフォルトの名無しさん
2018/03/27(火) 22:46:58.40ID:N/whD29M c = -1
でもオーバーフロー
Byte型にマイナスがだめ
でもオーバーフロー
Byte型にマイナスがだめ
552デフォルトの名無しさん
2018/03/27(火) 22:48:09.36 ケチケチしないでLong使えやwwwww
553デフォルトの名無しさん
2018/03/27(火) 22:48:40.35ID:8sNHT6Rv ありがとうございます。型かえます。
554デフォルトの名無しさん
2018/03/28(水) 03:53:43.79ID:Cdw31wh4 >>553
いいってことよ(´・ω・`)b
いいってことよ(´・ω・`)b
555555
2018/03/28(水) 03:54:06.82ID:Cdw31wh4 555げっち(´・ω・`)b
556デフォルトの名無しさん
2018/03/28(水) 21:27:49.05ID:b61/mHBH557デフォルトの名無しさん
2018/03/28(水) 21:33:27.08ID:fW+sJxWu ぐぐってみたら10年以上前からなんやねんこれってなってる
ttps://www.ozgrid.com/forum/forum/help-forums/excel-general/66761-overflow-error-in-for-loop-stepping-backwards-with-byte
ttps://www.ozgrid.com/forum/forum/help-forums/excel-general/66761-overflow-error-in-for-loop-stepping-backwards-with-byte
558デフォルトの名無しさん
2018/03/28(水) 21:39:46.02ID:b61/mHBH >>557
ありがと。まぁループ変数にByte型を使うなって事で ┐(´д`)┌ヤレヤレ
ありがと。まぁループ変数にByte型を使うなって事で ┐(´д`)┌ヤレヤレ
559デフォルトの名無しさん
2018/03/28(水) 21:48:47.59ID:c16Hwi83 For文の内部処理で-1をバイト型にキャストしようとして詰んでしまってるんじゃなかろうか
560デフォルトの名無しさん
2018/03/28(水) 22:58:28.63ID:b61/mHBH Step -1 の-1をDim c As Byte のByte型に合わせようとしたけど、Byte型では
範囲外 オーバーフローだぞ…と
なるほど
範囲外 オーバーフローだぞ…と
なるほど
561デフォルトの名無しさん
2018/03/28(水) 23:05:20.91ID:qqTeUvjF Variaant型変数を宣言して整数を代入した場合
Dim i
i = 65535
i = i + 1
して65536にしてもオーバーフローエラーにはなりませんでした。
Variant型変数の整数の内部表現はLongが標準なんでしょうか?
Dim i
i = 65535
i = i + 1
して65536にしてもオーバーフローエラーにはなりませんでした。
Variant型変数の整数の内部表現はLongが標準なんでしょうか?
562デフォルトの名無しさん
2018/03/29(木) 01:39:16.45ID:1S4zmkyv >>561
いっぺんヘルプ読んでみ
ttps://msdn.microsoft.com/ja-jp/vba/language-reference-vba/articles/variant-data-type
いっぺんヘルプ読んでみ
ttps://msdn.microsoft.com/ja-jp/vba/language-reference-vba/articles/variant-data-type
563デフォルトの名無しさん
2018/03/29(木) 03:39:40.96ID:Vz9b93Ky 急にオートメーションエラーが発生するようになったんだが。。。
564563
2018/03/29(木) 03:47:53.56ID:Vz9b93Ky ググったところ
以下のリンク見て、動くようにはなったが、納得できない感じ
ttps://social.msdn.microsoft.com/Forums/ja-JP/1522c74b-17e7-402d-8a87-2d1a6af1feab/excel-2016?forum=vbajp
Windows Update で動かなくなるとか勘弁
以下のリンク見て、動くようにはなったが、納得できない感じ
ttps://social.msdn.microsoft.com/Forums/ja-JP/1522c74b-17e7-402d-8a87-2d1a6af1feab/excel-2016?forum=vbajp
Windows Update で動かなくなるとか勘弁
565デフォルトの名無しさん
2018/03/29(木) 20:05:15.88ID:YuebNQaY listviewで教えてください
幅を自動調整したい時、ぐぐると「widthプロパティを-1か-2にすべし」と書いてあるのですが、
やってみると「プロパティの値が不正です」とエラーになります。
フォームエディタのプロパティ画面でwidthを直接設定しようとしたら、そもそも「0以上の値を
入力してください」と言われてしまいました。
listviewの仕様が変わるか何かあったのでしょうか。
それとも、実は同名の別のコントロールなのでしょうか。
listview事態は、ツールボックスを右クリックしてその他のコントロールから
Microsoft ListView Control, version 6.0
というのを有効にしています
幅を自動調整したい時、ぐぐると「widthプロパティを-1か-2にすべし」と書いてあるのですが、
やってみると「プロパティの値が不正です」とエラーになります。
フォームエディタのプロパティ画面でwidthを直接設定しようとしたら、そもそも「0以上の値を
入力してください」と言われてしまいました。
listviewの仕様が変わるか何かあったのでしょうか。
それとも、実は同名の別のコントロールなのでしょうか。
listview事態は、ツールボックスを右クリックしてその他のコントロールから
Microsoft ListView Control, version 6.0
というのを有効にしています
566デフォルトの名無しさん
2018/03/30(金) 07:00:19.72ID:r/zfsTLq こんなに詳しいならVBAなんかじゃなくてドットNETに移行したら?
出来る範囲も桁違いに多いし技術的にはVBAとそんなに変わらんじゃん
そう言うわけではないの?
出来る範囲も桁違いに多いし技術的にはVBAとそんなに変わらんじゃん
そう言うわけではないの?
567デフォルトの名無しさん
2018/03/30(金) 07:10:50.00ID:MnRWcQoL568デフォルトの名無しさん
2018/03/30(金) 07:25:23.82ID:r/zfsTLq そうじゃなくてエクセルを使う必要なんてないんじゃないのって事です
.netでもエクセル以上の事も出来るし
エクセルの制約がない分簡単な気がするんだけど
しかもコード的にも少ししか変わらないし
.netでもエクセル以上の事も出来るし
エクセルの制約がない分簡単な気がするんだけど
しかもコード的にも少ししか変わらないし
569デフォルトの名無しさん
2018/03/30(金) 07:55:52.10ID:M36Hc3ht 処理対象がエクセルならvbaのほうが手軽
そうじゃないなら他の言語のほうがいい
とか言いつつ俺はエクセル処理にpowershell使ってるけど
そうじゃないなら他の言語のほうがいい
とか言いつつ俺はエクセル処理にpowershell使ってるけど
570デフォルトの名無しさん
2018/03/30(金) 08:07:18.25ID:O1RjHycM 個人ならいいけど会社だとエクセル使いの方が多いから合わせないとならんしな
スマートで無いやり方をしているのは思いつかないからではなく他に方法がないからなのであって、
その代替手段は「君だけが思いつける冴えたアイディア」ではないんだよ
スマートで無いやり方をしているのは思いつかないからではなく他に方法がないからなのであって、
その代替手段は「君だけが思いつける冴えたアイディア」ではないんだよ
571デフォルトの名無しさん
2018/03/30(金) 08:24:56.25ID:MnRWcQoL >>568
> そうじゃなくてエクセルを使う必要なんてないんじゃないのって事です
お前のところがそう言う環境ならそうすればいい
> .netでもエクセル以上の事も出来るし
Excelを越える操作性を持つアプリを開発できるの?
>>569
> とか言いつつ俺はエクセル処理にpowershell使ってるけど
PowerShellは癖あるけど慣れると楽だよね
Windows 10 に移行して PowerShell 5.0 の class や enum が使えるようになったから嬉しい
と思ってたら Excel も 2013 → 2016 になってて以前のスクリプトがエラーになる...
新年度はまずはこの修正からだな
> そうじゃなくてエクセルを使う必要なんてないんじゃないのって事です
お前のところがそう言う環境ならそうすればいい
> .netでもエクセル以上の事も出来るし
Excelを越える操作性を持つアプリを開発できるの?
>>569
> とか言いつつ俺はエクセル処理にpowershell使ってるけど
PowerShellは癖あるけど慣れると楽だよね
Windows 10 に移行して PowerShell 5.0 の class や enum が使えるようになったから嬉しい
と思ってたら Excel も 2013 → 2016 になってて以前のスクリプトがエラーになる...
新年度はまずはこの修正からだな
572デフォルトの名無しさん
2018/03/30(金) 08:42:59.54ID:+sennHug ExcelはUIとしては優れているじゃないか。
これを利用しない手はない
これを利用しない手はない
573デフォルトの名無しさん
2018/03/30(金) 08:51:55.14ID:GVvaPPCb VisualStudioにOfficeSDKがあるからアプリとして簡単に作れると思うけど
豊富なオプジェクトツールもあるし
スピード速いし制約が少なくて簡単だと思うけどね
まぁ好きなの使えば良いんだけどね
豊富なオプジェクトツールもあるし
スピード速いし制約が少なくて簡単だと思うけどね
まぁ好きなの使えば良いんだけどね
574デフォルトの名無しさん
2018/03/30(金) 11:47:00.45ID:+sennHug 簡単にっていうレベル感によると思うけど、どんなもん?
575デフォルトの名無しさん
2018/03/30(金) 13:28:47.23ID:rW3gxcuW576デフォルトの名無しさん
2018/03/30(金) 13:37:44.27ID:O1RjHycM 簡単に(ただしVisual Studio使用許可を会社に貰う労力は除く)
577デフォルトの名無しさん
2018/03/30(金) 17:44:57.97 Excelは宇宙
578デフォルトの名無しさん
2018/03/30(金) 20:29:10.14ID:Gon83GvH VSのライセンスを事務屋の分まで手配してくれる会社ってどんなところだろうか。
579デフォルトの名無しさん
2018/03/30(金) 20:50:22.47ID:MnRWcQoL >>573
VisualStudio OfficeSDKでググってもOffice Developer Tools(Visual Studio Tools for Office (VSTO))の話とかしか出てこない
お前さんほんとに使ったことある?
VisualStudio OfficeSDKでググってもOffice Developer Tools(Visual Studio Tools for Office (VSTO))の話とかしか出てこない
お前さんほんとに使ったことある?
580デフォルトの名無しさん
2018/03/30(金) 21:08:20.75ID:PhjyEwlD >>568
>しかもコード的にも少ししか変わらないし
お前VB.Net仕事で使ったことないだろ
いくらなんでも舐め過ぎだ
コード的にも少ししか変わらない?
本当にうわべしか見てないのによくそんなことが言えるな
文法的にほぼ同じというだけで
内容的には同じフレームワークのC#とかの方に遥かに近いわ
お前、そんなこと言いながら.Net系の仕事に入ったら一発で首飛ぶぞ
>しかもコード的にも少ししか変わらないし
お前VB.Net仕事で使ったことないだろ
いくらなんでも舐め過ぎだ
コード的にも少ししか変わらない?
本当にうわべしか見てないのによくそんなことが言えるな
文法的にほぼ同じというだけで
内容的には同じフレームワークのC#とかの方に遥かに近いわ
お前、そんなこと言いながら.Net系の仕事に入ったら一発で首飛ぶぞ
581デフォルトの名無しさん
2018/03/30(金) 21:18:35.20ID:gQAlhwsH582デフォルトの名無しさん
2018/03/30(金) 22:28:42.55ID:rpshcViU >>580
なんでそんなに必死なの?
なんでそんなに必死なの?
583デフォルトの名無しさん
2018/03/30(金) 22:41:59.65ID:NsVRzYaI えっと、OpenXMLのことかな?
584デフォルトの名無しさん
2018/03/30(金) 23:23:13.75ID:7HVZnQv9 教えてください。
特定のフォルダの中にxlsファイルが一つと、xlsmファイルがあります。
これはシステムの前提です。
xlsファイルが2つ以上ある場合はエラーが出るよう、以下のように作りました。
ThisPass = ThisWorkbook.Path
With CreateObject("Scripting.FileSystemObject")
For Each ff In .GetFolder(ThisWorkbook.Path).Files
If LCase(.GetExtensionName(ff.Path)) = "xls" Then N = N + 1
Next
End With
If N > 1 Then
MsgBox "xlsファイルが" & N & "個見つかりました。" & vbCrLf & _
"xlsファイルは1ファイルだけおいてください。" & vbCrLf & _
"プログラムを終了します。 "
Application.Quit
ThisWorkbook.Close SaveChanges:=False
End If
質問ですが、
そのフォルダの中に一つだけあるxlsファイル名を取得するには
どうしたら良いでしょうか。
"*.xls"の条件に合うファイル名を返したいです。
特定のフォルダの中にxlsファイルが一つと、xlsmファイルがあります。
これはシステムの前提です。
xlsファイルが2つ以上ある場合はエラーが出るよう、以下のように作りました。
ThisPass = ThisWorkbook.Path
With CreateObject("Scripting.FileSystemObject")
For Each ff In .GetFolder(ThisWorkbook.Path).Files
If LCase(.GetExtensionName(ff.Path)) = "xls" Then N = N + 1
Next
End With
If N > 1 Then
MsgBox "xlsファイルが" & N & "個見つかりました。" & vbCrLf & _
"xlsファイルは1ファイルだけおいてください。" & vbCrLf & _
"プログラムを終了します。 "
Application.Quit
ThisWorkbook.Close SaveChanges:=False
End If
質問ですが、
そのフォルダの中に一つだけあるxlsファイル名を取得するには
どうしたら良いでしょうか。
"*.xls"の条件に合うファイル名を返したいです。
585デフォルトの名無しさん
2018/03/30(金) 23:26:17.70ID:Edi5ddFk Dir関数を使えば良いんじゃないの
586デフォルトの名無しさん
2018/03/30(金) 23:29:47.99ID:BIk3pBCX 既にfso使ってるならそのif分の中でGetBaseNameで取得すりゃいいのでわ
酔っ払ってんのか?
酔っ払ってんのか?
587デフォルトの名無しさん
2018/03/30(金) 23:31:17.74ID:7HVZnQv9588デフォルトの名無しさん
2018/03/30(金) 23:34:41.59 >>584
If 〜 Then N = N + 1 を複数行にして
If 〜 Then
If N = 0 Then strFirstFileName = ff.Name
N = N + 1
End If
にすればいい
If 〜 Then N = N + 1 を複数行にして
If 〜 Then
If N = 0 Then strFirstFileName = ff.Name
N = N + 1
End If
にすればいい
589デフォルトの名無しさん
2018/03/30(金) 23:46:29.02ID:7HVZnQv9590デフォルトの名無しさん
2018/03/31(土) 09:26:07.32ID:H7P83KyH 他のテキストエディタなどで書いたコードをvbeに貼り付けるのってダメなんでしょうか?
ダイアログを表示するのに文字列を直接指定している部分が引っかかっているらしくて
vbeの方で同じ文字列を再度打ち直すと正常に動作してくれるのですが
原因なにかわかりませんか?
ダイアログを表示するのに文字列を直接指定している部分が引っかかっているらしくて
vbeの方で同じ文字列を再度打ち直すと正常に動作してくれるのですが
原因なにかわかりませんか?
591デフォルトの名無しさん
2018/03/31(土) 09:58:16.23ID:XNLdwQIM >>590
ユニコード
ユニコード
592デフォルトの名無しさん
2018/03/31(土) 16:00:53.86ID:H7P83KyH ゴミvbにunicode非対応とかなんでこんなのが現代に君臨してんだろう
ありがとうございました
ありがとうございました
593デフォルトの名無しさん
2018/03/31(土) 16:31:10.15ID:qcKBqECv >>592
いいってことよ(´・ω・`)b
いいってことよ(´・ω・`)b
594デフォルトの名無しさん
2018/04/01(日) 14:16:21.26ID:YzkMtc7h VBAのテキストボックスの .LineCount ってどういう時に使いますか?
595デフォルトの名無しさん
2018/04/01(日) 14:19:52.40ID:YzkMtc7h >>594
というのも、例えばInteger型の変数iに代入しようとして、
i=テキストボックス名.LineCount
ってやると、
実行時エラー '2185':
LineCountプロパティの値を取得できません。このコントロールはフォーカスを持つ必要
があります。SetFocusメソッドによって、このプロパティまたはメソッドが参照されるま
えにフォーカスが移動しました。
ってエラーになったもので。
というのも、例えばInteger型の変数iに代入しようとして、
i=テキストボックス名.LineCount
ってやると、
実行時エラー '2185':
LineCountプロパティの値を取得できません。このコントロールはフォーカスを持つ必要
があります。SetFocusメソッドによって、このプロパティまたはメソッドが参照されるま
えにフォーカスが移動しました。
ってエラーになったもので。
596デフォルトの名無しさん
2018/04/01(日) 16:31:21.48ID:OrI5htLK >>595
さあね、SetFocusとセットで使って問題ないシーンだったら使えばいいんじゃね?
なんでそういう作りになってるかはしらんけど、歴史的な理由ってやつじゃね?
LineCountは全部品共通で使い回してる内部変数を参照していて
フォーカスが当たってるときだけ値を保持してるとか
さあね、SetFocusとセットで使って問題ないシーンだったら使えばいいんじゃね?
なんでそういう作りになってるかはしらんけど、歴史的な理由ってやつじゃね?
LineCountは全部品共通で使い回してる内部変数を参照していて
フォーカスが当たってるときだけ値を保持してるとか
597デフォルトの名無しさん
2018/04/02(月) 00:58:07.54ID:4AdYvMWY Ruby で、Selenium WebDriver で、ブラウザの自動操作をすると、
入力コントロールに入力するには、フォーカスが必要だったかな?
フォーカスは、キーボードなどの入力装置を独占するから、
OS内で同時に、1つのアプリの、1つのコントロールしか持てない
入力コントロールに入力するには、フォーカスが必要だったかな?
フォーカスは、キーボードなどの入力装置を独占するから、
OS内で同時に、1つのアプリの、1つのコントロールしか持てない
598デフォルトの名無しさん
2018/04/02(月) 12:20:32.51ID:7SJzoey2 それは単なるwebdriverの仕様あるいは方針にすぎん
599デフォルトの名無しさん
2018/04/02(月) 13:41:52.74ID:zMeLik1V 誰か教えてください。いくら調べても分からなかった・・・
近似曲線を引くマクロを書いて、ボタンに登録してるのですが、この動作を行うと
1回目の曲線が変な形で残ってしまう。
1回目の曲線を消したいのですが、どうしても消し方がわからない。
Private Sub CommandButton1_Click()
Dim num As Integer
num = MovingAvgUF.TextBox1.Value
ActiveSheet.ChartObjects(1).Activate
ActiveChart.ChartArea.Select
ActiveChart.FullSeriesCollection(1).Trendlines.Add
ActiveChart.FullSeriesCollection(1).Trendlines(1).Select
With Selection
.Type = xlMovingAvg
.Period = num
End With
With Selection.Format.Line
.ForeColor.RGB = RGB(0, 0, 0)
.Weight = 1.5
End With
Unload MovingAvgUF
Range("A3").Select
End Sub
近似曲線を引くマクロを書いて、ボタンに登録してるのですが、この動作を行うと
1回目の曲線が変な形で残ってしまう。
1回目の曲線を消したいのですが、どうしても消し方がわからない。
Private Sub CommandButton1_Click()
Dim num As Integer
num = MovingAvgUF.TextBox1.Value
ActiveSheet.ChartObjects(1).Activate
ActiveChart.ChartArea.Select
ActiveChart.FullSeriesCollection(1).Trendlines.Add
ActiveChart.FullSeriesCollection(1).Trendlines(1).Select
With Selection
.Type = xlMovingAvg
.Period = num
End With
With Selection.Format.Line
.ForeColor.RGB = RGB(0, 0, 0)
.Weight = 1.5
End With
Unload MovingAvgUF
Range("A3").Select
End Sub
600デフォルトの名無しさん
2018/04/02(月) 16:44:10.21ID:Ts/JiFXW >>599
実行のたびにAddしているので、新しく追加されているからでしょう
たぶん移動平均の期間を可変にしたいのだろうから
ない場合だけAdd、すでにあれば既存のパラメーターを変更するようにする
あとActivateとかSelectionは無駄なのでやめる
Dim num As Integer
Dim graph
num = MovingAvgUF.TextBox1.Value
Set graph= Worksheets(1).ChartObjects(1).Chart.SeriesCollection(1)
If graph.Trendlines.Count = 0 Then
With graph.Trendlines.Add
.Type = xlMovingAvg
.Period = num
.Format.Line.ForeColor.RGB = RGB(100, 0, 0)
.Format.Line.Weight = 1.5
End With
Else
graph.Trendlines(1).Period = num
End If
Unload MovingAvgUF
これでどうでしょう
グラフ指定(Set句のところ)はそっちの環境に合わせて書き換えてね
実行のたびにAddしているので、新しく追加されているからでしょう
たぶん移動平均の期間を可変にしたいのだろうから
ない場合だけAdd、すでにあれば既存のパラメーターを変更するようにする
あとActivateとかSelectionは無駄なのでやめる
Dim num As Integer
Dim graph
num = MovingAvgUF.TextBox1.Value
Set graph= Worksheets(1).ChartObjects(1).Chart.SeriesCollection(1)
If graph.Trendlines.Count = 0 Then
With graph.Trendlines.Add
.Type = xlMovingAvg
.Period = num
.Format.Line.ForeColor.RGB = RGB(100, 0, 0)
.Format.Line.Weight = 1.5
End With
Else
graph.Trendlines(1).Period = num
End If
Unload MovingAvgUF
これでどうでしょう
グラフ指定(Set句のところ)はそっちの環境に合わせて書き換えてね
601デフォルトの名無しさん
2018/04/02(月) 17:15:58.69ID:zMeLik1V602デフォルトの名無しさん
2018/04/03(火) 12:12:56.67ID:eJeJFdNC VB6で計算ボタンをボタンを押すと各フォームのテキストボックスの値とか使っていろいろ自動で計算してフォームが勝手に閉じられるんですが、デバッグで1個ずつ追ってくと途中で止まってしまうのって仕方ないんですかね?
gotfocusやらclickとかで途中で無理やりやってるとは思うですけど、通る順序を追うにはどうしたらいいですか?
gotfocusやらclickとかで途中で無理やりやってるとは思うですけど、通る順序を追うにはどうしたらいいですか?
603デフォルトの名無しさん
2018/04/03(火) 13:11:49.11ID:Coyy9Cz8 VB6
604デフォルトの名無しさん
2018/04/03(火) 21:25:59.19ID:q0sRpwvy A1とB1は空白C1からZ1まで日付型がはいっています。
3月分の最後
20180330と2018331がないので20180328を拾いたい。
4月分の初め
20180401と20180402が無いので20180403を拾いたい。
日付型------------------------------
空白 (A1)
空白 (B1)
20180325(C1)
20180326(D1)
20180328(E1)
20180403(F1)
20180405(G1)
20180406(H1)
・
・
・
20180505
------------------------------------------
Sub 日付
Dim 最小数 As long, 最大数 As long
最小数= WotksheetFunction.Dmin(Rnge("1:1"),range("C1"),"200180401")
最大数= WotksheetFunction.Dmin(Rnge("1:1"),range("C1"),"200180331")
End Sub
----------------------------------------
これだとうまくいかない・・・・。
何か間違っているのでしょか・・・?
3月分の最後
20180330と2018331がないので20180328を拾いたい。
4月分の初め
20180401と20180402が無いので20180403を拾いたい。
日付型------------------------------
空白 (A1)
空白 (B1)
20180325(C1)
20180326(D1)
20180328(E1)
20180403(F1)
20180405(G1)
20180406(H1)
・
・
・
20180505
------------------------------------------
Sub 日付
Dim 最小数 As long, 最大数 As long
最小数= WotksheetFunction.Dmin(Rnge("1:1"),range("C1"),"200180401")
最大数= WotksheetFunction.Dmin(Rnge("1:1"),range("C1"),"200180331")
End Sub
----------------------------------------
これだとうまくいかない・・・・。
何か間違っているのでしょか・・・?
605デフォルトの名無しさん
2018/04/03(火) 21:46:25.59ID:UZjK1Wan 何がしたいのか説明を読んでもコードを見てもさっぱりわからん
わからんけどエスパーすると”201803”で検索して最後に見つかったセルと”201804”で検索して最初に見つかったセルでいいんじゃないの?
わからんけどエスパーすると”201803”で検索して最後に見つかったセルと”201804”で検索して最初に見つかったセルでいいんじゃないの?
606デフォルトの名無しさん
2018/04/04(水) 08:15:37.03ID:cLM6HPyb607デフォルトの名無しさん
2018/04/04(水) 11:56:03.28ID:k8docH3r MID("20180325",5,2)で"03"が取り出せるから、それで判断すればいいんじゃないの。
色んな日付上の制約があるならLEFT(),MID(),RIGHT()使い分けで。
色んな日付上の制約があるならLEFT(),MID(),RIGHT()使い分けで。
608デフォルトの名無しさん
2018/04/04(水) 12:58:19.17ID:ZiMW+8i0 >>607
ありがとうございます。
その方法がありましたね・・・。
勉強になります。
------------------------------------------------------------
関数
{=MIN(IF(20180201<=1:1,1:1,""))}
{=MAX(IF(20180231>=1:1,1:1,""))}
これだとうまく行きますが、VBAだとどうやって作るのかなと思っていました。
ありがとうございます。
その方法がありましたね・・・。
勉強になります。
------------------------------------------------------------
関数
{=MIN(IF(20180201<=1:1,1:1,""))}
{=MAX(IF(20180231>=1:1,1:1,""))}
これだとうまく行きますが、VBAだとどうやって作るのかなと思っていました。
609デフォルトの名無しさん
2018/04/04(水) 13:11:13.67ID:A+wsnEra 素直にfor回せ
610デフォルトの名無しさん
2018/04/04(水) 13:19:04.73ID:ZhVuw5lC611デフォルトの名無しさん
2018/04/04(水) 13:36:26.96ID:p0Y8un4q 自動車業界で例えると
1、トヨタ、日産、ホンダ
2、1の下請け企業名
3、2の下請け企業名
4、3の下請け企業名
.
.
.
としたとき、2のAの企業名を入力したらそこからの下請け企業を抽出したいんですが、その場合のエクセルのシートの作り方をどのように作れば効率がいいですか?
1、トヨタ、日産、ホンダ
2、1の下請け企業名
3、2の下請け企業名
4、3の下請け企業名
.
.
.
としたとき、2のAの企業名を入力したらそこからの下請け企業を抽出したいんですが、その場合のエクセルのシートの作り方をどのように作れば効率がいいですか?
612デフォルトの名無しさん
2018/04/04(水) 16:08:01.72ID:v9gnJiNk シートAAAにあるテーブル1の種目という項目のデータを
ComboBox1のリストに代入するのは下記マクロでできました
Private Sub UserForm_Initialize()
Dim KV As Range
Set KV = Sheets("AAA").Range("テーブル1[種目]")
With ComboBox1
For i = 1 To KV.Rows.Count
.AddItem KV(i)
Next i
End With
End Sub
さて、ここからが質問です
テーブル1にフィルターをかけた後に、フィルターで残った種目という項目のデータを
ComboBox1のリストに代入するのはどうしたら良いのでしょうか?
よろしくお願い致します
ComboBox1のリストに代入するのは下記マクロでできました
Private Sub UserForm_Initialize()
Dim KV As Range
Set KV = Sheets("AAA").Range("テーブル1[種目]")
With ComboBox1
For i = 1 To KV.Rows.Count
.AddItem KV(i)
Next i
End With
End Sub
さて、ここからが質問です
テーブル1にフィルターをかけた後に、フィルターで残った種目という項目のデータを
ComboBox1のリストに代入するのはどうしたら良いのでしょうか?
よろしくお願い致します
613デフォルトの名無しさん
2018/04/04(水) 16:56:39.61ID:JVI42cK6 伝票番号 顧客名 商品名 数量 価格 金額
というデータがあり、同じ伝票番号に3〜6行の取引データがあります
(1枚の伝票に複数の商品の販売記録がある)
同じ伝票番号の行を、1行残して削除し、1伝票番号に1行というデータに作り替えたいと考えてます。
対象となる行数は50万行
今は、ある伝票番号の一番上の次の行と
その伝票番号の一番下の行を範囲で削除し、
この処理を繰り返しているのですが、とても時間がかかります
どういう方法なら早く処理できるでしょうか?
というデータがあり、同じ伝票番号に3〜6行の取引データがあります
(1枚の伝票に複数の商品の販売記録がある)
同じ伝票番号の行を、1行残して削除し、1伝票番号に1行というデータに作り替えたいと考えてます。
対象となる行数は50万行
今は、ある伝票番号の一番上の次の行と
その伝票番号の一番下の行を範囲で削除し、
この処理を繰り返しているのですが、とても時間がかかります
どういう方法なら早く処理できるでしょうか?
614デフォルトの名無しさん
2018/04/04(水) 17:13:35.91ID:2HxBBF0q615デフォルトの名無しさん
2018/04/04(水) 17:27:12.13ID:2HxBBF0q >>613
単純に重複を削除したいだけでしょうか?
ぶら下がってるデータを1つにまとめつつでしょうか?
単純に重複削除ならフィルターでできたはず
もしくはRemoveDuplicatesというメソッドで
つかい方はこちら
https://msdn.microsoft.com/ja-jp/vba/excel-vba/articles/range-removeduplicates-method-excel
単純に重複を削除したいだけでしょうか?
ぶら下がってるデータを1つにまとめつつでしょうか?
単純に重複削除ならフィルターでできたはず
もしくはRemoveDuplicatesというメソッドで
つかい方はこちら
https://msdn.microsoft.com/ja-jp/vba/excel-vba/articles/range-removeduplicates-method-excel
616デフォルトの名無しさん
2018/04/04(水) 18:13:35.11ID:JVI42cK6617デフォルトの名無しさん
2018/04/08(日) 00:48:16.79ID:GhjqeU3J 質問です。
Dim Wb2 As Workbook
buf = Dir(ThisPass & "\" & strfirstfilename)
Do While Len(buf) > 0
If LCase(buf) Like "*.xls" Then
buf2 = Left(buf, InStrRev(buf, ".") - 1)
End If
buf = Dir()
Loop
Set Wb2 = Workbooks(strfirstfilename) ←”インデックスが有効範囲にありません”
というエラーが発生します。
strfirstfilenameには”AAA_original-コピー.xls”が入っており、ここまではOKです。
なぜインデックスが有効範囲にないのか・・・。
どなたか教えてください。
よろしくお願いします。
Dim Wb2 As Workbook
buf = Dir(ThisPass & "\" & strfirstfilename)
Do While Len(buf) > 0
If LCase(buf) Like "*.xls" Then
buf2 = Left(buf, InStrRev(buf, ".") - 1)
End If
buf = Dir()
Loop
Set Wb2 = Workbooks(strfirstfilename) ←”インデックスが有効範囲にありません”
というエラーが発生します。
strfirstfilenameには”AAA_original-コピー.xls”が入っており、ここまではOKです。
なぜインデックスが有効範囲にないのか・・・。
どなたか教えてください。
よろしくお願いします。
618デフォルトの名無しさん
2018/04/08(日) 01:24:05.18ID:bco3gmLh >>617
ワークブックファイルを開いてないから
ワークブックファイルを開いてないから
619デフォルトの名無しさん
2018/04/08(日) 02:53:42.68ID:SzguuQfE >>617
ファイルシステムの場所を示す「パス」はpassじゃなくてpathだよ
ファイルシステムの場所を示す「パス」はpassじゃなくてpathだよ
620デフォルトの名無しさん
2018/04/08(日) 07:04:38.01ID:U7ChR0a6 まとめるとこう
Set Wb2 = Workbooks.Open(ThisWorkbook.Path & "\" & strfirstfilename)
Set Wb2 = Workbooks.Open(ThisWorkbook.Path & "\" & strfirstfilename)
621デフォルトの名無しさん
2018/04/08(日) 11:56:26.77ID:GhjqeU3J622デフォルトの名無しさん
2018/04/08(日) 11:57:47.06ID:GhjqeU3J623デフォルトの名無しさん
2018/04/08(日) 11:59:21.51ID:GhjqeU3J >>620
このプログラムの直後に
Workbooks.Open (ThisPath & "\" & strfirstfilename)
があったので、それをsetの前に持ってきて成功しました。
ありがとうございました。
このプログラムの直後に
Workbooks.Open (ThisPath & "\" & strfirstfilename)
があったので、それをsetの前に持ってきて成功しました。
ありがとうございました。
624デフォルトの名無しさん
2018/04/08(日) 12:36:53.53ID:bco3gmLh >>620だと昔のExcelじゃ動かなかった歴史的経緯がある
625デフォルトの名無しさん
2018/04/08(日) 19:54:17.74ID:e7Arryer ダイアログシートって使ってる人おる?
ちょっと前客先で初めて見てたまげたわ
ちょっと前客先で初めて見てたまげたわ
626デフォルトの名無しさん
2018/04/09(月) 01:50:27.33ID:HvlaoHdk >>624
openだと開かない?って事??何故?
openだと開かない?って事??何故?
627デフォルトの名無しさん
2018/04/09(月) 06:17:53.49ID:aBFApcbH628デフォルトの名無しさん
2018/04/09(月) 08:06:45.50ID:+GOKj8c/629デフォルトの名無しさん
2018/04/09(月) 09:59:01.14ID:4rd3h0yy 質問です。
ピボットテーブルのフィルターで特定の日付を絞りこみたいのですがどうしたら良いでしょうか?
マクロの記録を使用したり、「ピボットテーブル フィルター 日付」などで検索しましたが出来ませんでした。
関係があるかはわかりませんが既存の日付フィルターも選択出来ない状態になっています。
ご存知の方がいれば教えていただけないでしょうか?
よろしくお願いいたします。
ピボットテーブルのフィルターで特定の日付を絞りこみたいのですがどうしたら良いでしょうか?
マクロの記録を使用したり、「ピボットテーブル フィルター 日付」などで検索しましたが出来ませんでした。
関係があるかはわかりませんが既存の日付フィルターも選択出来ない状態になっています。
ご存知の方がいれば教えていただけないでしょうか?
よろしくお願いいたします。
630デフォルトの名無しさん
2018/04/09(月) 10:59:34.52ID:0O8XR8PB 質問です とか 教えてで始まる質問をするのは厚かましい馬鹿ばっか
631デフォルトの名無しさん
2018/04/09(月) 12:37:19.47ID:VtsYOpX+ そーいうスレなので
632デフォルトの名無しさん
2018/04/09(月) 19:03:54.95ID:L4YqDawe >>629
それはもしかしてピボットテーブルを使わなくても出来る内容なんじゃないかと思えてならない
それはもしかしてピボットテーブルを使わなくても出来る内容なんじゃないかと思えてならない
633デフォルトの名無しさん
2018/04/09(月) 19:30:20.73ID:zGBk1vsP >>632
返信ありがとうございます。
仕事で使用しているのですが別シートにデータを入力して、ピボットテーブルの行エリアに型式、列エリアに出荷日と納品先を指定していて、翌日出荷分などを抽出したい状態です。
返信ありがとうございます。
仕事で使用しているのですが別シートにデータを入力して、ピボットテーブルの行エリアに型式、列エリアに出荷日と納品先を指定していて、翌日出荷分などを抽出したい状態です。
634デフォルトの名無しさん
2018/04/09(月) 20:11:24.02ID:p9GpoA3a635デフォルトの名無しさん
2018/04/09(月) 20:49:14.80ID:0O8XR8PB な?厚かましい馬鹿だろ?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★3 [蚤の市★]
- 中国側が首相答弁の撤回要求、日本側拒否 [夜のけいちゃん★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 映画「鬼滅の刃」の興行収入急減、日本行き航空券大量キャンセル…中国メディア報道 [蚤の市★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 「タワマン天国」に飛びつく若者…SNSに転がる「成功体験」に続けるのか 湾岸エリアの業者が語った現実 [蚤の市★]
- 【悲報】高市効果で「1ドル=160円」が相場へwwwwwwwwwwwwwwwwwwwwwwwwwwwww 止まらぬ高市円安💥💥 [871926377]
- 小川彩佳アナ「高市総理はここまで影響が出ることを想像して発言したんでしょうか」高市ソルジャー「!!!!(シュババババ)」 [931948549]
- 【悲報】おこめ券、9.5億円配布分のうち2.4億が経費、うちJAが1億円中抜き🤗高市ありがとう [359965264]
- FGOで好きなサーヴァントがアビゲイル、北斎、楊貴妃なんだが
- 自閉症が「んなっしょい」と連呼するお🏡
- 【悲報】高市有事で日本に同調する国、1つも現れないwwwwwwwwwwwwwww [603416639]
