!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:KskL7bEXd737デフォルトの名無しさん (アウアウウー 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列に表示されれば
完璧なんですが
難しいでしょうか?
810デフォルトの名無しさん (ワッチョイ 4668-bRsM)
2021/09/01(水) 20:56:51.38ID:QyYX1GEf0811698 (ワッチョイ c95f-K0XX)
2021/09/01(水) 20:58:57.68ID:zi3lAKaz0 >>807
別のシートからマスタのコードをTEXT関数、表示形式指定(例えば"00000")で表示させてるような状態です
計算結果→02010に>>721を実行すると2010(数値)、>>804を実行すると空白になってしまいます
今使っているのは2016ですが365環境もあるので後ほど試してみます
.Copyと.PasteSpecial xlPasteValuesで高速化できる方法があったりするのでしょうか
こちらに書き込む前に
For Each SC In Selection
SC.Copy.
SC.PasteSpecial xlPasteValues
で試した際は自力コピペしたほうがよっぽど早くてどうしようもありませんでした
別のシートからマスタのコードをTEXT関数、表示形式指定(例えば"00000")で表示させてるような状態です
計算結果→02010に>>721を実行すると2010(数値)、>>804を実行すると空白になってしまいます
今使っているのは2016ですが365環境もあるので後ほど試してみます
.Copyと.PasteSpecial xlPasteValuesで高速化できる方法があったりするのでしょうか
こちらに書き込む前に
For Each SC In Selection
SC.Copy.
SC.PasteSpecial xlPasteValues
で試した際は自力コピペしたほうがよっぽど早くてどうしようもありませんでした
812698 (ワッチョイ c95f-K0XX)
2021/09/01(水) 21:28:52.21ID:zi3lAKaz0 >>807>>811
例えば、
="0"&1
だと
01
別シートに打ち込んで実行したところたしかに空白にならず文字列で表示されました
ただ
="0"&1
="0"&2
="0"&3
の3行で実行すると全て消えて空白です…
例えば、
="0"&1
だと
01
別シートに打ち込んで実行したところたしかに空白にならず文字列で表示されました
ただ
="0"&1
="0"&2
="0"&3
の3行で実行すると全て消えて空白です…
813デフォルトの名無しさん (ワッチョイ 3d5f-9Am5)
2021/09/01(水) 21:42:45.23ID:WLDLOoPA0814698 (ワッチョイ c95f-K0XX)
2021/09/01(水) 21:44:13.89ID:zi3lAKaz0 >>812
連投すみません
3セルのうち
="0"&1
と
="0"&3
を選択すると文字列表示になりました
="0"&1
="0"&2
と
="0"&4を選択すると1と2は消えて4だけ文字列で残ります…
連投すみません
3セルのうち
="0"&1
と
="0"&3
を選択すると文字列表示になりました
="0"&1
="0"&2
と
="0"&4を選択すると1と2は消えて4だけ文字列で残ります…
815デフォルトの名無しさん (テテンテンテン MM66-q9XR)
2021/09/01(水) 21:45:19.70ID:RPMibrUxM >>809
C1: = IF(ISTEXT(B1), B1, A$1 & "/" & B1)
C1: = IF(ISTEXT(B1), B1, A$1 & "/" & B1)
816デフォルトの名無しさん (ワッチョイ 4668-bRsM)
2021/09/01(水) 22:25:27.20ID:QyYX1GEf0 >>812>>814
Sub foo2()
Application.Calculation = xlCalculationManual ' 手動計算にする
Application.ScreenUpdating = False ' 描画を停止する
For Each sc In Selection.SpecialCells(xlCellTypeFormulas, 23)
sc.Value = sc
Next sc
Application.Calculation = xlCalculationManual ' 手動計算にする
Application.ScreenUpdating = False ' 描画を停止する
End Sub
これの
sc.Value = sc
の部分を
sc.Value = sc.value
や
sc=sc
など色々試したが、上記がうまくいった
なお一体どういう型変換が行われているのかまるでわからない模様
Sub foo2()
Application.Calculation = xlCalculationManual ' 手動計算にする
Application.ScreenUpdating = False ' 描画を停止する
For Each sc In Selection.SpecialCells(xlCellTypeFormulas, 23)
sc.Value = sc
Next sc
Application.Calculation = xlCalculationManual ' 手動計算にする
Application.ScreenUpdating = False ' 描画を停止する
End Sub
これの
sc.Value = sc
の部分を
sc.Value = sc.value
や
sc=sc
など色々試したが、上記がうまくいった
なお一体どういう型変換が行われているのかまるでわからない模様
817デフォルトの名無しさん (ワッチョイ 3d5f-RMdL)
2021/09/01(水) 22:52:06.46ID:h29OAeAi0 >>816
型指定宣言していないため、Forで指定するSCがVariant型
なので、SCはVariant(Rangeとは限らない…配列の1要素目みたいなイメージ)
ただ、SC.ValueとするとSCはRangeと明示されるのでそういう動きになる
んじゃないかなぁ
型指定宣言していないため、Forで指定するSCがVariant型
なので、SCはVariant(Rangeとは限らない…配列の1要素目みたいなイメージ)
ただ、SC.ValueとするとSCはRangeと明示されるのでそういう動きになる
んじゃないかなぁ
818デフォルトの名無しさん (ワッチョイ c170-hbzi)
2021/09/01(水) 23:29:26.76ID:2gcT+4EJ0 IE問題どうするかなぁ
819デフォルトの名無しさん (ワッチョイ 7901-xepr)
2021/09/01(水) 23:36:24.86ID:zknSVFy00 VBA止めるいいきっかけじゃん
820デフォルトの名無しさん (スフッ Sd22-U7Lh)
2021/09/01(水) 23:42:06.70ID:KwKwZOB6d821デフォルトの名無しさん (ワッチョイ 4668-bRsM)
2021/09/01(水) 23:55:13.89ID:QyYX1GEf0 >>818
まあlそのうち誰かがなんとかするやろ
まあlそのうち誰かがなんとかするやろ
822デフォルトの名無しさん (ワッチョイ b1ac-e5Hg)
2021/09/01(水) 23:58:40.93ID:lmopnPTl0 ちゃんとしたシステム入れればいいだけ
823デフォルトの名無しさん (ワッチョイ 4668-bRsM)
2021/09/02(木) 00:17:40.36ID:vUCj94gS0 ちゃんとしたシステム(爆笑)
824705 (ワッチョイ 868c-ylpg)
2021/09/02(木) 00:50:02.40ID:PlnEFAD30 >>814
まとめるとこういうこと?
Sub Macro7()
Application.Calculation = xlManual
Application.ScreenUpdating = False
myAddress = Split(Selection.SpecialCells(xlCellTypeFormulas, 23).Address, ",")
For Each EE In myAddress
Range(EE).Copy
Range(EE).PasteSpecial xlPasteValues
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
まとめるとこういうこと?
Sub Macro7()
Application.Calculation = xlManual
Application.ScreenUpdating = False
myAddress = Split(Selection.SpecialCells(xlCellTypeFormulas, 23).Address, ",")
For Each EE In myAddress
Range(EE).Copy
Range(EE).PasteSpecial xlPasteValues
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
825デフォルトの名無しさん (ワッチョイ 22f0-Ctl7)
2021/09/02(木) 06:01:59.22ID:pGyB2U1O0826デフォルトの名無しさん (ワッチョイ 2dfd-dU6Z)
2021/09/02(木) 06:17:15.44ID:8TUhFQ840 >>825
「○○であれば○○としたい」って言語化出来ているのであればあとはIf文で判定するだけでどうにかなるはずだよ
一回自分がやりたい事を頭からケツまでしっかり書いてフローチャートを作ってみた方がいい
○○であれば○○としたいの時には当てはまらない場合はどうするかもしっかり書くことを忘れずにね
「○○であれば○○としたい」って言語化出来ているのであればあとはIf文で判定するだけでどうにかなるはずだよ
一回自分がやりたい事を頭からケツまでしっかり書いてフローチャートを作ってみた方がいい
○○であれば○○としたいの時には当てはまらない場合はどうするかもしっかり書くことを忘れずにね
827デフォルトの名無しさん (ワッチョイ 22f0-Ctl7)
2021/09/02(木) 06:20:57.63ID:pGyB2U1O0 連投で申し訳ありません!
言葉たらづですいません。結局わたしがやりたいと思ってるのは
A1に数字を入力
B1〜B2に数字を入力するとC列に結合た日付を表示しされる下記のような表です
A B C
1 9 2 9/2
2 5 9/3
3 9/4
4 9/5
ただB2に文字列が入力されたらC2に文字列が表示され
C3以降は空白になってくれればいいのですが
言葉たらづですいません。結局わたしがやりたいと思ってるのは
A1に数字を入力
B1〜B2に数字を入力するとC列に結合た日付を表示しされる下記のような表です
A B C
1 9 2 9/2
2 5 9/3
3 9/4
4 9/5
ただB2に文字列が入力されたらC2に文字列が表示され
C3以降は空白になってくれればいいのですが
828デフォルトの名無しさん (ワッチョイ 22f0-Ctl7)
2021/09/02(木) 06:25:01.18ID:pGyB2U1O0 下記コードをここでお教えいただきもう少しで出来そうなのですがわたしにはむずかしすぎて
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo err
'B1B2じゃなければ終了
If Intersect(Target, Range("B1:b2")) Is Nothing Then Exit Sub
'とりあえずクリア
Range("C1:C100").Clear
'メイン。整数じゃなければerrに飛んでコピーして終わり。trycacheみたいな事がしたかった
最初 = Cells(1, 2)
最後 = Cells(2, 2)
'
If (Int(最初) = 最初 And Int(最後) = 最後) Then
行 = 1
For i = 最初 To 最後
Cells(行, 3) = i
行 = 行 + 1
Next
Exit Sub
End If
'整数以外
err:
Range("C1:C7").Value = Range("B1:b2").Value
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo err
'B1B2じゃなければ終了
If Intersect(Target, Range("B1:b2")) Is Nothing Then Exit Sub
'とりあえずクリア
Range("C1:C100").Clear
'メイン。整数じゃなければerrに飛んでコピーして終わり。trycacheみたいな事がしたかった
最初 = Cells(1, 2)
最後 = Cells(2, 2)
'
If (Int(最初) = 最初 And Int(最後) = 最後) Then
行 = 1
For i = 最初 To 最後
Cells(行, 3) = i
行 = 行 + 1
Next
Exit Sub
End If
'整数以外
err:
Range("C1:C7").Value = Range("B1:b2").Value
End Sub
829デフォルトの名無しさん (ワッチョイ 22f0-Ctl7)
2021/09/02(木) 06:57:24.18ID:pGyB2U1O0 間違いました!
A1に数字を入力
B1〜B2に数字を入力するとD列に結合た日付を表示しされる下記のような表です
A B C D
1 9 2 2 9/2
2 5 3 9/3
3 4 9/4
4 5 9/5
ただB2に文字列が入力されたらC2に文字列が表示され
C3とD3以降は空白になってくれればいいのですが
A1に数字を入力
B1〜B2に数字を入力するとD列に結合た日付を表示しされる下記のような表です
A B C D
1 9 2 2 9/2
2 5 3 9/3
3 4 9/4
4 5 9/5
ただB2に文字列が入力されたらC2に文字列が表示され
C3とD3以降は空白になってくれればいいのですが
830デフォルトの名無しさん (テテンテンテン MM66-xCK4)
2021/09/02(木) 07:37:19.92ID:O3nuwBcWM >>818
何か面白いことがわかったら教えて
何か面白いことがわかったら教えて
831デフォルトの名無しさん (ワッチョイ 2dfd-dU6Z)
2021/09/02(木) 07:53:36.77ID:8TUhFQ840 >>829
(クリア処理)
If IsNumeric(Range(″B1”).Value) And IsNumeric(Range(“B2″).Value) Then
Dim TgtAry() As String
ReDim TgtAry(0 to Range(”B2”).Value - Range(”B1”).Value, 3 to 4)
Dim AryCnt As Long
For AryCnt = 0 to Ubound(TgtAry, 1)
TgtAry(AryCnt, 3) = CLng(Range(”B1”).Value) + AryCnt
TgtAry(AryCnt, 4) = Range(”A1”).Value & ″/″ & TgtAry(AryCnt, 3)
Next
Range(Cells(1, 3), Cells(1 + Ubound(TgtAry, 1), 4).Value = TgtAry
End If
(クリア処理)
If IsNumeric(Range(″B1”).Value) And IsNumeric(Range(“B2″).Value) Then
Dim TgtAry() As String
ReDim TgtAry(0 to Range(”B2”).Value - Range(”B1”).Value, 3 to 4)
Dim AryCnt As Long
For AryCnt = 0 to Ubound(TgtAry, 1)
TgtAry(AryCnt, 3) = CLng(Range(”B1”).Value) + AryCnt
TgtAry(AryCnt, 4) = Range(”A1”).Value & ″/″ & TgtAry(AryCnt, 3)
Next
Range(Cells(1, 3), Cells(1 + Ubound(TgtAry, 1), 4).Value = TgtAry
End If
832デフォルトの名無しさん (アウアウウー Sa85-HBgv)
2021/09/02(木) 09:40:00.71ID:lpxNteAka もうあきた
833デフォルトの名無しさん (スプッッ Sdc1-0q/m)
2021/09/02(木) 09:50:07.01ID:S+z0tXCPd834デフォルトの名無しさん (ワッチョイ ae68-U7Lh)
2021/09/02(木) 10:17:54.51ID:61uHr+ZW0835デフォルトの名無しさん (ワッチョイ ae68-U7Lh)
2021/09/02(木) 10:23:41.27ID:61uHr+ZW0836デフォルトの名無しさん (スプッッ Sdc1-0q/m)
2021/09/02(木) 11:39:09.52ID:S+z0tXCPd■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- (´・ω・`)おはよ
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- 【画像】カリカリ女、脱いだらすごい😨 [632966346]
- くそしてかがやけ
- 🪬本日のコンマ占い🧿
