!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること
ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
Excel VBA 質問スレ Part77
https://mevius.5ch.net/test/read.cgi/tech/1658009255/
-
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
Excel VBA 質問スレ Part78
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 5f2e-juJ7)
2022/10/30(日) 13:43:16.31ID:6yf2E1Gz0564デフォルトの名無しさん (JP 0He6-9yt5)
2022/12/31(土) 19:13:19.72ID:60VcS97wH565デフォルトの名無しさん (ワッチョイ 768c-zmrv)
2022/12/31(土) 20:36:02.66ID:2V6bSqaW0 >>563
debug.Print CommandBars.Add(Temporary:=True).Controls.Add(ID:=957).Caption
「シート一覧(&S)」
これで存在を確認できるね
for-nextで総当たりして見つけたんだろうね
リボン以前の時代に
debug.Print CommandBars.Add(Temporary:=True).Controls.Add(ID:=957).Caption
「シート一覧(&S)」
これで存在を確認できるね
for-nextで総当たりして見つけたんだろうね
リボン以前の時代に
566デフォルトの名無しさん (ワッチョイ 972f-9j0N)
2022/12/31(土) 22:52:34.11ID:J15SQ39W0 マイクロソフトのサポートに聞けば有償で教えてくれるだろ
567デフォルトの名無しさん (ワッチョイ a302-9j0N)
2023/01/01(日) 02:02:13.06ID:WHfKVncD0 素人質問で申し訳ありません。
G行(列?)にワンクリックで時刻を出るように
Private Sub CommandButton1_Click()
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("G2:G30000")) Is Nothing Then Exit Sub
Target.Value = Date
Cancel = True
End Sub
とvisualbasicで入力しました。
でワンクリックで「時間:分:秒」は出るようになりましたが、全部「0:00:00」
になってしまいます。今の「時間:分:秒」が出るにはどうしたらよいでしょうか。
ちなみにセルの書式設定で「時刻」⇒「13:30:30」の設定にしてあります。
よろしくお願いいたします。
G行(列?)にワンクリックで時刻を出るように
Private Sub CommandButton1_Click()
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("G2:G30000")) Is Nothing Then Exit Sub
Target.Value = Date
Cancel = True
End Sub
とvisualbasicで入力しました。
でワンクリックで「時間:分:秒」は出るようになりましたが、全部「0:00:00」
になってしまいます。今の「時間:分:秒」が出るにはどうしたらよいでしょうか。
ちなみにセルの書式設定で「時刻」⇒「13:30:30」の設定にしてあります。
よろしくお願いいたします。
568デフォルトの名無しさん (ワッチョイ 768c-zmrv)
2023/01/01(日) 02:13:01.01ID:U+Y4eA/v0 Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("G2:G30000")) Is Nothing Then Exit Sub
Target.Value = Now
Cancel = True
End Sub
If Intersect(Target, Range("G2:G30000")) Is Nothing Then Exit Sub
Target.Value = Now
Cancel = True
End Sub
569567 (ワッチョイ a302-qF/f)
2023/01/01(日) 02:19:43.81ID:WHfKVncD0570デフォルトの名無しさん (ワッチョイ b666-9yt5)
2023/01/01(日) 09:02:52.64ID:QhZkuHz30 凄く初歩的な事かもしれませんが、自力でわからなかったので教えてください。
コマンドボタンが3つあって、そのうち1つがエラーで止まるとします。
エラーで止まるボタンをA
正常なコードになっているBとCみたいな
Aを押してエラーが出たらVBE画面が開いてしまいます。
そしてVBE側のリセットボタンを押さないと処理がリセットされません。
これを気にした事はありませんでした。
しかしこれから他人に使わせたいので
【1】エラーが出ても一時停止ではなくて初めから完全停止になって欲しい。
【2】エラーが出てもVBE画面が開いて欲しくない
こういうのはどうすれば良いのでしょうか?
コマンドボタンが3つあって、そのうち1つがエラーで止まるとします。
エラーで止まるボタンをA
正常なコードになっているBとCみたいな
Aを押してエラーが出たらVBE画面が開いてしまいます。
そしてVBE側のリセットボタンを押さないと処理がリセットされません。
これを気にした事はありませんでした。
しかしこれから他人に使わせたいので
【1】エラーが出ても一時停止ではなくて初めから完全停止になって欲しい。
【2】エラーが出てもVBE画面が開いて欲しくない
こういうのはどうすれば良いのでしょうか?
571デフォルトの名無しさん (ワッチョイ 8b01-lHxW)
2023/01/01(日) 09:28:20.79ID:l9m14P5Y0 >>570
【2】はOn Error Go To を使ってエラーが出たら処理を辞める方法がある
もしくはエラーが出る特定のところのみOn Error Resume Nextを使ってエラーを無視して、その時にErrオブジェクトが値を持つかを見て値を持ってたら処理をやめるとか
【1】は無理
というかエラーが出ることが分かるならエラーが出ないように直すべき
個人で使うのならいいけど、他人に使わせるのにエラーが出たままは相当マズい
【2】はOn Error Go To を使ってエラーが出たら処理を辞める方法がある
もしくはエラーが出る特定のところのみOn Error Resume Nextを使ってエラーを無視して、その時にErrオブジェクトが値を持つかを見て値を持ってたら処理をやめるとか
【1】は無理
というかエラーが出ることが分かるならエラーが出ないように直すべき
個人で使うのならいいけど、他人に使わせるのにエラーが出たままは相当マズい
572デフォルトの名無しさん (JP 0He6-9yt5)
2023/01/01(日) 09:31:32.39ID:N3XMs5RAH >>570
エラートラップはかなりしっかりやっといたほうが良いけど・・・
対処法として、gotoとresume nextがある
gotoはちゃんとした分岐
resume nextはエラー完全無視でそのまま実行し続ける。
後者は超危険だけど、自作ゲームぐらいならこれで済ませてもいいと思う
Sub foo()
On Error GoTo err
foo2 = 0 / 0 '0で割り算
MsgBox "エラーはありませんでした。通常終了です"
Exit Sub '正常終了
err:
MsgBox "エラーが起きたので終了します"
End Sub
Sub bar()
On Error Resume Next
bar2 = 0 / 0
'通知
If err.Number > 0 Then
MsgBox "エラーが起きたようですがそのまま実行しました"
End If
End Sub
エラートラップはかなりしっかりやっといたほうが良いけど・・・
対処法として、gotoとresume nextがある
gotoはちゃんとした分岐
resume nextはエラー完全無視でそのまま実行し続ける。
後者は超危険だけど、自作ゲームぐらいならこれで済ませてもいいと思う
Sub foo()
On Error GoTo err
foo2 = 0 / 0 '0で割り算
MsgBox "エラーはありませんでした。通常終了です"
Exit Sub '正常終了
err:
MsgBox "エラーが起きたので終了します"
End Sub
Sub bar()
On Error Resume Next
bar2 = 0 / 0
'通知
If err.Number > 0 Then
MsgBox "エラーが起きたようですがそのまま実行しました"
End If
End Sub
573570 (ワッチョイ b666-9yt5)
2023/01/01(日) 13:29:35.26ID:QhZkuHz30 >>571>>572
無理でしたか…
「エラーが出たら一旦エクセルを再起動してもらって、私がコードを直すまではそのボタン触らないで」
っていう事にしようかと思います。
>というかエラーが出ることが分かるならエラーが出ないように直すべき
ハっとしました。
On Error Go To処理はエラーが出るの前提みたいで使うのいやだなと思ってましたが、
エラーを前提にしてたのはよっぽど自分の方でした。
解決です。ありがとうございました。
無理でしたか…
「エラーが出たら一旦エクセルを再起動してもらって、私がコードを直すまではそのボタン触らないで」
っていう事にしようかと思います。
>というかエラーが出ることが分かるならエラーが出ないように直すべき
ハっとしました。
On Error Go To処理はエラーが出るの前提みたいで使うのいやだなと思ってましたが、
エラーを前提にしてたのはよっぽど自分の方でした。
解決です。ありがとうございました。
574デフォルトの名無しさん (ワントンキン MM8a-HRUe)
2023/01/01(日) 20:36:34.67ID:QH48KlFOM 新年早々馬鹿か
こんなのが作ったものを使わされる人達可哀想
こんなのが作ったものを使わされる人達可哀想
575デフォルトの名無しさん (ワッチョイ df10-lHxW)
2023/01/01(日) 21:09:46.92ID:ZzHbs0In0 >>574
おまえのほうがバカだよ
おまえのほうがバカだよ
576デフォルトの名無しさん (スッップ Sdba-QCOi)
2023/01/01(日) 21:18:44.46ID:gVENJcWpd >エラーが出たら一旦エクセルを再起動してもらって
いや、馬鹿だろこいつ
いや、馬鹿だろこいつ
577デフォルトの名無しさん (ワッチョイ 8ab8-/EFQ)
2023/01/01(日) 21:33:46.27ID:uPXSUIhV0 他人に使わせる品質でないことは確かだな
578デフォルトの名無しさん (オッペケ Srbb-lHxW)
2023/01/01(日) 22:55:58.30ID:SDgcSZSgr >>573
「エラーが出たら一旦エクセルを再起動してもらって、私がコードを直すまではそのボタン触らないで」
これはいいけどさ、そもそもエラーが出るって分かってるものを使わせるのはヤバいだろ
エラーを出さないようにしてから使わせるか運用制限を書いとくかするのは必須だろ
それでもエラーが出た場合はそう言うのであって、最初からエラーありきはどう考えてもおかしい
「エラーが出たら一旦エクセルを再起動してもらって、私がコードを直すまではそのボタン触らないで」
これはいいけどさ、そもそもエラーが出るって分かってるものを使わせるのはヤバいだろ
エラーを出さないようにしてから使わせるか運用制限を書いとくかするのは必須だろ
それでもエラーが出た場合はそう言うのであって、最初からエラーありきはどう考えてもおかしい
579デフォルトの名無しさん (スッップ Sdba-QCOi)
2023/01/01(日) 23:30:29.85ID:gVENJcWpd580デフォルトの名無しさん (ワッチョイ df10-lHxW)
2023/01/02(月) 00:23:35.65ID:WJKKDxmM0 >>579
そうだな
エラーが出た時点で連絡するべきだ
ただ「馬鹿過ぎて片腹痛い」これは言うべきか?
こういうことを言ったら萎縮してスレに書き込む人が減るだけ
メリットがなにもないどころかデメリットしかないことを言う意味はない
そうだな
エラーが出た時点で連絡するべきだ
ただ「馬鹿過ぎて片腹痛い」これは言うべきか?
こういうことを言ったら萎縮してスレに書き込む人が減るだけ
メリットがなにもないどころかデメリットしかないことを言う意味はない
581デフォルトの名無しさん (ワッチョイ 9a4b-o0Tc)
2023/01/02(月) 00:43:21.31ID:qD3952vu0 エラー地雷が必ずあるボタンとか怖すぎる
マクロの結果は元に戻せないから、コードの先頭に関係するブックをセーブするように書くことをお勧めする
マクロの結果は元に戻せないから、コードの先頭に関係するブックをセーブするように書くことをお勧めする
582デフォルトの名無しさん (ワンミングク MM8a-HRUe)
2023/01/02(月) 00:49:52.66ID:4s2WSfqGM >>580
内容も吟味せずに脊髄反射で書き込んで馬鹿を擁護するお前のような奴が馬鹿を蔓延らせることに気付くべき
内容も吟味せずに脊髄反射で書き込んで馬鹿を擁護するお前のような奴が馬鹿を蔓延らせることに気付くべき
584デフォルトの名無しさん (ワッチョイ df10-lHxW)
2023/01/02(月) 09:35:04.20ID:WJKKDxmM0585570 (ワッチョイ b666-9yt5)
2023/01/02(月) 11:24:49.11ID:5oIC6wjS0 なんだかすみません。
今回は主にファイルオープン関連で「絶対にエラーが出ない全てに対応したコード」というのが
書く自信がありませんでした。勉強不足です。
今も一つわからないのですが、例えばマクロと同じフォルダにあるBookAを開いてる状態で、
BookAファイルをさらにオープンしようとするとwin10office2019の当方環境においてエラーが出ないのですが、
これは基本的に他のパソコンでもエラーが出ないのでしょうか?
winxp以降office2000以降あたりであれば大丈夫なものなのでしょうか?
別フォルダにある同名ブックを開こうとするとエラーになります。
こちらは開く前にファイル名で既に開いてるブックを確認するコードを追加しようとみたいなサイトが
いくつも見つかるので解決したのですが、既に開いてるファイル自身を開く事が成功してしまう
ケースを通常と思ってエラーの出ないコードと考えてよろしいのでしょうか?
今回は主にファイルオープン関連で「絶対にエラーが出ない全てに対応したコード」というのが
書く自信がありませんでした。勉強不足です。
今も一つわからないのですが、例えばマクロと同じフォルダにあるBookAを開いてる状態で、
BookAファイルをさらにオープンしようとするとwin10office2019の当方環境においてエラーが出ないのですが、
これは基本的に他のパソコンでもエラーが出ないのでしょうか?
winxp以降office2000以降あたりであれば大丈夫なものなのでしょうか?
別フォルダにある同名ブックを開こうとするとエラーになります。
こちらは開く前にファイル名で既に開いてるブックを確認するコードを追加しようとみたいなサイトが
いくつも見つかるので解決したのですが、既に開いてるファイル自身を開く事が成功してしまう
ケースを通常と思ってエラーの出ないコードと考えてよろしいのでしょうか?
586デフォルトの名無しさん (ワッチョイ 0eda-TwI4)
2023/01/02(月) 11:57:58.32ID:C7IOio2r0 初心者が思い込みで作ると失敗する
開発環境と実行環境がバージョンやパッチも含めて違うなら同じ環境で動作の確認をするしかない
作ったら終わりではなく、条件を変えても正しく動作するかを確認するくらいやれよ
長いファイル名とか共有フォルダとか、サイズ0に壊したファイルとか作って試すなど
開発環境と実行環境がバージョンやパッチも含めて違うなら同じ環境で動作の確認をするしかない
作ったら終わりではなく、条件を変えても正しく動作するかを確認するくらいやれよ
長いファイル名とか共有フォルダとか、サイズ0に壊したファイルとか作って試すなど
587デフォルトの名無しさん (ワッチョイ d7da-XlTg)
2023/01/02(月) 13:14:15.32ID:cWlG9T3F0 当たり前だけどファイル操作はVBAの知識以外にOSの知識もある程度必要になるから聞かなきゃ判断できないような処理ならやらないが吉かと。
開くのは諦めてせいぜいファイルの存在確認程度にとどめておけば?
開くのは諦めてせいぜいファイルの存在確認程度にとどめておけば?
588デフォルトの名無しさん (スッップ Sdba-TwI4)
2023/01/02(月) 13:45:13.52ID:N69RPsxQd >>585
自分はWin10+Ofiice365だけど
開いているファイルと同じフォルダのファイルを開こうとすると開いているファイルがアクティブになって
別フォルダの同名ファイルであれば同じ名前のファイルは開けないってエラーになるから
古いバージョンでも一緒なんじゃないかと思うけど
回避したいならWorkBooksの内容をチェックして同じファイル名があればメッセージを出して処理を止めるなりすればいいんだと思うけどね
古いバージョンでもチェックしたいなら単純にフォルダA、フォルダBに同じファイルをいれて両方開けるか試してもらうだけでいいと思うぞ
自分はWin10+Ofiice365だけど
開いているファイルと同じフォルダのファイルを開こうとすると開いているファイルがアクティブになって
別フォルダの同名ファイルであれば同じ名前のファイルは開けないってエラーになるから
古いバージョンでも一緒なんじゃないかと思うけど
回避したいならWorkBooksの内容をチェックして同じファイル名があればメッセージを出して処理を止めるなりすればいいんだと思うけどね
古いバージョンでもチェックしたいなら単純にフォルダA、フォルダBに同じファイルをいれて両方開けるか試してもらうだけでいいと思うぞ
589デフォルトの名無しさん (ワッチョイ 9ada-/EFQ)
2023/01/02(月) 14:06:13.66ID:v+YqJ02u0 多分だけど、手動で同一ファイルをダブルクリックで開くような操作では無く
開いたファイルを元に「新しいウィンドウを開く」のようなコードを書いてると思う
いろいろとオリジナルというか無手勝流というか、な制作してるようだし、個人利用に留めとけ と忠告しておきたい
ま、他人からコテンパンに罵られて伸びるタイプも居ない訳でも無いから、ご自由になんだけど(例えばMS社 毎月バグって世界中から罵られても知らん顔してアプデを続けるし)
開いたファイルを元に「新しいウィンドウを開く」のようなコードを書いてると思う
いろいろとオリジナルというか無手勝流というか、な制作してるようだし、個人利用に留めとけ と忠告しておきたい
ま、他人からコテンパンに罵られて伸びるタイプも居ない訳でも無いから、ご自由になんだけど(例えばMS社 毎月バグって世界中から罵られても知らん顔してアプデを続けるし)
590570 (ワッチョイ b666-9yt5)
2023/01/02(月) 21:56:15.06ID:5oIC6wjS0 ありがとうございました。
完璧なコードって、人間の行動を全て読むレベルのとんでもない高度な行為ですよね…
プログラムに携わりたいなら甘えずに向き合うべき課題なんだと思います。
年末年始みたいな時くらいしか勉強出来ないの悔しいですね。
完璧なコードって、人間の行動を全て読むレベルのとんでもない高度な行為ですよね…
プログラムに携わりたいなら甘えずに向き合うべき課題なんだと思います。
年末年始みたいな時くらいしか勉強出来ないの悔しいですね。
591デフォルトの名無しさん (ワッチョイ 9a4b-o0Tc)
2023/01/02(月) 22:55:02.83ID:qD3952vu0 上の方でエラーが出たら自分でコードを修正するって書いているから解決方法は知っているんだろ?
なら、Do loopとOn Error Go Toを使ってエラーが解決するまで、知っている限りの解決コードを全て書けばいいと思うが
なら、Do loopとOn Error Go Toを使ってエラーが解決するまで、知っている限りの解決コードを全て書けばいいと思うが
592デフォルトの名無しさん (JP 0He6-9yt5)
2023/01/03(火) 00:15:50.12ID:QpUipTPJH >>590
全てって言っても場合によるよ
入力内容のチェックなら数値文字列エラー値ぐらいでほぼ網羅できるけど、
ファイルを開いたりアクティブになったりってなるとExcelやOSとの兼ね合いも出てくるからほんとキツイ
通常操作の9割をカバーできればいいと思う
あとは起きたエラーに都度対応していくしかない
全てって言っても場合によるよ
入力内容のチェックなら数値文字列エラー値ぐらいでほぼ網羅できるけど、
ファイルを開いたりアクティブになったりってなるとExcelやOSとの兼ね合いも出てくるからほんとキツイ
通常操作の9割をカバーできればいいと思う
あとは起きたエラーに都度対応していくしかない
593デフォルトの名無しさん (ワッチョイ 1a7c-xGsa)
2023/01/03(火) 00:27:15.59ID:mykrlOkz0 >>591
ファイルロックとかは可愛いもんでウイルスに実行ファイルを書き換えられたとか、アクセス中に停電とか、HDD不安定とかもしもを考えだすと切りがない
ファイルロックとかは可愛いもんでウイルスに実行ファイルを書き換えられたとか、アクセス中に停電とか、HDD不安定とかもしもを考えだすと切りがない
594デフォルトの名無しさん (アウアウウー Sac7-9j0N)
2023/01/03(火) 01:34:33.44ID:JZU75e4ya VSCode では、同名のファイルでも、パスが異なると開ける。
a/a.txt, b/a.txt みたいに判別できる
そもそも、そういう事を想定していないアプリがおかしい。
アプリを作る際に、これぐらい誰でも分かる
a/a.txt, b/a.txt みたいに判別できる
そもそも、そういう事を想定していないアプリがおかしい。
アプリを作る際に、これぐらい誰でも分かる
595デフォルトの名無しさん (アウアウウー Sac7-9j0N)
2023/01/03(火) 01:35:01.24ID:JZU75e4ya VSCode では、同名のファイルでも、パスが異なると開ける。
a/a.txt, b/a.txt みたいに判別できる
そもそも、そういう事を想定していないアプリがおかしい。
アプリを作る際に、これぐらい誰でも分かる
a/a.txt, b/a.txt みたいに判別できる
そもそも、そういう事を想定していないアプリがおかしい。
アプリを作る際に、これぐらい誰でも分かる
596デフォルトの名無しさん (ワッチョイ fa74-s9wq)
2023/01/03(火) 01:52:28.54ID:r5MucSoo0 アルツハイマーでもこれくらい分かる
597デフォルトの名無しさん (ワッチョイ 0379-rE+U)
2023/01/03(火) 06:33:04.83ID:t9t/KRTz0 最初にon error resume nextを書いとけばランタイムエラーを出さずに原因不明の謎の挙動だけで済む
もし時間に余裕があれば目星を付けた処理の直後でif err<>0 thenでエラーになってないかチェックする
エラーの検出後はon error goto 0でエラーをクリアして再度on error resume nextを仕掛ける
これぐらいいい加減でもVBAの場合は許されるから覚えておくといい
もし時間に余裕があれば目星を付けた処理の直後でif err<>0 thenでエラーになってないかチェックする
エラーの検出後はon error goto 0でエラーをクリアして再度on error resume nextを仕掛ける
これぐらいいい加減でもVBAの場合は許されるから覚えておくといい
598デフォルトの名無しさん (ワッチョイ 9a01-+uJR)
2023/01/03(火) 06:33:48.96ID:cXTWG1PB0599デフォルトの名無しさん (ワッチョイ 9a01-+uJR)
2023/01/03(火) 06:35:37.55ID:cXTWG1PB0 >>594
むしろダメなのはメジャーなソフトではExcelぐらいだと思うぞ...
むしろダメなのはメジャーなソフトではExcelぐらいだと思うぞ...
600デフォルトの名無しさん (ワッチョイ 0eda-TwI4)
2023/01/03(火) 12:03:30.64ID:fDnSRX1A0 読み込みに失敗、書き込みに失敗程度の動作確認は初心者でなければやると思ってる
あとはエラーコード吐いて、異常がでた場合○○を確認してくださいとかで対応
フリーズしない、ファイルを壊さない、間違った表示をしないように作るのは最低でもやってほしいもんだ
俺ならそうするがみんなは違うのかな?
あとはエラーコード吐いて、異常がでた場合○○を確認してくださいとかで対応
フリーズしない、ファイルを壊さない、間違った表示をしないように作るのは最低でもやってほしいもんだ
俺ならそうするがみんなは違うのかな?
601デフォルトの名無しさん (アウアウウー Sac7-+uJR)
2023/01/03(火) 12:39:40.67ID:a1UWVOIma まあテストをどこまでやるかは状況次第だけどファイル関係をエラートラップしてリトライなりエラー表示をするのは普通だと思う
書捨てとか自分しか使わないならエラートラップを端折ってあえてVBAのエラーで止めるとかはある
個人的にないのは>>597みたいなエラーの握りつぶし
書捨てとか自分しか使わないならエラートラップを端折ってあえてVBAのエラーで止めるとかはある
個人的にないのは>>597みたいなエラーの握りつぶし
602デフォルトの名無しさん (アウアウウー Sac7-IAh0)
2023/01/03(火) 13:00:34.65ID:NsWNvAiQa まともな開発だとエラー握り潰しは絶対ダメだけどVBAだからなあ
必ずエラーが出るゴミみたいなマクロは珍しくないから、いっそ握り潰してくれた方がマシだと思うことはある
必ずエラーが出るゴミみたいなマクロは珍しくないから、いっそ握り潰してくれた方がマシだと思うことはある
603デフォルトの名無しさん (ワッチョイ 1a7c-xGsa)
2023/01/03(火) 13:33:35.71ID:mykrlOkz0604デフォルトの名無しさん (ワッチョイ 9a01-+uJR)
2023/01/03(火) 13:40:10.21ID:cXTWG1PB0605デフォルトの名無しさん (ワッチョイ 9a01-+uJR)
2023/01/03(火) 13:49:00.13ID:cXTWG1PB0606デフォルトの名無しさん (ワッチョイ 1a7c-xGsa)
2023/01/03(火) 14:02:20.98ID:mykrlOkz0607デフォルトの名無しさん (ワッチョイ 1a7c-xGsa)
2023/01/03(火) 14:07:51.30ID:mykrlOkz0 VBAでは絶対に落ちてはいけないシステムとかいう発想自体がシロウト臭丸出しでハズいな
608デフォルトの名無しさん (ワッチョイ 1a7c-xGsa)
2023/01/03(火) 14:09:48.88ID:mykrlOkz0 正月からこんなとこでイキってる程度だから仕方ないか w
609デフォルトの名無しさん (アウアウウー Sac7-+uJR)
2023/01/03(火) 14:34:55.58ID:jJKJi0M8a >>606-608
スレタイ100回読んで来年までROMっとけ
スレタイ100回読んで来年までROMっとけ
610デフォルトの名無しさん (スッップ Sdba-TwI4)
2023/01/03(火) 15:58:29.44ID:zc6LNDpCd >>593なんてハードウェアやその周りのソフトの対策であって開発するアプリケーションで考慮する話ではないと俺も思ってるけどな
まあ戻れないところまで追いつめられて必死なんだろうけどそろそろ落ち着いたらどうかね
まあ戻れないところまで追いつめられて必死なんだろうけどそろそろ落ち着いたらどうかね
611デフォルトの名無しさん
2023/01/04(水) 05:43:45.27ID:kI1B+abx0 やりたいことあって今日人生で初めてプログラミングに触れたんですけど、ぜんぜんわかりません
idが_rって書いてあるから_rって書いてんのになんでこれでエラー吐くんでしょうか
助けてください
https://i.imgur.com/xYbWeZX.jpg
https://i.imgur.com/KMcczJ7.jpg
idが_rって書いてあるから_rって書いてんのになんでこれでエラー吐くんでしょうか
助けてください
https://i.imgur.com/xYbWeZX.jpg
https://i.imgur.com/KMcczJ7.jpg
612デフォルトの名無しさん (ワッチョイ 5a7c-DvB0)
2023/01/04(水) 09:18:44.49ID:9L/11j8r0 まずインデント揃える所から覚えようか
613デフォルトの名無しさん (JP 0He6-9yt5)
2023/01/04(水) 09:44:30.63ID:fU7igCvDH614デフォルトの名無しさん (ワッチョイ 9a01-+uJR)
2023/01/04(水) 09:54:05.40ID:lFNs7lW+0 てかエラーの内容も書かない奴の相手すんなよ...
615デフォルトの名無しさん (スッップ Sdba-TwI4)
2023/01/04(水) 10:34:18.99ID:2ktLmHHjd これって前澤じゃんけんで金もらえるから自動化したいとかそういう事考えてるんじゃね?
616デフォルトの名無しさん (ワッチョイ 9a01-+uJR)
2023/01/04(水) 11:05:45.68ID:lFNs7lW+0 モチベーションの起点はなんでもいいだろ
俺だってエロ画像見たいからperl覚えた口だし
俺だってエロ画像見たいからperl覚えた口だし
617デフォルトの名無しさん (JP 0He6-9yt5)
2023/01/04(水) 11:22:52.20ID:fU7igCvDH >>615
まさにそれだね
招待すると挑戦回数が増える
謎アプリをインストールすると100円ぐらいもらえる
という仕組みらしい
プログラムを覚える同期としてはとても良いと思うが、
登録とか色々必要だからめんどくさくて検証できないな
まさにそれだね
招待すると挑戦回数が増える
謎アプリをインストールすると100円ぐらいもらえる
という仕組みらしい
プログラムを覚える同期としてはとても良いと思うが、
登録とか色々必要だからめんどくさくて検証できないな
618デフォルトの名無しさん (スッップ Sdba-TwI4)
2023/01/04(水) 11:28:33.03ID:2ktLmHHjd619デフォルトの名無しさん (ワッチョイ 9a01-+uJR)
2023/01/04(水) 11:33:57.55ID:lFNs7lW+0 教えないなら黙ってりゃいいのに...
620デフォルトの名無しさん (ワッチョイ 0eda-TwI4)
2023/01/04(水) 17:52:13.99ID:YWyY+Uw80 おまえもな
621デフォルトの名無しさん (ワッチョイ 8b01-lHxW)
2023/01/04(水) 19:22:28.05ID:Hj1uvutd0 教えないぞー!
俺は教えないぞー!!
俺は教えないぞー!!
622デフォルトの名無しさん (エムゾネ FFba-/EFQ)
2023/01/04(水) 20:38:59.74ID:SsOt/AigF それよりもグー、チョキ、パーがr、s、pになる理由を誰か説明してくれ
623デフォルトの名無しさん (ワッチョイ 1a42-ed2K)
2023/01/04(水) 20:45:41.73ID:FttywtqZ0 英語版の頭文字
624デフォルトの名無しさん
2023/01/04(水) 23:17:45.40ID:J/WGQ1Ed0 自己解決しましたありがとうございます
625デフォルトの名無しさん (オッペケ Srbb-yqJD)
2023/01/05(木) 12:03:16.68ID:iBplyV5pr すみません、質問させてください
Listのようなものに最大5000行のデータを表示、編集、Excelに保存したいです
可能なツールと良ければアドバイス等頂けないでしょうか
Listのようなものに最大5000行のデータを表示、編集、Excelに保存したいです
可能なツールと良ければアドバイス等頂けないでしょうか
626デフォルトの名無しさん (ワッチョイ 0eda-mw5R)
2023/01/05(木) 12:18:42.51ID:fXFdLaAK0 Excelを使ってみたらどうかな
627デフォルトの名無しさん (スッップ Sdba-TwI4)
2023/01/05(木) 12:36:59.21ID:f8HxjLWUd Listってなに?
俺には意味不明だけど他の人には通じるのかね
俺には意味不明だけど他の人には通じるのかね
628デフォルトの名無しさん (アウアウウー Sac7-IAh0)
2023/01/05(木) 12:45:31.09ID:8BS+8waCa >>625
PowerApps使えば一行もコード書かずにできるよ
PowerApps使えば一行もコード書かずにできるよ
629デフォルトの名無しさん (JP 0He6-TwI4)
2023/01/05(木) 12:51:12.92ID:BoetuCcOH630デフォルトの名無しさん (オッペケ Srbb-yqJD)
2023/01/05(木) 12:53:15.69ID:iBplyV5pr631デフォルトの名無しさん (JP 0He6-TwI4)
2023/01/05(木) 12:55:06.72ID:BoetuCcOH シートに書いてそれをlistviewに反映させればいいんじゃないかな
632デフォルトの名無しさん (ワッチョイ b666-9yt5)
2023/01/05(木) 12:55:24.41ID:SJZhIGhQ0 エクセル2019とそこに付随するVBAでは日付の起点が違うのですか?
ちょっと調べると1900年をうるう年と勘違いしてるとかなんとかでてきます。
44932とセルに手打ちしてから日付に直すと2023/1/6になります。
=Now()をセルに入力して数値表示すると44932、しかし日付にすると今2023/1/5
VBAは1899/12/30=1でエクセルは1900/1/1=1ということでしょうか?
それでもつじつまがあわないのですが。
ちょっと調べると1900年をうるう年と勘違いしてるとかなんとかでてきます。
44932とセルに手打ちしてから日付に直すと2023/1/6になります。
=Now()をセルに入力して数値表示すると44932、しかし日付にすると今2023/1/5
VBAは1899/12/30=1でエクセルは1900/1/1=1ということでしょうか?
それでもつじつまがあわないのですが。
633デフォルトの名無しさん (オッペケ Srbb-yqJD)
2023/01/05(木) 12:59:20.88ID:iBplyV5pr634デフォルトの名無しさん (ワッチョイ 038e-QCOi)
2023/01/05(木) 13:09:13.57ID:oKKcVbTt0 僕ちゃんの頭の中にはlistviewと勝手に名付けた理想のツールが存在しますということか
635デフォルトの名無しさん (JP 0He6-TwI4)
2023/01/05(木) 13:14:36.43ID:BoetuCcOH >>633
う~~ん、Excelが駄目な理由がよくわかんないな
キャッサバとか使ってみては??
https://forest.watch.impress.co.jp/library/software/cassavaedit/
もしくはスプレッドシート+googleform使うとか
>>632
「数値」は四捨五入されるから同じに見えるだけだよ。シリアル値を確認する時は、小数点も表示した方がいい
ちなみにmac版が1900年-1904年ぐらいがうるう年かlotusかなんかの関係でズレている。1905年以降からは全てのバージョン・マクロで同じシリアル値になる
う~~ん、Excelが駄目な理由がよくわかんないな
キャッサバとか使ってみては??
https://forest.watch.impress.co.jp/library/software/cassavaedit/
もしくはスプレッドシート+googleform使うとか
>>632
「数値」は四捨五入されるから同じに見えるだけだよ。シリアル値を確認する時は、小数点も表示した方がいい
ちなみにmac版が1900年-1904年ぐらいがうるう年かlotusかなんかの関係でズレている。1905年以降からは全てのバージョン・マクロで同じシリアル値になる
636デフォルトの名無しさん (JP 0He6-TwI4)
2023/01/05(木) 13:15:31.72ID:BoetuCcOH637デフォルトの名無しさん (スッップ Sdba-TwI4)
2023/01/05(木) 13:33:51.27ID:f8HxjLWUd >>630
どんな編集したいのか不明だけど楽したいならAccessでもいいんじゃない
そもそも質問が漠然としすぎててListの形式もわからんし
単一項目や相関項目の入力チェックとか何がしたいかも不明なんだよね
質問する側も回答欲しいなら要件を書き出せないと適切な回答もらえないぞ
どんな編集したいのか不明だけど楽したいならAccessでもいいんじゃない
そもそも質問が漠然としすぎててListの形式もわからんし
単一項目や相関項目の入力チェックとか何がしたいかも不明なんだよね
質問する側も回答欲しいなら要件を書き出せないと適切な回答もらえないぞ
638デフォルトの名無しさん (オッペケ Srbb-yqJD)
2023/01/05(木) 13:34:51.53ID:kWWCj/ior639デフォルトの名無しさん (ワッチョイ 9ada-/EFQ)
2023/01/05(木) 16:58:29.73ID:f2A56PmY0640デフォルトの名無しさん (ワッチョイ 33e5-gtGu)
2023/01/05(木) 18:51:14.37ID:EwaN69BP0641デフォルトの名無しさん (ワッチョイ 1a42-ed2K)
2023/01/05(木) 19:13:27.32ID:E/ecJHKW0 何なら良くて何がダメなのかハッキリさせておかないと何度もやり直す羽目になるパターンだな
642632 (ワッチョイ b666-9yt5)
2023/01/06(金) 03:18:12.99ID:6MUppODp0 >>635
明日の昼くらいの時間に=Now()を小数点表示させてみます!感謝です!
明日の昼くらいの時間に=Now()を小数点表示させてみます!感謝です!
643デフォルトの名無しさん (ワッチョイ 4eda-vTgN)
2023/01/06(金) 07:15:36.61ID:Kv5xGipe0 昨日Sessionで「トランプの影響力低下」
と断言した北●さん
面目丸潰れ
と断言した北●さん
面目丸潰れ
644デフォルトの名無しさん (オッペケ Srbb-lHxW)
2023/01/06(金) 12:14:29.82ID:nHEEKyAQr >>640
通じないなら通じる人が答えるから通じない人は黙ってればよくね?
通じないなら通じる人が答えるから通じない人は黙ってればよくね?
645デフォルトの名無しさん (ワッチョイ 0eda-TwI4)
2023/01/06(金) 19:13:43.70ID:dhf9eLfP0 便秘じゃしょうがないな
646デフォルトの名無しさん (ワッチョイ 275f-O8Bg)
2023/01/06(金) 21:21:30.88ID:eBXD7Bag0647デフォルトの名無しさん (ワッチョイ 515f-2AMo)
2023/01/07(土) 13:21:26.68ID:BFQrwMXK0 配列=range("A1:C3")
と格納した配列にrange("A5:C8")を追加で格納したいです
この場合、配列の要素1つづつに格納していくしかないのでしょうか?範囲をまるごと格納できますか?
と格納した配列にrange("A5:C8")を追加で格納したいです
この場合、配列の要素1つづつに格納していくしかないのでしょうか?範囲をまるごと格納できますか?
648デフォルトの名無しさん (ワッチョイ 795f-m8G9)
2023/01/07(土) 18:18:20.53ID:rkRkNs/h0 ぐぐれば配列を結合してくれる関数が出てくるよ
649デフォルトの名無しさん (ワッチョイ abda-Or7w)
2023/01/07(土) 18:45:14.41ID:XI+ZuMXx0 ぐぐれとかの用語を初心者は知らないんじゃね
650デフォルトの名無しさん (JP 0H2b-Or7w)
2023/01/07(土) 21:17:42.27ID:KZGY+9uwH >>647
用途がよく分からんけど、普通に文字列で結合していけばいいのでは?
オブジェクトで返す事もできる
Sub foo()
r = "a2:b3"
r = r & "," & "e3:f4"
r = r & "," & "h3:i4"
Range(r).Value = 1
Set ra = Range(r)
ra.Activate
End Sub
Intersect辺りでもなにかできそうかも?と考えたけど、
全然できないかもしれない
用途がよく分からんけど、普通に文字列で結合していけばいいのでは?
オブジェクトで返す事もできる
Sub foo()
r = "a2:b3"
r = r & "," & "e3:f4"
r = r & "," & "h3:i4"
Range(r).Value = 1
Set ra = Range(r)
ra.Activate
End Sub
Intersect辺りでもなにかできそうかも?と考えたけど、
全然できないかもしれない
651デフォルトの名無しさん (ワッチョイ 5b66-tb1I)
2023/01/08(日) 01:02:59.56ID:mpsC9VsR0 オブジェクト指向って
Range.Offset(1).value
みたいな事でしょうか?
自作関数って基本は引数渡して返り値貰ってみたいな手続きするだけの存在ですが、
それをオブジェクトを作る関数(Rangeオブジェクトみたいなものを生み出せる関数)にして、
その関数から出てきたオブジェクトは
メソッドA、メソッドBが使えて、プロパティA、プロパティBみたいな状態も持っている
みたいな考えの元に組んでいくとオブジェクト指向なプログラミングになるのでしょうか?
それはやはりそういう形式を取った方が、少ない脳みそでも複雑化に対応できるという事なのでしょうか?
同じ機能を持ったプログラミングを後から書き直す事があります。
勉強を進めた結果、「もしかしてこういうルールで書いた方がわかりやすいかも」みたいに思って書き直します。
うまく行くと複雑だと思っていたものがとてもチープで難易度の低いものに見えてきます。
オブジェクト指向はその極致みたいなものですか?
Range.Offset(1).value
みたいな事でしょうか?
自作関数って基本は引数渡して返り値貰ってみたいな手続きするだけの存在ですが、
それをオブジェクトを作る関数(Rangeオブジェクトみたいなものを生み出せる関数)にして、
その関数から出てきたオブジェクトは
メソッドA、メソッドBが使えて、プロパティA、プロパティBみたいな状態も持っている
みたいな考えの元に組んでいくとオブジェクト指向なプログラミングになるのでしょうか?
それはやはりそういう形式を取った方が、少ない脳みそでも複雑化に対応できるという事なのでしょうか?
同じ機能を持ったプログラミングを後から書き直す事があります。
勉強を進めた結果、「もしかしてこういうルールで書いた方がわかりやすいかも」みたいに思って書き直します。
うまく行くと複雑だと思っていたものがとてもチープで難易度の低いものに見えてきます。
オブジェクト指向はその極致みたいなものですか?
652デフォルトの名無しさん (ワッチョイ c179-Jp3v)
2023/01/08(日) 02:37:15.71ID:FOdy7Dic0 >>651
>みたいな事でしょうか?
それはメソッドチェーンという記法で、オブジェクト指向言語から生まれた副産物
一見便利で、実際これが無ければVB/VBAはとっくに廃れていたと思われる
ただしメソッドの呼び出しと中間オブジェクトの生成で毎回コストが掛かるため、
複数同じような処理を書く場合は一旦適当な変数で受けるか、VBAの場合はWithステートメントでまとめた方が良い
>みたいな事でしょうか?
それはメソッドチェーンという記法で、オブジェクト指向言語から生まれた副産物
一見便利で、実際これが無ければVB/VBAはとっくに廃れていたと思われる
ただしメソッドの呼び出しと中間オブジェクトの生成で毎回コストが掛かるため、
複数同じような処理を書く場合は一旦適当な変数で受けるか、VBAの場合はWithステートメントでまとめた方が良い
653デフォルトの名無しさん (スッププ Sdb3-BvPj)
2023/01/08(日) 02:50:51.43ID:Z6otLx+Dd オブジェクト指向の原理主義的には、関数の戻り値はあまり積極的に使用すべきではない
でもドットで階層を掘っていくのは頭悪い人にもわかりやすいから、VB系のエセオブジェクト指向ではわりとよく使われる
でもドットで階層を掘っていくのは頭悪い人にもわかりやすいから、VB系のエセオブジェクト指向ではわりとよく使われる
654デフォルトの名無しさん (ワッチョイ 795f-dd/F)
2023/01/08(日) 03:26:30.83ID:nZw+zsKC0 >>653
「関数」という自分しかわからない用語の定義で話すのはやめろ
「関数」という自分しかわからない用語の定義で話すのはやめろ
655デフォルトの名無しさん (ラクッペペ MM4b-5Yp/)
2023/01/08(日) 08:20:15.45ID:oIS5HnAUM オブジェクト指向には大きく分けてクラスベースとプロトタイプベースの2種類の流派がある
ちなみにExcel VBAのオブジェクト指向はどちらとも言えない傍流としか言いようがない
本格的にオブジェクト指向を学ぶなら別の言語の方が良い
ちなみにExcel VBAのオブジェクト指向はどちらとも言えない傍流としか言いようがない
本格的にオブジェクト指向を学ぶなら別の言語の方が良い
656デフォルトの名無しさん (JP 0H2b-Or7w)
2023/01/08(日) 11:07:33.40ID:9yImgFMvH >>651
エクセルvbaの場合、オブジェクト指向かどうかは考えなくていいよ
オブジェクト指向かどうかは、オブジェクトをメインに据えるかどうかによる
しかしエクセルvbaは「エクセル」という超巨大なオブジェクトが中心なので、
普通に書いてたら勝手にオブジェクト指向になる
エクセルvbaの場合、オブジェクト指向かどうかは考えなくていいよ
オブジェクト指向かどうかは、オブジェクトをメインに据えるかどうかによる
しかしエクセルvbaは「エクセル」という超巨大なオブジェクトが中心なので、
普通に書いてたら勝手にオブジェクト指向になる
657デフォルトの名無しさん (ワッチョイ c9ce-DSRP)
2023/01/08(日) 11:19:24.04ID:ardQjEVJ0 そもそもWindowsというOSを使ってる時点で、すべてのアプリは「Window」オブジェクトの上で転がってるだけ
658デフォルトの名無しさん (ラクッペペ MM4b-5Yp/)
2023/01/08(日) 12:08:40.63ID:6Q9yzQxXM オブジェクトの設計図そのものを作って組み合せていくスタイルがクラスベース(C++やC#など)
半完成品のオブジェクトに手を加え加工したクローンを作って組み合わせていくスタイルがプロトタイプベース(JavaScript/TypeScriptなど)
Excel VBAは完成品として用意されたオブジェクトをそのまま利用するスタイル
(VBAのクラスモジュールは変数や関数を単純 にまとめるだけでクラス自体の拡張性はほぼ無い)
半完成品のオブジェクトに手を加え加工したクローンを作って組み合わせていくスタイルがプロトタイプベース(JavaScript/TypeScriptなど)
Excel VBAは完成品として用意されたオブジェクトをそのまま利用するスタイル
(VBAのクラスモジュールは変数や関数を単純 にまとめるだけでクラス自体の拡張性はほぼ無い)
659デフォルトの名無しさん (JP 0H2b-Or7w)
2023/01/08(日) 23:34:49.21ID:9yImgFMvH sheetクラスを継承できれば・・・
いやできなくてよかった
いやできなくてよかった
660デフォルトの名無しさん (ワッチョイ c179-Jp3v)
2023/01/09(月) 00:09:50.06ID:2yNmR2Eh0 VBAのオブジェクト指向機能は、あくまでCOMを使うために設計されてると言っていいよ
OfficeやC++その他で作成されたCOMを利用するだけだし
クラスを作ったりできるのはおまけで、VBAでそこからさらに派生なんてことは誰もやらないし
OfficeやC++その他で作成されたCOMを利用するだけだし
クラスを作ったりできるのはおまけで、VBAでそこからさらに派生なんてことは誰もやらないし
661デフォルトの名無しさん (ワッチョイ 9301-Kria)
2023/01/09(月) 08:59:03.23ID:YumOwVoa0 できないからやらないだけできるなら派生とかやりまくってると思う
662デフォルトの名無しさん (JP 0H2b-Or7w)
2023/01/09(月) 12:03:48.87ID:ruGKlfL0H あまり考えたくないな
663デフォルトの名無しさん (スッププ Sdb3-BvPj)
2023/01/09(月) 13:50:58.25ID:iDst/v4Qd 現代的なオブジェクト指向ではクラスの継承はあまり使用せずインターフェイスを使うので、クラスを派生できないこと自体はそれほど問題ではない
とはいえVBAでクラスを使うべきでないのは同意する
とはいえVBAでクラスを使うべきでないのは同意する
■ このスレッドは過去ログ倉庫に格納されています
