!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ
ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ
※前スレ
Excel VBA 質問スレ Part70
https://mevius.5ch.net/test/read.cgi/tech/1616072923/
Excel VBA 質問スレ Part71
https://mevius.5ch.net/test/read.cgi/tech/1621914481/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part72
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (スププ Sdaa-x2SP)
2021/07/18(日) 08:42:15.37ID:KskL7bEXd710698 (ワッチョイ c95f-K0XX)
2021/08/29(日) 18:40:28.03ID:7BYV+8iF0711デフォルトの名無しさん (ワッチョイ 3d5f-9Am5)
2021/08/29(日) 19:03:27.49ID:FZqboG1a0 >>710
数式セルを値貼り付けするならなんで709じゃだめなん?
数式セルを値貼り付けするならなんで709じゃだめなん?
712698 (ワッチョイ c95f-K0XX)
2021/08/29(日) 19:06:25.69ID:7BYV+8iF0713デフォルトの名無しさん (ワッチョイ ae68-U7Lh)
2021/08/29(日) 19:29:10.08ID:sPGAkNt40 後だしぃ
714デフォルトの名無しさん (ブーイモ MMf6-hkn+)
2021/08/29(日) 19:29:59.26ID:sl9xswiTM rangeを配列に格納
配列内で特定セルに該当する部分を値に書き換えて
一気に貼り付ける
配列内で特定セルに該当する部分を値に書き換えて
一気に貼り付ける
715698 (ワッチョイ c95f-K0XX)
2021/08/29(日) 19:35:54.89ID:7BYV+8iF0 え…始めから飛び地ありの任意セルを選択した状態って書いてあるのに後出しと言われましても…
716デフォルトの名無しさん (ワッチョイ 4668-bRsM)
2021/08/29(日) 19:50:08.61ID:lED3Ocwo0 >>698
恐らくこれが一番早いと思います
飛び地で値でコピーペーストはできないし、
配列はしんどい
Sub Macro2()
Application.Calculation = xlCalculationManual ' 手動計算にする
Application.ScreenUpdating = False ' 描画を停止する
For Each Sc In Selection.SpecialCells(xlCellTypeFormulas, 23)
Sc.Value = Sc.Value
Next Sc
Application.Calculation = xlCalculationAutomatic ' 自動計算にする
Application.ScreenUpdating = True ' 描画を再開する
End Sub
>>711
要は
・選択部分を値にするマクロが欲しい
・値にする部分はフォーマットによって変わる
※社内で様々なフォーマットがあり、今はそれぞれを作り込む暇がないので「選択+値化」で逃がしている
という事なのだろう
>>714
飛び地ありで配列にうまく入れる方法ってあるのかな
恐らくこれが一番早いと思います
飛び地で値でコピーペーストはできないし、
配列はしんどい
Sub Macro2()
Application.Calculation = xlCalculationManual ' 手動計算にする
Application.ScreenUpdating = False ' 描画を停止する
For Each Sc In Selection.SpecialCells(xlCellTypeFormulas, 23)
Sc.Value = Sc.Value
Next Sc
Application.Calculation = xlCalculationAutomatic ' 自動計算にする
Application.ScreenUpdating = True ' 描画を再開する
End Sub
>>711
要は
・選択部分を値にするマクロが欲しい
・値にする部分はフォーマットによって変わる
※社内で様々なフォーマットがあり、今はそれぞれを作り込む暇がないので「選択+値化」で逃がしている
という事なのだろう
>>714
飛び地ありで配列にうまく入れる方法ってあるのかな
717デフォルトの名無しさん (JP 0H4d-U7Lh)
2021/08/29(日) 19:58:18.50ID:1aCvHSMxH ワークシート→配列は無関係なセルも一気に読み込んで、書き戻す時は1個ずつにしてもそこそこスピードアップできそうな気がする
718705 (ワッチョイ 868c-ylpg)
2021/08/29(日) 21:48:01.74ID:TcEoTH9E0 >>710
もう手間のかかる子だなぁw
Sub Macro5()
Application.Calculation = xlManual
Application.ScreenUpdating = False
myAddress = Split(Selection.SpecialCells(xlCellTypeFormulas, 23).Address, ",")
Dim temp()
For Each EE In myAddress
If Range(EE).Count = 1 Then
Range(EE).Value = Range(EE).Value
Else
temp = Range(EE)
Range(EE) = temp
End If
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
100万を超えるデータで動かすと何秒で終わるか教えてね
もう手間のかかる子だなぁw
Sub Macro5()
Application.Calculation = xlManual
Application.ScreenUpdating = False
myAddress = Split(Selection.SpecialCells(xlCellTypeFormulas, 23).Address, ",")
Dim temp()
For Each EE In myAddress
If Range(EE).Count = 1 Then
Range(EE).Value = Range(EE).Value
Else
temp = Range(EE)
Range(EE) = temp
End If
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
100万を超えるデータで動かすと何秒で終わるか教えてね
719デフォルトの名無しさん (ワッチョイ 4668-bRsM)
2021/08/29(日) 22:34:44.25ID:lED3Ocwo0 >>718
横だけど
Dim temp()
temp = Range(EE)
Range(EE) = temp
これは
Range(EE).value =Range(EE).value
じゃダメなの?
横だけど
Dim temp()
temp = Range(EE)
Range(EE) = temp
これは
Range(EE).value =Range(EE).value
じゃダメなの?
720デフォルトの名無しさん (ワッチョイ 8242-vQ3w)
2021/08/29(日) 22:40:30.11ID:zuaG9uH70 最後にそもそも値貼付けする理由がないとかいうオチが待ってそうだな
721705 (ワッチョイ 868c-ylpg)
2021/08/29(日) 23:13:06.85ID:TcEoTH9E0 >>719
あ!ほんとだ
配列という言葉にこだわっちゃって無駄なことをしてたねw
Sub Macro6()
Application.Calculation = xlManual
Application.ScreenUpdating = False
myAddress = Split(Selection.SpecialCells(xlCellTypeFormulas, 23).Address, ",")
For Each EE In myAddress
Range(EE).Value = Range(EE).Value
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
あ!ほんとだ
配列という言葉にこだわっちゃって無駄なことをしてたねw
Sub Macro6()
Application.Calculation = xlManual
Application.ScreenUpdating = False
myAddress = Split(Selection.SpecialCells(xlCellTypeFormulas, 23).Address, ",")
For Each EE In myAddress
Range(EE).Value = Range(EE).Value
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
722705 (ワッチョイ 868c-ylpg)
2021/08/29(日) 23:18:37.19ID:TcEoTH9E0 そのそもrelaxtoolsとかになかったっけw
確認してないけど
確認してないけど
723デフォルトの名無しさん (ワッチョイ ae56-Y/PZ)
2021/08/29(日) 23:53:07.29ID:V4lHBgfX0 エクセルVBAが、現在最も重宝される言語だってのはわかるし
自分も随分それで助けられてるんだけど、その次に学ぶべきなのは
なんなんだろう。
VBA自体が終わった言語なのは明らかだし・・・。
JavaScript ? Rust? その他?
自分も随分それで助けられてるんだけど、その次に学ぶべきなのは
なんなんだろう。
VBA自体が終わった言語なのは明らかだし・・・。
JavaScript ? Rust? その他?
724デフォルトの名無しさん (JP 0H4d-U7Lh)
2021/08/30(月) 00:31:07.88ID:ckBh8waKH725デフォルトの名無しさん (ワッチョイ 6e10-7kKc)
2021/08/30(月) 00:36:33.71ID:HHMxmKKh0 VBAが必要な理由てさ、元データがExcelだから
これ以上でもこれ以下でもないよね
そしてそれはこれからも変わらないもの
これ以上でもこれ以下でもないよね
そしてそれはこれからも変わらないもの
726デフォルトの名無しさん (ワッチョイ 4668-bRsM)
2021/08/30(月) 07:18:10.56ID:lQLq+TuC0 >>723
js:
ブラウザのコンソールに入力or拡張機能が非常に強力
web関連では大体なんでも出来る
ただ言語の仕様が色々と特殊
php:
webサーバー作りたいならこれ
本格運用しようとすると、覚える事は非常に多い
特にセキュリティが鬼門
rust:
新機能てんこもりの革新的な言語!は大体廃れる
js:
ブラウザのコンソールに入力or拡張機能が非常に強力
web関連では大体なんでも出来る
ただ言語の仕様が色々と特殊
php:
webサーバー作りたいならこれ
本格運用しようとすると、覚える事は非常に多い
特にセキュリティが鬼門
rust:
新機能てんこもりの革新的な言語!は大体廃れる
727デフォルトの名無しさん (ワッチョイ 024f-I0lI)
2021/08/30(月) 08:10:18.19ID:g9J4xp5m0 >>723
VBAを学んだのなら
VBA → VB.Net → C# が楽だろう。
VB.Netは文法的にはほぼVBAと一緒だから
.Netの構成を覚えることに専念出来る。
VB.Netを覚えてしまえば次はC#だな。
逆に構成がVB.Netと殆ど一緒なので
VBA → VB.Net を覚えるときより楽に
覚えることが出来るだろう。
もしWeb系をやりたいなら
VBA → ASP.Net(VB) → ASP.Net(C#)と
言ったところか。
自信があるならVBA → C#でも構わないが、
折角だから寄り道してついでにVB.Net覚えて
おいても損はないだろう。
VBAを学んだのなら
VBA → VB.Net → C# が楽だろう。
VB.Netは文法的にはほぼVBAと一緒だから
.Netの構成を覚えることに専念出来る。
VB.Netを覚えてしまえば次はC#だな。
逆に構成がVB.Netと殆ど一緒なので
VBA → VB.Net を覚えるときより楽に
覚えることが出来るだろう。
もしWeb系をやりたいなら
VBA → ASP.Net(VB) → ASP.Net(C#)と
言ったところか。
自信があるならVBA → C#でも構わないが、
折角だから寄り道してついでにVB.Net覚えて
おいても損はないだろう。
728デフォルトの名無しさん (ワッチョイ 024f-I0lI)
2021/08/30(月) 08:17:51.42ID:g9J4xp5m0 JavaScriptはWeb系やるのであれば必須言語だが、これはWebやるときに必要に迫られて変な話だけどやらざるを得なくなって勝手に身につく。
DB扱うのにSQLが必須になるのと同じ。
Rustはまだ扱っている書籍やサイトが少ないのでもう少し待ってからでも良いと思う。
DB扱うのにSQLが必須になるのと同じ。
Rustはまだ扱っている書籍やサイトが少ないのでもう少し待ってからでも良いと思う。
729デフォルトの名無しさん (ワッチョイ aeda-U7Lh)
2021/08/30(月) 12:20:59.93ID:a1GphOXp0730デフォルトの名無しさん (アウアウウー Sa85-7Bq0)
2021/08/30(月) 12:52:53.22ID:4aBvuqYpa 次にって言葉を汲んであげてもいいと思うな
サラダ食ったあと次にカレーとデザートどっち食べるべきか聞かれても「興味あるなら全部食え」ってレス付ける?
サラダ食ったあと次にカレーとデザートどっち食べるべきか聞かれても「興味あるなら全部食え」ってレス付ける?
731デフォルトの名無しさん (ワッチョイ aeda-U7Lh)
2021/08/30(月) 13:18:03.24ID:a1GphOXp0 食いたいもん食えよ
俺なら食いたいもん全部食うけどな
俺なら食いたいもん全部食うけどな
732デフォルトの名無しさん (ワッチョイ aeda-U7Lh)
2021/08/30(月) 13:19:04.91ID:a1GphOXp0 そもそも興味があるのにやらないでいるこ理由がわからない
733デフォルトの名無しさん (ブーイモ MMf6-hkn+)
2021/08/30(月) 13:29:28.16ID:qdrPJ241M ズラがずれてるぞ
734デフォルトの名無しさん (JP 0H4d-U7Lh)
2021/08/30(月) 13:37:49.06ID:ckBh8waKH 今は個別の言語の文法よりも、大量のライブラリにどんな機能があるかを知る方が重要
クラスやAPIをどれだけ知ってるかで作れる物が決まるんで
クラスやAPIをどれだけ知ってるかで作れる物が決まるんで
735デフォルトの名無しさん (ワッチョイ aeda-U7Lh)
2021/08/30(月) 13:40:48.19ID:a1GphOXp0 結局やらないでしょう
736デフォルトの名無しさん (ブーイモ MM65-1qBX)
2021/08/30(月) 13:43:40.08ID:txgJXV1kM737デフォルトの名無しさん (アウアウウー Sa85-U7Lh)
2021/08/30(月) 17:19:00.03ID:KZUgc5l+a スレチなんでそろそろプログラマ板いってやればいいのでは
738デフォルトの名無しさん (アウアウウー Sa85-0BKB)
2021/08/30(月) 18:03:03.80ID:SLXKrFaKa HTAのVBScriptでExcel操作って出来ましたっけ?
739デフォルトの名無しさん (ワッチョイ 6e2c-7zb5)
2021/08/30(月) 20:36:23.51ID:AiTAdVKh0 2年くらい前にここでお世話になって、会社でもかなりVBA触るポジションができて、かなり成長した
(皆さんありがとう)
クラスモジュールを触ったことがないんだけど、経験のため触っておいた方がいい?
理解が深まるなら触りたい
(皆さんありがとう)
クラスモジュールを触ったことがないんだけど、経験のため触っておいた方がいい?
理解が深まるなら触りたい
740デフォルトの名無しさん (ワッチョイ 6101-odzt)
2021/08/30(月) 21:34:10.98ID:PPAHi4pc0 エクセルでフィルターがかけられないんですが、
誰か助けてください
1列を指定して並び替えとフィルターを開いてフィルター(F)を押せません。
ちなみに空白業はないのですが、、、
誰か助けてください
1列を指定して並び替えとフィルターを開いてフィルター(F)を押せません。
ちなみに空白業はないのですが、、、
741デフォルトの名無しさん (ワッチョイ 6101-odzt)
2021/08/30(月) 21:41:22.45ID:PPAHi4pc0 解決しました
742デフォルトの名無しさん (テテンテンテン MM66-q9XR)
2021/08/30(月) 21:43:52.41ID:zNy1vYFAM >>738
昔はできた記憶があるけどセキュリティとか厳しくなってるから今でもできるかはよくわからん
昔はできた記憶があるけどセキュリティとか厳しくなってるから今でもできるかはよくわからん
743デフォルトの名無しさん (テテンテンテン MM66-1qBX)
2021/08/30(月) 22:40:05.22ID:mO4hpp7AM744デフォルトの名無しさん (ワッチョイ 024f-I0lI)
2021/08/30(月) 23:22:00.02ID:g9J4xp5m0 >>739
VBAのクラスは継承が使えないから敬遠されがちではあるが、逆に他言語では委譲の知識を疎かにしがちだからやっておいても損はないな。
メソッド名を文字列で指定して呼び出すCallByNameのような命令もクラスでないと使えない気がしたしな。
VBAのクラスは継承が使えないから敬遠されがちではあるが、逆に他言語では委譲の知識を疎かにしがちだからやっておいても損はないな。
メソッド名を文字列で指定して呼び出すCallByNameのような命令もクラスでないと使えない気がしたしな。
745デフォルトの名無しさん (ワッチョイ 4668-bRsM)
2021/08/30(月) 23:24:06.07ID:lQLq+TuC0746デフォルトの名無しさん (ワッチョイ 024f-I0lI)
2021/08/30(月) 23:52:32.26ID:g9J4xp5m0 >>745
引数が渡せないだけでコンストラクタやデストラクタはあるのでは?
引数が渡せないだけでコンストラクタやデストラクタはあるのでは?
747デフォルトの名無しさん (ワッチョイ aeda-U7Lh)
2021/08/31(火) 01:57:49.48ID:ihx26wcM0748デフォルトの名無しさん (ワッチョイ 024f-I0lI)
2021/08/31(火) 03:43:06.41ID:JZqVSHwg0 >>739
何でもそうだけど使い処というものがあって、ひょっとしたらその機能を使えばもっと簡潔にコードが書けたり後でテストがし易くなったり、改修がし易くなるかも知れない。
けど、それがどういったものか分からなければ本当に使うべきか、どういった使い方をすべきかも分からない。だからまずそれがどういったものであるかを調べる必要がある。
調べた上で使うべきかどうかは自分で判断すること。
「結局使う必要がないなら無駄足じゃん!!」という結論に行き着くかも知れない。けど調べてついた知識は無駄にはならない。
興味があるのなら何でも調べてみればいい。
何でもそうだけど使い処というものがあって、ひょっとしたらその機能を使えばもっと簡潔にコードが書けたり後でテストがし易くなったり、改修がし易くなるかも知れない。
けど、それがどういったものか分からなければ本当に使うべきか、どういった使い方をすべきかも分からない。だからまずそれがどういったものであるかを調べる必要がある。
調べた上で使うべきかどうかは自分で判断すること。
「結局使う必要がないなら無駄足じゃん!!」という結論に行き着くかも知れない。けど調べてついた知識は無駄にはならない。
興味があるのなら何でも調べてみればいい。
749デフォルトの名無しさん (ワッチョイ 3d5f-uZV+)
2021/08/31(火) 05:26:47.90ID:Bq4JJtE70 Googleスプレッドシートに置き換えが進んでいるのにExcelをできるだけ残させるような発想がよくわからない。
マイクロソフト内でも切るべき機能とされているのに。
マイクロソフト内でも切るべき機能とされているのに。
750デフォルトの名無しさん (テテンテンテン MM66-q9XR)
2021/08/31(火) 06:03:59.14ID:Ns860ecPM751デフォルトの名無しさん (スッップ Sd22-/hF1)
2021/08/31(火) 06:42:25.04ID:yu36xbaqd >>749
新しい部署や若い会社とかならそうなのかもしれないけど、長続きして規模の大きい会社は大人数がずっとExcel使ってきてる訳だし、今更急にスプレッドシートに切り替えとか出来ないよ
マクロなら尚更
VBAからGASに書き換えるのも面倒だし、スクリプトを編集するにもアカウントの権限が必要なせいで他部署へ許諾が必要な職場もあって面倒だったよ
新しい部署や若い会社とかならそうなのかもしれないけど、長続きして規模の大きい会社は大人数がずっとExcel使ってきてる訳だし、今更急にスプレッドシートに切り替えとか出来ないよ
マクロなら尚更
VBAからGASに書き換えるのも面倒だし、スクリプトを編集するにもアカウントの権限が必要なせいで他部署へ許諾が必要な職場もあって面倒だったよ
752デフォルトの名無しさん (スッップ Sd22-/hF1)
2021/08/31(火) 07:10:44.50ID:yu36xbaqd >>739
もう運用しているブックについてはクラスモジュールに書き換えなくていいよ
引き継ぎの際にクラスモジュール扱える人が担当になるとは限らないしね
ただ、自衛策として1度は扱っておいた方がいいよ
自分が引き継いだブックにクラスモジュールあったりしたら大変だしね。それに折角学ぼうとしてる所だし
もう運用しているブックについてはクラスモジュールに書き換えなくていいよ
引き継ぎの際にクラスモジュール扱える人が担当になるとは限らないしね
ただ、自衛策として1度は扱っておいた方がいいよ
自分が引き継いだブックにクラスモジュールあったりしたら大変だしね。それに折角学ぼうとしてる所だし
753デフォルトの名無しさん (ワッチョイ 92bd-K4sG)
2021/08/31(火) 07:11:08.63ID:i7ARXDZV0 VBAやマクロゴリゴリのExcelが社内にない状態が想像できないのだが
スプレッドシートって代替できるの?
スプレッドシートって代替できるの?
754デフォルトの名無しさん (スッップ Sd22-/hF1)
2021/08/31(火) 07:25:24.78ID:yu36xbaqd >>753
シート上の編集とかブック内の処理で済むようなマクロならば、スプレッドシートへ移動可能
ただ、サーバからCSVが送られてきて、マクロによってそのCSVを開いてから処理する、とかならば移動が出来てないのが実情かなあ
なにせ、Excelで何ら問題なく業務できてるってなら、わざわざサーバやらブックやら仕様を変更してまでスプレッドシートに移すメリットは無いしね。仕様書作り直し、単体、結合テストやり直しとか無駄に工数かかるし。
社全体がスプレッドシートに切り替えるってなら知らん
シート上の編集とかブック内の処理で済むようなマクロならば、スプレッドシートへ移動可能
ただ、サーバからCSVが送られてきて、マクロによってそのCSVを開いてから処理する、とかならば移動が出来てないのが実情かなあ
なにせ、Excelで何ら問題なく業務できてるってなら、わざわざサーバやらブックやら仕様を変更してまでスプレッドシートに移すメリットは無いしね。仕様書作り直し、単体、結合テストやり直しとか無駄に工数かかるし。
社全体がスプレッドシートに切り替えるってなら知らん
755デフォルトの名無しさん (ワッチョイ 024f-I0lI)
2021/08/31(火) 08:07:31.43ID:JZqVSHwg0 変な話だな
EXCELをWebで扱うなら
余程金の無い中小企業でも無い限り
Office365の企業用ライセンス取得して
Web版EXCELに移行するのが
自然な流れだと思うのだが。
もっとも通常はEXCELそのものを
Web上でツールとして扱うのも考え辛い。
何故ならEXCELなどよりもっと
Wrbでツール作るのに向いた言語が
幾らでもあるからだ。
そういう場合はEXCELはダウンロードされる
1ファイルという立ち位置になるからな。
EXCELをWebで扱うなら
余程金の無い中小企業でも無い限り
Office365の企業用ライセンス取得して
Web版EXCELに移行するのが
自然な流れだと思うのだが。
もっとも通常はEXCELそのものを
Web上でツールとして扱うのも考え辛い。
何故ならEXCELなどよりもっと
Wrbでツール作るのに向いた言語が
幾らでもあるからだ。
そういう場合はEXCELはダウンロードされる
1ファイルという立ち位置になるからな。
756デフォルトの名無しさん (ワッチョイ 45da-Qyc7)
2021/08/31(火) 10:03:50.16ID:Kb4xw5qb0 With Worksheets("Sheet1")
.Columns("1"). Copy Destination_
= ThisWorkbook.Worksheets("Sheet2").Columns("1")
Sheet1のA列をSheet2にコピーするマクロを書いたのですが
1004エラーが出てしまいます。
どう直せばいいでしょうか?
.Columns("1"). Copy Destination_
= ThisWorkbook.Worksheets("Sheet2").Columns("1")
Sheet1のA列をSheet2にコピーするマクロを書いたのですが
1004エラーが出てしまいます。
どう直せばいいでしょうか?
757デフォルトの名無しさん (アウアウウー Sa85-U7Lh)
2021/08/31(火) 10:11:41.55ID:7DaXmsNEa >>756
こんな感じでは
With Worksheets("Sheet1")
.Columns("A:A").Copy Destination:=ThisWorkbook.Worksheets("Sheet2").Columns("A:A")
End With
こんな感じでは
With Worksheets("Sheet1")
.Columns("A:A").Copy Destination:=ThisWorkbook.Worksheets("Sheet2").Columns("A:A")
End With
758デフォルトの名無しさん (ワッチョイ 6101-4DG9)
2021/08/31(火) 10:17:59.90ID:rtPimGdF0 Sub TEST1()
'「1つ目」のグラフの「1つ目」の系列の「名前」
Debug.Print ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Name
End Sub
基本的な質問ですみません
グラフに折れ線グラフが10本あって、その内1本をグラフ上で選択している時に
選択している系列名をVBAで取得するにはどう書けばいいでしょうか?
あるいはSeriesCollection(1)の1という数字の部分が何なのか取得できますか?
'「1つ目」のグラフの「1つ目」の系列の「名前」
Debug.Print ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Name
End Sub
基本的な質問ですみません
グラフに折れ線グラフが10本あって、その内1本をグラフ上で選択している時に
選択している系列名をVBAで取得するにはどう書けばいいでしょうか?
あるいはSeriesCollection(1)の1という数字の部分が何なのか取得できますか?
759デフォルトの名無しさん (アウウィフ FF85-4thN)
2021/08/31(火) 10:34:44.96ID:RXuTL+ZfF forでまわしてselectedで見る
とか
とか
760デフォルトの名無しさん (ワッチョイ 6101-4DG9)
2021/08/31(火) 10:44:19.53ID:rtPimGdF0761デフォルトの名無しさん (ブーイモ MM22-hkn+)
2021/08/31(火) 11:03:21.16ID:0ik848aIM マクロの記録で見れ
762デフォルトの名無しさん (ワッチョイ 6101-4DG9)
2021/08/31(火) 11:13:09.09ID:rtPimGdF0 これでは以下のエラーが出るのですが
どこが間違ってますでしょうか?よろしくお願いします
for i = 1 to ActiveChart.SeriesCollection.Count
If ActiveChart.SeriesCollection(i).Selected Then
beep
endif
next
実行時エラー'438':
オブジェクトは、このプロパティまたはメソッドをサポートしていません。
どこが間違ってますでしょうか?よろしくお願いします
for i = 1 to ActiveChart.SeriesCollection.Count
If ActiveChart.SeriesCollection(i).Selected Then
beep
endif
next
実行時エラー'438':
オブジェクトは、このプロパティまたはメソッドをサポートしていません。
763デフォルトの名無しさん (ワッチョイ 6e63-RMdL)
2021/08/31(火) 11:30:45.05ID:NESsP7iO0 >>762
まず、ActiveなChartがあるかを確認
そして、ChartObjectはマクロの記録どおりに動かないことが多いので、ActiveChartの後に.Chartを挿入して試してみる
参考
http://officetanaka.net/excel/vba/graph/09.htm
まず、ActiveなChartがあるかを確認
そして、ChartObjectはマクロの記録どおりに動かないことが多いので、ActiveChartの後に.Chartを挿入して試してみる
参考
http://officetanaka.net/excel/vba/graph/09.htm
764デフォルトの名無しさん (アウアウウー Sa85-U7Lh)
2021/08/31(火) 12:01:04.19ID:7DaXmsNEa >>762
こういうのはどう?
Private Sub Chart_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long)
If ElementID = xlSeries Then
Debug.Print ActiveChart.SeriesCollection(Arg1).Name
End If
End Sub
こういうのはどう?
Private Sub Chart_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long)
If ElementID = xlSeries Then
Debug.Print ActiveChart.SeriesCollection(Arg1).Name
End If
End Sub
765デフォルトの名無しさん (ワッチョイ 6101-4DG9)
2021/08/31(火) 13:36:21.23ID:rtPimGdF0766デフォルトの名無しさん (ブーイモ MM4d-hkn+)
2021/08/31(火) 13:40:47.87ID:bSK5W0WOM767デフォルトの名無しさん (ブーイモ MMf6-hkn+)
2021/08/31(火) 13:44:13.64ID:1uDof6e+M ごめんちがう
selectedはなさそう
selectedはなさそう
768デフォルトの名無しさん (アウアウウー Sa85-U7Lh)
2021/08/31(火) 13:58:00.53ID:7DaXmsNEa >>765
ブックにグラフのシートがあるならそのシートのChratのSelectってイベントをクリックすると
Private Sub Chart_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long)
End sub
が生成されるかと
それともグラフはワークシートにあるのかな?
ブックにグラフのシートがあるならそのシートのChratのSelectってイベントをクリックすると
Private Sub Chart_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long)
End sub
が生成されるかと
それともグラフはワークシートにあるのかな?
769デフォルトの名無しさん (ワッチョイ 6101-4DG9)
2021/08/31(火) 14:04:57.78ID:rtPimGdF0 >>768
そうです、グラフはワークシートにあります
そうです、グラフはワークシートにあります
770デフォルトの名無しさん (テテンテンテン MM66-q9XR)
2021/08/31(火) 14:59:11.50ID:l9psb/TLM >>758
グラフが選択されてるのが確実なら
Application.Selection.Name
確実じゃないなら
If TypeName(Application.Selection) = "Series" Then ...
でガードすればいい
グラフが選択されてるのが確実なら
Application.Selection.Name
確実じゃないなら
If TypeName(Application.Selection) = "Series" Then ...
でガードすればいい
771デフォルトの名無しさん (ワッチョイ 6101-4DG9)
2021/08/31(火) 15:12:15.10ID:rtPimGdF0772デフォルトの名無しさん (アウアウウー Sa85-U7Lh)
2021/08/31(火) 15:17:16.32ID:7DaXmsNEa >>769
最小限しか書いてないので自分で手直ししてほしいけどこんなのはどうでしょう
1.クラスモジュールを追加する
2.クラスモジュールに下記を実装する(チャートのイベントを実装)
Public WithEvents myChart As Chart
Private Sub myChart_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long)
If ElementID = xlSeries Then
Debug.Print myChart.SeriesCollection(Arg1).Name
End If
End Sub
3.ThisWorkbookに下記を実装する(クラスにチャートを紐づける)
Private myClass1 As New Class1
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If ActiveSheet Is Nothing Then
Exit Sub
End If
If ActiveSheet.ChartObjects.Count = 0 Then
Exit Sub
End If
Set myClass1.myChart = ActiveSheet.ChartObjects(1).Chart
End Sub
最小限しか書いてないので自分で手直ししてほしいけどこんなのはどうでしょう
1.クラスモジュールを追加する
2.クラスモジュールに下記を実装する(チャートのイベントを実装)
Public WithEvents myChart As Chart
Private Sub myChart_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long)
If ElementID = xlSeries Then
Debug.Print myChart.SeriesCollection(Arg1).Name
End If
End Sub
3.ThisWorkbookに下記を実装する(クラスにチャートを紐づける)
Private myClass1 As New Class1
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If ActiveSheet Is Nothing Then
Exit Sub
End If
If ActiveSheet.ChartObjects.Count = 0 Then
Exit Sub
End If
Set myClass1.myChart = ActiveSheet.ChartObjects(1).Chart
End Sub
773デフォルトの名無しさん (ワッチョイ 6101-4DG9)
2021/08/31(火) 15:43:05.57ID:rtPimGdF0774デフォルトの名無しさん (ワッチョイ fe02-jtj7)
2021/08/31(火) 15:48:49.52ID:xY3Kg19k0 どうしても分からないので教えて下さい
以下
http://excel-ubara.com/excelvba4/EXCEL299.html
より引用
Option Explicit
Public mOnTime As Date
Sub TimerProc()
Range("A1") = Now()
End Sub
Sub OnTimeStart()
Call TimerProc
mOnTime = Now() + TimeSerial(0, 0, 1)
Call Application.OnTime(mOnTime, "OnTimeStart")
End Sub
Sub OnTimeStop()
'同一のProcedureとEarliestTimeがないとエラーになる
On Error Resume Next
Call Application.OnTime(mOnTime, "OnTimeStart", , False)
End Sub
これを丸ごとコピーして標準モジュールに貼り付けて実行しようとすると
「変数が定義されていません」というコンパイルエラーが出ます
どうやら「mOnTime」という変数が反応していないようです
何が原因として考えられるのでしょうか
以下
http://excel-ubara.com/excelvba4/EXCEL299.html
より引用
Option Explicit
Public mOnTime As Date
Sub TimerProc()
Range("A1") = Now()
End Sub
Sub OnTimeStart()
Call TimerProc
mOnTime = Now() + TimeSerial(0, 0, 1)
Call Application.OnTime(mOnTime, "OnTimeStart")
End Sub
Sub OnTimeStop()
'同一のProcedureとEarliestTimeがないとエラーになる
On Error Resume Next
Call Application.OnTime(mOnTime, "OnTimeStart", , False)
End Sub
これを丸ごとコピーして標準モジュールに貼り付けて実行しようとすると
「変数が定義されていません」というコンパイルエラーが出ます
どうやら「mOnTime」という変数が反応していないようです
何が原因として考えられるのでしょうか
775デフォルトの名無しさん (ワッチョイ 6eb0-hkn+)
2021/08/31(火) 16:45:55.34ID:qfiRyurv0 一番上の
option explicit
をコメントアウト
option explicit
をコメントアウト
776デフォルトの名無しさん (ワッチョイ ae56-Y/PZ)
2021/08/31(火) 17:08:05.95ID:0UudHHzs0 悪い方向にいざなってないか。それw
777デフォルトの名無しさん (ワッチョイ fe02-jtj7)
2021/08/31(火) 17:16:59.73ID:xY3Kg19k0 流石に程度の低い釣りには引っかかりません
(自己解決しました)
(自己解決しました)
778デフォルトの名無しさん (アウアウウー Sa85-7Bq0)
2021/08/31(火) 19:12:54.95ID:XB01+IxZa 程度の低いだってさ
こんなド素人ちゃんにまで小馬鹿にされるオプション付けない派には流石に同情しちゃうね
こんなド素人ちゃんにまで小馬鹿にされるオプション付けない派には流石に同情しちゃうね
779デフォルトの名無しさん (ワッチョイ fe02-jtj7)
2021/08/31(火) 20:04:02.76ID:xY3Kg19k0 ひねくれすぎててワロタ
元々オプションありで書かれているのに
オプション外して解決するのは根本的に違うでしょって話
もしかして疲れて病んでる人だったのかな
お疲れ様です
元々オプションありで書かれているのに
オプション外して解決するのは根本的に違うでしょって話
もしかして疲れて病んでる人だったのかな
お疲れ様です
780デフォルトの名無しさん (ワッチョイ 45da-Qyc7)
2021/09/01(水) 00:14:30.58ID:LgfjpVVJ0781デフォルトの名無しさん (ワッチョイ 22f0-Ctl7)
2021/09/01(水) 04:40:05.79ID:vx5cHFWE0 ユーザーフォームから
A1に数字が入力され
B1からB7まで同じく数字が入力され
A1が月で、B1からB7を日として
C1〜に
A1に数字が入力され
B1からB7まで同じく数字が入力され
A1が月で、B1からB7を日として
C1〜に
782デフォルトの名無しさん (ワッチョイ 22f0-Ctl7)
2021/09/01(水) 04:48:15.65ID:vx5cHFWE0 ユーザーフォームから
A1に数字が入力され
B1からB7まで同じく数字が入力され
A1が月で、B1〜B7を日として
C1〜C7に月日として表示したいのですが
A B C D E ・ ・ ・
1 8 12 8/12
2 13 8/13
3 14 8/14
4
5
・
・
・
上記、票のようにA1とB列に分割された月日を
C列に日付にできるでしょうか?
いつも質問ばかりで恐縮ですが
ご教授おねがいします
A1に数字が入力され
B1からB7まで同じく数字が入力され
A1が月で、B1〜B7を日として
C1〜C7に月日として表示したいのですが
A B C D E ・ ・ ・
1 8 12 8/12
2 13 8/13
3 14 8/14
4
5
・
・
・
上記、票のようにA1とB列に分割された月日を
C列に日付にできるでしょうか?
いつも質問ばかりで恐縮ですが
ご教授おねがいします
783デフォルトの名無しさん (ワッチョイ 4668-bRsM)
2021/09/01(水) 07:48:40.08ID:QyYX1GEf0784デフォルトの名無しさん (ブーイモ MM65-dU6Z)
2021/09/01(水) 09:23:39.06ID:Uj8mUWALM 12月ぐらいに来年の1月のデータを入力しようとして日付だけ入力して今年の1月になっちゃってたってのは割りとあるある
785デフォルトの名無しさん (スプッッ Sd82-0q/m)
2021/09/01(水) 10:18:49.87ID:uNhFH8V1d786デフォルトの名無しさん (ワッチョイ ae68-U7Lh)
2021/09/01(水) 10:20:20.08ID:ufGoj8xi0 年には言及無いし
C1に「= A$1 & "/" & B1」これ入力して下へずらっとでいいんじゃないの
C1に「= A$1 & "/" & B1」これ入力して下へずらっとでいいんじゃないの
787デフォルトの名無しさん (ワッチョイ ae68-U7Lh)
2021/09/01(水) 10:22:29.22ID:ufGoj8xi0788デフォルトの名無しさん (アウアウウー Sa85-7Bq0)
2021/09/01(水) 10:56:06.92ID:RCZPpxX+a 月かわるんかい
じゃ新しい月になった時にどういう処理してるかも書かにゃ答えようがないぞ
じゃ新しい月になった時にどういう処理してるかも書かにゃ答えようがないぞ
789デフォルトの名無しさん (スプッッ Sd82-0q/m)
2021/09/01(水) 12:13:19.29ID:uNhFH8V1d 月をまたぐ事はないので
790デフォルトの名無しさん (スプッッ Sd82-0q/m)
2021/09/01(水) 12:15:18.01ID:uNhFH8V1d 今出先なので家に帰ったら皆さんが
わかりやすいようにご説明したいと思います
言葉足らずなご説明で大変申し訳ありません
わかりやすいようにご説明したいと思います
言葉足らずなご説明で大変申し訳ありません
791デフォルトの名無しさん (ワッチョイ 112f-q8ax)
2021/09/01(水) 13:29:51.12ID:MIZAw2OB0 なにがやりたいかよくわからんが、日付として取り扱わないほうがいい気がするなぁ
単純に文字列として連結しといたほうがいいかもしれん
単純に文字列として連結しといたほうがいいかもしれん
792698 (ワッチョイ c95f-K0XX)
2021/09/01(水) 16:29:17.25ID:zi3lAKaz0 698です お礼が遅くなってすみません
>>718さんの内容でほぼほぼ実現出来ました
その節はありがとうございました
Selectionを使っていた時に比べスピードもかなり上がりました
データ数100万程で5秒くらいです
ただ一部のファイルで元々設定していた表示形式が数値へ置き換わってしまい悩んでいます
例えば0010→10など
浅知恵でTextやCStrを使えばどうにかなるかと思いましたがダメでした
>>718さんの内容でほぼほぼ実現出来ました
その節はありがとうございました
Selectionを使っていた時に比べスピードもかなり上がりました
データ数100万程で5秒くらいです
ただ一部のファイルで元々設定していた表示形式が数値へ置き換わってしまい悩んでいます
例えば0010→10など
浅知恵でTextやCStrを使えばどうにかなるかと思いましたがダメでした
793デフォルトの名無しさん (テテンテンテン MM66-xCK4)
2021/09/01(水) 17:31:57.00ID:xpLasvJBM VBAからIEを操作するプログラムが
Windows11にしたら動きません
というのは周知の事実ですか?
Windows11にしたら動きません
というのは周知の事実ですか?
794デフォルトの名無しさん (テテンテンテン MM66-xCK4)
2021/09/01(水) 17:40:04.10ID:xpLasvJBM ひとまずNavigateでURLを開くのはイケますが
Document.readyStateを上手く拾えないので操作しようがないですね
Document.readyStateを上手く拾えないので操作しようがないですね
795デフォルトの名無しさん (ワッチョイ aeda-HBgv)
2021/09/01(水) 17:43:07.67ID:AF6jYwWs0 >>793
セキュリティーを考えればそれが普通じゃね
セキュリティーを考えればそれが普通じゃね
796デフォルトの名無しさん (スップ Sd82-Hm2x)
2021/09/01(水) 17:43:57.36ID:oM9EKr7Vd797デフォルトの名無しさん (テテンテンテン MM66-xCK4)
2021/09/01(水) 17:46:56.00ID:xpLasvJBM >>795
互換モードをedgeは載せているのだから動くものかと
互換モードをedgeは載せているのだから動くものかと
798デフォルトの名無しさん (ワッチョイ 22f0-Ctl7)
2021/09/01(水) 18:08:06.29ID:vx5cHFWE0 下記のように反映された後
A B C D E ・ ・ ・
1 8 12 8/12
2 13 8/13
3 14 8/14
4
5
・
・
・
2回目以降、B2〜B3を消去して出力すると
A B C D E ・ ・ ・
1 8 12 8/12
2 4/30
3 4/30
4
5
・
・
・
4/30と出力されます
4/30を自動でクリアして空白にしたいのですが
いい方法が思いつきません
ご教授おねがいします
A B C D E ・ ・ ・
1 8 12 8/12
2 13 8/13
3 14 8/14
4
5
・
・
・
2回目以降、B2〜B3を消去して出力すると
A B C D E ・ ・ ・
1 8 12 8/12
2 4/30
3 4/30
4
5
・
・
・
4/30と出力されます
4/30を自動でクリアして空白にしたいのですが
いい方法が思いつきません
ご教授おねがいします
799デフォルトの名無しさん (ワッチョイ 4510-jtj7)
2021/09/01(水) 18:09:47.36ID:kYWyELeA0 >>798
いい加減にしろ
いい加減にしろ
800デフォルトの名無しさん (ブーイモ MMf6-dU6Z)
2021/09/01(水) 18:34:36.51ID:rcR5Gl32M >>798
クリアしたあとDoループでB列が空白の場合はループを抜けるとかじゃダメかい?
クリアしたあとDoループでB列が空白の場合はループを抜けるとかじゃダメかい?
801デフォルトの名無しさん (テテンテンテン MM66-xCK4)
2021/09/01(水) 18:59:14.96ID:sD7Rqgd1M じゃあ現実的な代替案はどうですか?
ユーザー様にSeleniumドライバーのインストールと逐次更新をお願いするのは避けたいです
ユーザー様にSeleniumドライバーのインストールと逐次更新をお願いするのは避けたいです
802デフォルトの名無しさん (テテンテンテン MM66-q9XR)
2021/09/01(水) 19:08:28.99ID:n24W6MuYM803デフォルトの名無しさん (ブーイモ MM4d-hkn+)
2021/09/01(水) 19:09:36.61ID:V21gvc28M B列が空ならC列も空にする
804デフォルトの名無しさん (ワッチョイ 4668-bRsM)
2021/09/01(水) 19:36:37.25ID:QyYX1GEf0 >>792
>>721を改造
Sub Macro6()
Application.Calculation = xlManual
Application.ScreenUpdating = False
myAddress = Split(Selection.SpecialCells(xlCellTypeFormulas, 23).Address, ",")
For Each EE In myAddress
Range(EE) = Range(EE)
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
変えたのは
Range(EE) = Range(EE)
だけ。これで多分いけるとおもうけど、どうだろう
>>721を改造
Sub Macro6()
Application.Calculation = xlManual
Application.ScreenUpdating = False
myAddress = Split(Selection.SpecialCells(xlCellTypeFormulas, 23).Address, ",")
For Each EE In myAddress
Range(EE) = Range(EE)
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
変えたのは
Range(EE) = Range(EE)
だけ。これで多分いけるとおもうけど、どうだろう
805デフォルトの名無しさん (ワッチョイ 4668-bRsM)
2021/09/01(水) 19:38:47.95ID:QyYX1GEf0 cells(1,1)=cells(1,1)
って暗黙の型変換で
cells(1,1).value=cells(1,1).value
になっているとおもったけど違うのね
って暗黙の型変換で
cells(1,1).value=cells(1,1).value
になっているとおもったけど違うのね
807デフォルトの名無しさん (ワッチョイ 4668-bRsM)
2021/09/01(水) 20:21:01.01ID:QyYX1GEf0808デフォルトの名無しさん (ワッチョイ 22f0-0q/m)
2021/09/01(水) 20:25:24.16ID:vx5cHFWE0809デフォルトの名無しさん (ワッチョイ 22f0-Ctl7)
2021/09/01(水) 20:53:46.87ID:vx5cHFWE0 C1: = IF(B1 = "", "", A$1 & "/" & B1)
B列に文字が入力された場合
文字がそのままC列に表示されれば
完璧なんですが
難しいでしょうか?
B列に文字が入力された場合
文字がそのままC列に表示されれば
完璧なんですが
難しいでしょうか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 【野球】野球の未来に危機感「マイナースポーツになる」 宮本慎也氏が開催…学童大会 [尺アジ★]
- 中国「捜索レーダー起動は各国の通常の手法」 火器管制用か回答せず [蚤の市★]
- 【訃報】声優・西村知道さん死去 「SLAM DUNK」安西先生役 9月に体調不良のため一時休業 [少考さん★]
- 三角形はカッコいい
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- みなみけ三姉妹誰が一番好き?
- 俺はヤンキーだから
- 【速報】高市早苗、起床 [779938112]
- ぬるぽ
