[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/25 03:25 / Filesize : 313 KB / Number-of Response : 1018
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part78



1 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 13:43:16.31 ID:6yf2E1Gz0.net]
!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

552 名前:デフォルトの名無しさん [2022/12/30(金) 10:22:12.46 ID:xFabiT9dM.net]
無い。
配列の内容をワークシートに展開する関数を作って、
イミィディエトウインドウから 関数(配列) と実行。

553 名前:デフォルトの名無しさん [2022/12/30(金) 11:00:35.06 ID:zE3ePWnpH.net]
最初から個別の値をウォッチ式に入れておくとか
a(0)
a(1)

554 名前:544 [2022/12/30(金) 11:34:25.20 ID:WIIszMQ70.net]
>>545>>546
ありがとうございました。
個別でウォッチ追加します。

555 名前:デフォルトの名無しさん mailto:sage [2022/12/30(金) 12:00:12.33 ID:MT1c2vte0.net]
いえいえ

556 名前:デフォルトの名無しさん mailto:sage [2022/12/30(金) 15:58:51.64 ID:IwLtnZMZ0.net]
複数のExcelファイルで作業をしていると、ふと見るとVBEの左側のツリーに立ち上げたファイル名がずらずら並んでいることがあります
普通はそのファイルを閉じればツリーから消えるのですが、たまに消えずに延々と溜まりまくるときがあります
こうなるとメモリ消費しまくって最終的にはメモリ不足で動かなくなります

こうなってしまうのはどんな理由が考えられるのでしょうか
それとも、Excelは定期的に全部閉じる癖をつけておくべきなんでしょうか

557 名前:デフォルトの名無しさん [2022/12/30(金) 17:13:53.47 ID:zE3ePWnpH.net]
>>549
Excelがファイル閉じるのを失敗している
その場合、一度失敗するとそれ以降全部失敗する

再インストールか、メモリの増設した方がいいと思う
あとLAN上にあるExcelファイルを開くとそれになりやすい

558 名前:デフォルトの名無しさん mailto:sage [2022/12/30(金) 17:26:59.66 ID:esJPCknOd.net]
>>549
マクロで開いてるならマクロがおかしいから
private変数でブックを保持する様にしているならそれが解放されてないと起きるかと

559 名前:デフォルトの名無しさん mailto:sage [2022/12/30(金) 17:56:14.08 ID:IwLtnZMZ0.net]
>>550-551
ありがとうございます
他ファイル参照するために開いて閉じるようなマクロは結構多用してます
基本的には単純に開いてはデータ引っ張って保存せず閉じるというような内容ですが…

参照するファイルはLAN上ではありませんが、OneDriveの共有フォルダには置いてあります(ローカル保存)
一度この辺のマクロを見直してみたいと思います
原因がわからなければ再インストールしてみます

560 名前:デフォルトの名無しさん mailto:sage [2022/12/30(金) 19:08:24.88 ID:k0Mu53Mo0.net]
>>549-552
ウチもマクロで他の個別ブックを開いて
その中のマクロを実行して上書き保存・当該ブックを閉じる
をやってたけど、VBEの左側ツリーに閉じたはずのブックがズラズラ・・・

開くブックが70個ちょっと、中のクエリーをテーブルとして変数に設定するところで
いつもコケるようになった。
ブックの保存先はいずれもローカル。

操作するブックと操作される個別ブックの変数、プロシージャ名は
重複しないようにしていたがダメ。
次のブックを開くインターバルを1秒~とか、
クエリーはテーブルオブジェクト変数に入れているので、
毎回Nothingを入れてみたがダメ。

結局、地域毎に開くブックを50個くらいに収まるように
操作するブックを分けた。

ブックを割り当てる変数と、
それを保存・閉じる記述を見直してみようと思う。



561 名前:デフォルトの名無しさん [2022/12/30(金) 20:11:23.30 ID:zE3ePWnpH.net]
>>552
onedriveか、あれもLANと同様になんか変な挙動になっている
僕はあまりの挙動不安定さにスプレッドシートに逃げたよ

閉じる動作・共有に関して、もっと突き詰めたほうがいいかもしれない

カンだけど僕がやるなら以下のような形です。解決するかどうかは不定。

・開いたExcelを、一回activebookにしてから閉じる
・適度に、OSに処理を返す。forを使っている+時間が掛かっている場合、適当にDoEvents()を挟んでみると改善する可能性があります
・onedriveの挙動が予測できないので、一旦ダウンロードフォルダなどにコピーしてから使ってみる。
 どうも共有フォルダはタイムラグがあるのか、意図しない非同期になってしまい良くないことが起こっている気がする。

非常に問題を捉えづらい、難しい問題と思います。頑張ってください

562 名前:デフォルトの名無しさん mailto:sage [2022/12/30(金) 20:26:56.53 ID:esJPCknOd.net]
>>553
WorkbookやWorksheet含めてObjectは順序だててNothingするようにしたらそんなこと起きないとおもうよ
set oWB = xxx
set oWS = oWB.xxx
なら
set oWS = nothing
set oWB = nothing
という順ね
面倒でもNothingで解放するクセつけたほうがいいと思うぞ

563 名前:デフォルトの名無しさん [2022/12/31(土) 09:58:21.76 ID:doxP0Tnc0.net]
マクロの管理・閲覧ってみなさんはどうしてるんでしょうか?

基本的にはブックの中に保存してるとは思うんですが
ブック開かないと中身確認できないですよね?
何らかのファイルに中身を保存して、たとえばvscodeなどのエ

564 名前:fィタで開いたりするのでしょうか? []
[ここ壊れてます]

565 名前:デフォルトの名無しさん mailto:sage [2022/12/31(土) 10:37:26.00 ID:YncayN1e0.net]
俺は普通にブックをSVNでバージョン管理してる
差分を見たい時は見たいバージョンを保存して最新版と保存したバージョンから各々エクスポートして差分を取ってる
VsCode の拡張もあるみたいよ ⇒ >>462

566 名前:デフォルトの名無しさん mailto:sage [2022/12/31(土) 11:33:27.48 ID:h8iAJsoLd.net]
>>556
ブックのマクロを別ファイルに保存するということはコードの2元管理になるからしない
普通にブック開いてVBEでみるだけでそれで困ったことはない
別のブックのコードを参照したい場合は一時的にそのコードをコピペしてエディタで見ることはあるけど終わったら削除してる
何度も手直しするような事もないからバージョン管理もしてない

567 名前:デフォルトの名無しさん [2022/12/31(土) 12:12:05.76 ID:60VcS97wH.net]
>>556
特にしてない

昔はよく使う「最終行の取得」や、「set〜」なんかをまとめたブックを作ってそれをコピペしていたけど、
コピペしないほうが早い事に気づいてからはそういうのもなくなった
高速化もよほどじゃない限りしなくなったな。

568 名前:デフォルトの名無しさん mailto:sage [2022/12/31(土) 14:12:00.31 ID:QIMjPb7U0.net]
vbaでファイルを開くダイアログを出させて、ユーザーに任意のシートを指定させ、
VBA側でそのシートオブジェクトを取得して、解析をするというものを作ろうとしています。
よろしくお願いします。

ttps://oshiete.goo.ne.jp/qa/3042408.html
こちらに「シートを選択させてアクティブにする」というコードがあります。
ttps://www.kurumico.com/excel-vba-file/315/
こちらには「ファイルをダイアログから選択指定して開く」というコードがあります。

単純に組み合わせたら願望はかないました。

そこで質問したいのは
MyDialog.Controls.Add(ID:=957).Execute
これが一体何なのかということです。
エクセル2019の左下にあるシート一覧を左右に移動する
← →
このマークのところで右クリックをすると同じようなシート選択ダイアログが出てきます。
そして選ぶと、アクティブになります。

957を一覧から探してもこういう説明を見つけられないでいます
そういう理由からCommandsBarsもControls.addもイマイチ理解を深める事が出来ずにいます。
どこかいい説明サイトがありますでしょうか?

569 名前:デフォルトの名無しさん [2022/12/31(土) 15:46:44.58 ID:60VcS97wH.net]
>>560
無かった
一応コードの意味から
'新規コマンドバーを一時的に追加する
Set foo = CommandBars.Add(Temporary:=True)
'上記にコマンドID957を追加し、実行する。2はスペルチェック。多分1はダミーコードでなにも起こらないはず。
foo.Controls.Add(ID:=957).Execute

で、この957って何って質問なんだろうけど、これはシート選択ダイアログのIDと思われる。
普通は定数名で設定し、マジックナンバーは使わない。
foo.Controls.Add(xlSheetList).Execute 'のような形になるはず
定数名とIDの対応表がどこかにあるはずなんだけど、全然見つからない。もしかすると無いのかもしれない。

使い方は公式を見るのが早い
https://learn.microsoft.com/ja-jp/office/vba/api/office.commandbarcontrol
https://learn.microsoft.com/en-us/office/vba/api/office.commandbarcontrol.id
一覧はこれだと思うけど、そこにも載ってない
https://www.microsoft.com/en-us/download/details.aspx?id=50745

ただこのコマンドリストを一時的に利用するというテクニックは、これ以外に使い道は無いと思うから
そんなに深く考えなくてもいいと思うよ

570 名前:デフォルトの名無しさん mailto:sage [2022/12/31(土) 16:01:13.15 ID:jV5H7FOV0.net]
俺もID=957が何なのか探したけど見つからんな
昔のExcelでもちゃんとシート選択ダイアログは出てくるからVBAが付いてるOfficeならバージョンによって動かないみたいな事は起きないと思われるが
これが気持ち悪い場合は適当な選択フォームを作った方が良いだろうね



571 名前:560 mailto:sage [2022/12/31(土) 18:56:24.99 ID:QIMjPb7U0.net]
>>561>>562
調べていただきましてありがとうございました。
これで質問を解決とさせていただきます。
深く考えない事にしますが、これを初めて見つけた人はどうやって見つけたのでしょう…

572 名前:デフォルトの名無しさん [2022/12/31(土) 19:13:19.72 ID:60VcS97wH.net]
>>563
昔はそういう一覧が合ったんだと思う
で、マイクロソフトが更新忘れて、忘却していると思う
(別に作る義務はないんだけど)
マイクロソフトに言えば、作ってくれるかもね

573 名前:デフォルトの名無しさん mailto:sage [2022/12/31(土) 20:36:02.66 ID:2V6bSqaW0.net]
>>563
debug.Print CommandBars.Add(Temporary:=True).Controls.Add(ID:=957).Caption
「シート一覧(&S)」
これで存在を確認できるね

for-nextで総当たりして見つけたんだろうね
リボン以前の時代に

574 名前:デフォルトの名無しさん mailto:sage [2022/12/31(土) 22:52:34.11 ID:J15SQ39W0.net]
マイクロソフトのサポートに聞けば有償で教えてくれるだろ

575 名前:デフォルトの名無しさん [2023/01/01(日) 02:02:13.06 ID:WHfKVncD0.net]
素人質問で申し訳ありません。

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」の設定にしてあります。
よろしくお願いいたします。

576 名前:デフォルトの名無しさん mailto:sage [2023/01/01(日) 02:13:01.01 ID:U+Y4eA/v0.net]
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

577 名前:567 [2023/01/01(日) 02:19:43.81 ID:WHfKVncD0.net]
>>568
ID違うかもですが早急なご回答感謝です。
下から3行目のDateをNowに変更いたします。
ID:U+Y4eA/v0様とご家族の今年一年の
健康をお祈り申し上げます。

578 名前:デフォルトの名無しさん mailto:sage [2023/01/01(日) 09:02:52.64 ID:QhZkuHz30.net]
凄く初歩的な事かもしれませんが、自力でわからなかったので教えてください。
コマンドボタンが3つあって、そのうち1つがエラーで止まるとします。
エラーで止まるボタンをA
正常なコードになっているBとCみたいな

Aを押してエラーが出たらVBE画面が開いてしまいます。
そしてVBE側のリセットボタンを押さないと処理がリセットされません。
これを気にした事はありませんでした。

しかしこれから他人に使わせたいので
【1】エラーが出ても一時停止ではなくて初めから完全停止になって欲しい。
【2】エラーが出てもVBE画面が開いて欲しくない

こういうのはどうすれば良いのでしょうか?

579 名前:デフォルトの名無しさん mailto:sage [2023/01/01(日) 09:28:20.79 ID:l9m14P5Y0.net]
>>570
【2】はOn Error Go To を使ってエラーが出たら処理を辞める方法がある
もしくはエラーが出る特定のところのみOn Error Resume Nextを使ってエラーを無視して、その時にErrオブジェクトが値を持つかを見て値を持ってたら処理をやめるとか
【1】は無理
というかエラーが出ることが分かるならエラーが出ないように直すべき
個人で使うのならいいけど、他人に使わせるのにエラーが出たままは相当マズい

580 名前:デフォルトの名無しさん [2023/01/01(日) 09:31:32.39 ID:N3XMs5RAH.net]
>>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



581 名前:570 mailto:sage [2023/01/01(日) 13:29:35.26 ID:QhZkuHz30.net]
>>571>>572
無理でしたか…
「エラーが出たら一旦エクセルを再起動してもらって、私がコードを直すまではそのボタン触らないで」
っていう事にしようかと思います。

>というかエラーが出ることが分かるならエラーが出ないように直すべき
ハっとしました。
On Error Go To処理はエラーが出るの前提みたいで使うのいやだなと思ってましたが、
エラーを前提にしてたのはよっぽど自分の方でした。

解決です。ありがとうございました。

582 名前:デフォルトの名無しさん [2023/01/01(日) 20:36:34.67 ID:QH48KlFOM.net]
新年早々馬鹿か
こんなのが作ったものを使わされる人達可哀想

583 名前:デフォルトの名無しさん mailto:sage [2023/01/01(日) 21:09:46.92 ID:ZzHbs0In0.net]
>>574
おまえのほうがバカだよ

584 名前:デフォルトの名無しさん [2023/01/01(日) 21:18:44.46 ID:gVENJcWpd.net]
>エラーが出たら一旦エクセルを再起動してもらって

いや、馬鹿だろこいつ

585 名前:デフォルトの名無しさん mailto:sage [2023/01/01(日) 21:33:46.27 ID:uPXSUIhV0.net]
他人に使わせる品質でないことは確かだな

586 名前:デフォルトの名無しさん mailto:sage [2023/01/01(日) 22:55:58.30 ID:SDgcSZSgr.net]
>>573
「エラーが出たら一旦エクセルを再起動してもらって、私がコードを直すまではそのボタン触らないで」
これはいいけどさ、そもそもエラーが出るって分かってるものを使わせるのはヤバいだろ
エラーを出さないようにしてから使わせるか運用制限を書いとくかするのは必須だろ
それでもエラーが出た場合はそう言うのであって、最初からエラーありきはどう考えてもおかしい

587 名前:デフォルトの名無しさん [2023/01/01(日) 23:30:29.85 ID:gVENJcWpd.net]
>>578
よくないだろ
どんなエラーかどういうデータでエラーになってるかをエクセルを終了して全部消して連絡くださいと書いてるわけだ
馬鹿過ぎて片腹痛い

588 名前:デフォルトの名無しさん mailto:sage [2023/01/02(月) 00:23:35.65 ID:WJKKDxmM0.net]
>>579
そうだな
エラーが出た時点で連絡するべきだ
ただ「馬鹿過ぎて片腹痛い」これは言うべきか?
こういうことを言ったら萎縮してスレに書き込む人が減るだけ
メリットがなにもないどころかデメリットしかないことを言う意味はない

589 名前:デフォルトの名無しさん [2023/01/02(月) 00:43:21.31 ID:qD3952vu0.net]
エラー地雷が必ずあるボタンとか怖すぎる
マクロの結果は元に戻せないから、コードの先頭に関係するブックをセーブするように書くことをお勧めする

590 名前:デフォルトの名無しさん [2023/01/02(月) 00:49:52.66 ID:4s2WSfqGM.net]
>>580
内容も吟味せずに脊髄反射で書き込んで馬鹿を擁護するお前のような奴が馬鹿を蔓延らせることに気付くべき



591 名前:デフォルトの名無しさん [2023/01/02(月) 02:07:30.17 ID:u1h4+miEd.net]
>>580
>>560 にも答えられない馬鹿に言われてもな

592 名前:デフォルトの名無しさん mailto:sage [2023/01/02(月) 09:35:04.20 ID:WJKKDxmM0.net]
>>582
お前の書き込み内容、有益な情報が一つもないじゃん
「内容も吟味せずに脊髄反射で書き込んで馬鹿」ってお前の事?

593 名前:570 mailto:sage [2023/01/02(月) 11:24:49.11 ID:5oIC6wjS0.net]
なんだかすみません。
今回は主にファイルオープン関連で「絶対にエラーが出ない全てに対応したコード」というのが
書く自信がありませんでした。勉強不足です。

今も一つわからないのですが、例えばマクロと同じフォルダにあるBookAを開いてる状態で、
BookAファイルをさらにオープンしようとするとwin10office2019の当方環境においてエラーが出ないのですが、
これは基本的に他のパソコンでもエラーが出ないのでしょうか?
winxp以降office2000以降あたりであれば大丈夫なものなのでしょうか?

別フォルダにある同名ブックを開こうとするとエラーになります。
こちらは開く前にファイル名で既に開いてるブックを確認するコードを追加しようとみたいなサイトが
いくつも見つかるので解決したのですが、既に開いてるファイル自身を開く事が成功してしまう
ケースを通常と思ってエラーの出ないコードと考えてよろしいのでしょうか?

594 名前:デフォルトの名無しさん mailto:sage [2023/01/02(月) 11:57:58.32 ID:C7IOio2r0.net]
初心者が思い込みで作ると失敗する
開発環境と実行環境がバージョンやパッチも含めて違うなら同じ環境で動作の確認をするしかない
作ったら終わりではなく、条件を変えても正しく動作するかを確認するくらいやれよ
長いファイル名とか共有フォルダとか、サイズ0に壊したファイルとか作って試すなど

595 名前:デフォルトの名無しさん mailto:sage [2023/01/02(月) 13:14:15.32 ID:cWlG9T3F0.net]
当たり前だけどファイル操作はVBAの知識以外にOSの知識もある程度必要になるから聞かなきゃ判断できないような処理ならやらないが吉かと。
開くのは諦めてせいぜいファイルの存在確認程度にとどめておけば?

596 名前:デフォルトの名無しさん mailto:sage [2023/01/02(月) 13:45:13.52 ID:N69RPsxQd.net]
>>585
自分はWin10+Ofiice365だけど
開いているファイルと同じフォルダのファイルを開こうとすると開いているファイルがアクティブになって
別フォルダの同名ファイルであれば同じ名前のファイルは開けないってエラーになるから
古いバージョンでも一緒なんじゃないかと思うけど
回避したいならWorkBooksの内容をチェックして同じファイル名があればメッセージを出して処理を止めるなりすればいいんだと思うけどね

古いバージョンでもチェックしたいなら単純にフォルダA、フォルダBに同じファイルをいれて両方開けるか試してもらうだけでいいと思うぞ

597 名前:デフォルトの名無しさん mailto:sage [2023/01/02(月) 14:06:13.66 ID:v+YqJ02u0.net]
多分だけど、手動で同一ファイルをダブルクリックで開くような操作では無く
開いたファイルを元に「新しいウィンドウを開く」のようなコードを書いてると思う
いろいろとオリジナルというか無手勝流というか、な制作してるようだし、個人利用に留めとけ と忠告しておきたい
ま、他人からコテンパンに罵られて伸びるタイプも居ない訳でも無いから、ご自由になんだけど(例えばMS社 毎月バグって世界中から罵られても知らん顔してアプデを続けるし)

598 名前:570 mailto:sage [2023/01/02(月) 21:56:15.06 ID:5oIC6wjS0.net]
ありがとうございました。
完璧なコードって、人間の行動を全て読むレベルのとんでもない高度な行為ですよね…
プログラムに携わりたいなら甘えずに向き合うべき課題なんだと思います。
年末年始みたいな時くらいしか勉強出来ないの悔しいですね。

599 名前:デフォルトの名無しさん [2023/01/02(月) 22:55:02.83 ID:qD3952vu0.net]
上の方でエラーが出たら自分でコードを修正するって書いているから解決方法は知っているんだろ?
なら、Do loopとOn Error Go Toを使ってエラーが解決するまで、知っている限りの解決コードを全て書けばいいと思うが

600 名前:デフォルトの名無しさん [2023/01/03(火) 00:15:50.12 ID:QpUipTPJH.net]
>>590
全てって言っても場合によるよ
入力内容のチェックなら数値文字列エラー値ぐらいでほぼ網羅できるけど、
ファイルを開いたりアクティブになったりってなるとExcelやOSとの兼ね合いも出てくるからほんとキツイ
通常操作の9割をカバーできればいいと思う

あとは起きたエラーに都度対応していくしかない



601 名前:デフォルトの名無しさん mailto:sage [2023/01/03(火) 00:27:15.59 ID:mykrlOkz0.net]
>>591
ファイルロックとかは可愛いもんでウイルスに実行ファイルを書き換えられたとか、アクセス中に停電とか、HDD不安定とかもしもを考えだすと切りがない

602 名前:デフォルトの名無しさん mailto:sage [2023/01/03(火) 01:34:33.44 ID:JZU75e4ya.net]
VSCode では、同名のファイルでも、パスが異なると開ける。
a/a.txt, b/a.txt みたいに判別できる

そもそも、そういう事を想定していないアプリがおかしい。
アプリを作る際に、これぐらい誰でも分かる

603 名前:デフォルトの名無しさん mailto:sage [2023/01/03(火) 01:35:01.24 ID:JZU75e4ya.net]
VSCode では、同名のファイルでも、パスが異なると開ける。
a/a.txt, b/a.txt みたいに判別できる

そもそも、そういう事を想定していないアプリがおかしい。
アプリを作る際に、これぐらい誰でも分かる

604 名前:デフォルトの名無しさん [2023/01/03(火) 01:52:28.54 ID:r5MucSoo0.net]
アルツハイマーでもこれくらい分かる

605 名前:デフォルトの名無しさん mailto:sage [2023/01/03(火) 06:33:04.83 ID:t9t/KRTz0.net]
最初にon error resume nextを書いとけばランタイムエラーを出さずに原因不明の謎の挙動だけで済む
もし時間に余裕があれば目星を付けた処理の直後でif err<>0 thenでエラーになってないかチェックする
エラーの検出後はon error goto 0でエラーをクリアして再度on error resume nextを仕掛ける
これぐらいいい加減でもVBAの場合は許されるから覚えておくといい

606 名前:デフォルトの名無しさん mailto:sage [2023/01/03(火) 06:33:48.96 ID:cXTWG1PB0.net]
>>593
でた、極論で語る奴w
お前は毎回そこまで考えてコード書いてるのかよ

607 名前:デフォルトの名無しさん mailto:sage [2023/01/03(火) 06:35:37.55 ID:cXTWG1PB0.net]
>>594
むしろダメなのはメジャーなソフトではExcelぐらいだと思うぞ...

608 名前:デフォルトの名無しさん mailto:sage [2023/01/03(火) 12:03:30.64 ID:fDnSRX1A0.net]
読み込みに失敗、書き込みに失敗程度の動作確認は初心者でなければやると思ってる
あとはエラーコード吐いて、異常がでた場合○○を確認してくださいとかで対応
フリーズしない、ファイルを壊さない、間違った表示をしないように作るのは最低でもやってほしいもんだ
俺ならそうするがみんなは違うのかな?

609 名前:デフォルトの名無しさん mailto:sage [2023/01/03(火) 12:39:40.67 ID:a1UWVOIma.net]
まあテストをどこまでやるかは状況次第だけどファイル関係をエラートラップしてリトライなりエラー表示をするのは普通だと思う
書捨てとか自分しか使わないならエラートラップを端折ってあえてVBAのエラーで止めるとかはある
個人的にないのは>>597みたいなエラーの握りつぶし

610 名前:デフォルトの名無しさん mailto:sage [2023/01/03(火) 13:00:34.65 ID:NsWNvAiQa.net]
まともな開発だとエラー握り潰しは絶対ダメだけどVBAだからなあ
必ずエラーが出るゴミみたいなマクロは珍しくないから、いっそ握り潰してくれた方がマシだと思うことはある



611 名前:デフォルトの名無しさん (ワッチョイ 1a7c-xGsa) mailto:sage [2023/01/03(火) 13:33:35.71 ID:mykrlOkz0.net]
>>598
アホが食いつかんかなと思って恣意的に書たんたがこれほどとはw
こどおじには解らんだろうが絶対落ちてはいけないシステムならそのくらいの対策は普通にされてるぞ

612 名前:デフォルトの名無しさん (ワッチョイ 9a01-+uJR) mailto:sage [2023/01/03(火) 13:40:10.21 ID:cXTWG1PB0.net]
>>602
VBA だから握りつぶしても良いと言うのはよくわからん
まあモダンな言語に比べてエラー処理がやりにくいと言うのはあるけど

613 名前:デフォルトの名無しさん mailto:sage [2023/01/03(火) 13:49:00.13 ID:cXTWG1PB0.net]
>>603
VBA で書く絶対落ちてはいけないシステム!
本でも出せば?w

614 名前:デフォルトの名無しさん mailto:sage [2023/01/03(火) 14:02:20.98 ID:mykrlOkz0.net]
>>605
おいおい俺はVBAとは言ってないぞ
お前が勝手に吹いてるだけなんだが自覚できんのか

615 名前:デフォルトの名無しさん mailto:sage [2023/01/03(火) 14:07:51.30 ID:mykrlOkz0.net]
VBAでは絶対に落ちてはいけないシステムとかいう発想自体がシロウト臭丸出しでハズいな

616 名前:デフォルトの名無しさん mailto:sage [2023/01/03(火) 14:09:48.88 ID:mykrlOkz0.net]
正月からこんなとこでイキってる程度だから仕方ないか w

617 名前:デフォルトの名無しさん mailto:sage [2023/01/03(火) 14:34:55.58 ID:jJKJi0M8a.net]
>>606-608
スレタイ100回読んで来年までROMっとけ

618 名前:デフォルトの名無しさん mailto:sage [2023/01/03(火) 15:58:29.44 ID:zc6LNDpCd.net]
>>593なんてハードウェアやその周りのソフトの対策であって開発するアプリケーションで考慮する話ではないと俺も思ってるけどな
まあ戻れないところまで追いつめられて必死なんだろうけどそろそろ落ち着いたらどうかね

619 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 05:43:45.27 ID:kI1B+abx0.net]
やりたいことあって今日人生で初めてプログラミングに触れたんですけど、ぜんぜんわかりません
idが_rって書いてあるから_rって書いてんのになんでこれでエラー吐くんでしょうか
助けてください
https://i.imgur.com/xYbWeZX.jpg
https://i.imgur.com/KMcczJ7.jpg

620 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 09:18:44.49 ID:9L/11j8r0.net]
まずインデント揃える所から覚えようか



621 名前:デフォルトの名無しさん [2023/01/04(水) 09:44:30.63 ID:fU7igCvDH.net]
>>611
Seleniumでスクレイピングしようとしてるのは分かるけど、
その部分だけコード見せられても分からない
全部見せて

622 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 09:54:05.40 ID:lFNs7lW+0.net]
てかエラーの内容も書かない奴の相手すんなよ...

623 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 10:34:18.99 ID:2ktLmHHjd.net]
これって前澤じゃんけんで金もらえるから自動化したいとかそういう事考えてるんじゃね?

624 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 11:05:45.68 ID:lFNs7lW+0.net]
モチベーションの起点はなんでもいいだろ
俺だってエロ画像見たいからperl覚えた口だし

625 名前:デフォルトの名無しさん [2023/01/04(水) 11:22:52.20 ID:fU7igCvDH.net]
>>615
まさにそれだね
招待すると挑戦回数が増える
謎アプリをインストールすると100円ぐらいもらえる
という仕組みらしい

プログラムを覚える同期としてはとても良いと思うが、
登録とか色々必要だからめんどくさくて検証できないな

626 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 11:28:33.03 ID:2ktLmHHjd.net]
>>616
おれは教えないだけだから別にかまわんよ
そもそも今さらそんなこと聞いてる奴だから他でも聞いてるかもしれんし作れるとも思えないしな

627 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 11:33:57.55 ID:lFNs7lW+0.net]
教えないなら黙ってりゃいいのに...

628 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 17:52:13.99 ID:YWyY+Uw80.net]
おまえもな

629 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 19:22:28.05 ID:Hj1uvutd0.net]
教えないぞー!
俺は教えないぞー!!

630 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 20:38:59.74 ID:SsOt/AigF.net]
それよりもグー、チョキ、パーがr、s、pになる理由を誰か説明してくれ



631 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 20:45:41.73 ID:FttywtqZ0.net]
英語版の頭文字

632 名前:デフォルトの名無しさん [2023/01/04(水) 23:17:45.40 ID:J/WGQ1Ed0.net]
自己解決しましたありがとうございます

633 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 12:03:16.68 ID:iBplyV5pr.net]
すみません、質問させてください
Listのようなものに最大5000行のデータを表示、編集、Excelに保存したいです
可能なツールと良ければアドバイス等頂けないでしょうか

634 名前:デフォルトの名無しさん [2023/01/05(木) 12:18:42.51 ID:fXFdLaAK0.net]
Excelを使ってみたらどうかな

635 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 12:36:59.21 ID:f8HxjLWUd.net]
Listってなに?
俺には意味不明だけど他の人には通じるのかね

636 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 12:45:31.09 ID:8BS+8waCa.net]
>>625
PowerApps使えば一行もコード書かずにできるよ

637 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 12:51:12.92 ID:BoetuCcOH.net]
>>625
それ本当にExcelそのものじゃん
新しいウィンドウを開くとか試してみて

638 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 12:53:15.69 ID:iBplyV5pr.net]
>>627
listviewなどです
listviewはコード以外に画面編集可能ですか?

639 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 12:55:06.72 ID:BoetuCcOH.net]
シートに書いてそれをlistviewに反映させればいいんじゃないかな

640 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 12:55:24.41 ID:SJZhIGhQ0.net]
エクセル2019とそこに付随するVBAでは日付の起点が違うのですか?
ちょっと調べると1900年をうるう年と勘違いしてるとかなんとかでてきます。

44932とセルに手打ちしてから日付に直すと2023/1/6になります。
=Now()をセルに入力して数値表示すると44932、しかし日付にすると今2023/1/5

VBAは1899/12/30=1でエクセルは1900/1/1=1ということでしょうか?
それでもつじつまがあわないのですが。



641 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 12:59:20.88 ID:iBplyV5pr.net]
>>631
それを嫌っている人達がいるんですよ
であればlistview等を使用してどうにかするしかないですが、そこまでするならVBAでやる必要が無いと思ってます

642 名前:デフォルトの名無しさん [2023/01/05(木) 13:09:13.57 ID:oKKcVbTt0.net]
僕ちゃんの頭の中にはlistviewと勝手に名付けた理想のツールが存在しますということか

643 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 13:14:36.43 ID:BoetuCcOH.net]
>>633
う~~ん、Excelが駄目な理由がよくわかんないな

キャッサバとか使ってみては??
https://forest.watch.impress.co.jp/library/software/cassavaedit/

もしくはスプレッドシート+googleform使うとか

>>632
「数値」は四捨五入されるから同じに見えるだけだよ。シリアル値を確認する時は、小数点も表示した方がいい
ちなみにmac版が1900年-1904年ぐらいがうるう年かlotusかなんかの関係でズレている。1905年以降からは全てのバージョン・マクロで同じシリアル値になる

644 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 13:15:31.72 ID:BoetuCcOH.net]
>>634
通じるからいいじゃん
無駄な煽りはやめよう

>>633
いい忘れてたけどlistviewじゃなくてlistboxかなんか

645 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 13:33:51.27 ID:f8HxjLWUd.net]
>>630
どんな編集したいのか不明だけど楽したいならAccessでもいいんじゃない
そもそも質問が漠然としすぎててListの形式もわからんし
単一項目や相関項目の入力チェックとか何がしたいかも不明なんだよね
質問する側も回答欲しいなら要件を書き出せないと適切な回答もらえないぞ

646 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 13:34:51.53 ID:kWWCj/ior.net]
>>635
項目が50近くあって混乱するからといった理由ですね
他の人はできてますしそれくらい覚えられると思いますが、とにかく多量のデータを見ると混乱するそうです

647 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 16:58:29.73 ID:f2A56PmY0.net]
>>632
ちょっとだけじゃ無くて、もっと調べると簡単に理由が出て来るじゃん
で、1900年の日付のデータを扱う必要が頻繁にあるのだとしたら、もっと詳しく調べて間違いが無いようにしとかないと

648 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 18:51:14.37 ID:EwaN69BP0.net]
>>636
通じないよ
Excelシートが閲覧、編集すべての点で最適

649 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 19:13:27.32 ID:E/ecJHKW0.net]
何なら良くて何がダメなのかハッキリさせておかないと何度もやり直す羽目になるパターンだな

650 名前:632 mailto:sage [2023/01/06(金) 03:18:12.99 ID:6MUppODp0.net]
>>635
明日の昼くらいの時間に=Now()を小数点表示させてみます!感謝です!



651 名前:デフォルトの名無しさん mailto:sage [2023/01/06(金) 07:15:36.61 ID:Kv5xGipe0.net]
昨日Sessionで「トランプの影響力低下」
と断言した北●さん
面目丸潰れ

652 名前:デフォルトの名無しさん mailto:sage [2023/01/06(金) 12:14:29.82 ID:nHEEKyAQr.net]
>>640
通じないなら通じる人が答えるから通じない人は黙ってればよくね?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<313KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef