Excel VBA 質問スレ Part78

■ このスレッドは過去ログ倉庫に格納されています
2022/10/30(日) 13:43:16.31ID:6yf2E1Gz0
!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
2023/01/05(木) 19:13:27.32ID:E/ecJHKW0
何なら良くて何がダメなのかハッキリさせておかないと何度もやり直す羽目になるパターンだな
2023/01/06(金) 03:18:12.99ID:6MUppODp0
>>635
明日の昼くらいの時間に=Now()を小数点表示させてみます!感謝です!
2023/01/06(金) 07:15:36.61ID:Kv5xGipe0
昨日Sessionで「トランプの影響力低下」
と断言した北●さん
面目丸潰れ
2023/01/06(金) 12:14:29.82ID:nHEEKyAQr
>>640
通じないなら通じる人が答えるから通じない人は黙ってればよくね?
2023/01/06(金) 19:13:43.70ID:dhf9eLfP0
便秘じゃしょうがないな
646デフォルトの名無しさん (ワッチョイ 275f-O8Bg)
垢版 |
2023/01/06(金) 21:21:30.88ID:eBXD7Bag0
>>642
セルの書式との組み合わせだから、セルの書式を意識しないと「標準」ではまる。

Excelの「標準」はExcelだけにしかわからないから、Excelで閉じた世界でないから使わない方がいい。
2023/01/07(土) 13:21:26.68ID:BFQrwMXK0
配列=range("A1:C3")
と格納した配列にrange("A5:C8")を追加で格納したいです
この場合、配列の要素1つづつに格納していくしかないのでしょうか?範囲をまるごと格納できますか?
2023/01/07(土) 18:18:20.53ID:rkRkNs/h0
ぐぐれば配列を結合してくれる関数が出てくるよ
2023/01/07(土) 18:45:14.41ID:XI+ZuMXx0
ぐぐれとかの用語を初心者は知らないんじゃね
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辺りでもなにかできそうかも?と考えたけど、
全然できないかもしれない
2023/01/08(日) 01:02:59.56ID:mpsC9VsR0
オブジェクト指向って
Range.Offset(1).value
みたいな事でしょうか?

自作関数って基本は引数渡して返り値貰ってみたいな手続きするだけの存在ですが、
それをオブジェクトを作る関数(Rangeオブジェクトみたいなものを生み出せる関数)にして、
その関数から出てきたオブジェクトは
メソッドA、メソッドBが使えて、プロパティA、プロパティBみたいな状態も持っている
みたいな考えの元に組んでいくとオブジェクト指向なプログラミングになるのでしょうか?

それはやはりそういう形式を取った方が、少ない脳みそでも複雑化に対応できるという事なのでしょうか?

同じ機能を持ったプログラミングを後から書き直す事があります。
勉強を進めた結果、「もしかしてこういうルールで書いた方がわかりやすいかも」みたいに思って書き直します。
うまく行くと複雑だと思っていたものがとてもチープで難易度の低いものに見えてきます。

オブジェクト指向はその極致みたいなものですか?
2023/01/08(日) 02:37:15.71ID:FOdy7Dic0
>>651
>みたいな事でしょうか?
それはメソッドチェーンという記法で、オブジェクト指向言語から生まれた副産物
一見便利で、実際これが無ければVB/VBAはとっくに廃れていたと思われる
ただしメソッドの呼び出しと中間オブジェクトの生成で毎回コストが掛かるため、
複数同じような処理を書く場合は一旦適当な変数で受けるか、VBAの場合はWithステートメントでまとめた方が良い
2023/01/08(日) 02:50:51.43ID:Z6otLx+Dd
オブジェクト指向の原理主義的には、関数の戻り値はあまり積極的に使用すべきではない
でもドットで階層を掘っていくのは頭悪い人にもわかりやすいから、VB系のエセオブジェクト指向ではわりとよく使われる
654デフォルトの名無しさん (ワッチョイ 795f-dd/F)
垢版 |
2023/01/08(日) 03:26:30.83ID:nZw+zsKC0
>>653
「関数」という自分しかわからない用語の定義で話すのはやめろ
2023/01/08(日) 08:20:15.45ID:oIS5HnAUM
オブジェクト指向には大きく分けてクラスベースとプロトタイプベースの2種類の流派がある
ちなみにExcel VBAのオブジェクト指向はどちらとも言えない傍流としか言いようがない
本格的にオブジェクト指向を学ぶなら別の言語の方が良い
2023/01/08(日) 11:07:33.40ID:9yImgFMvH
>>651
エクセルvbaの場合、オブジェクト指向かどうかは考えなくていいよ

オブジェクト指向かどうかは、オブジェクトをメインに据えるかどうかによる
しかしエクセルvbaは「エクセル」という超巨大なオブジェクトが中心なので、
普通に書いてたら勝手にオブジェクト指向になる
2023/01/08(日) 11:19:24.04ID:ardQjEVJ0
そもそもWindowsというOSを使ってる時点で、すべてのアプリは「Window」オブジェクトの上で転がってるだけ
2023/01/08(日) 12:08:40.63ID:6Q9yzQxXM
オブジェクトの設計図そのものを作って組み合せていくスタイルがクラスベース(C++やC#など)
半完成品のオブジェクトに手を加え加工したクローンを作って組み合わせていくスタイルがプロトタイプベース(JavaScript/TypeScriptなど)
Excel VBAは完成品として用意されたオブジェクトをそのまま利用するスタイル
(VBAのクラスモジュールは変数や関数を単純 にまとめるだけでクラス自体の拡張性はほぼ無い)
2023/01/08(日) 23:34:49.21ID:9yImgFMvH
sheetクラスを継承できれば・・・
いやできなくてよかった
2023/01/09(月) 00:09:50.06ID:2yNmR2Eh0
VBAのオブジェクト指向機能は、あくまでCOMを使うために設計されてると言っていいよ
OfficeやC++その他で作成されたCOMを利用するだけだし
クラスを作ったりできるのはおまけで、VBAでそこからさらに派生なんてことは誰もやらないし
2023/01/09(月) 08:59:03.23ID:YumOwVoa0
できないからやらないだけできるなら派生とかやりまくってると思う
2023/01/09(月) 12:03:48.87ID:ruGKlfL0H
あまり考えたくないな
2023/01/09(月) 13:50:58.25ID:iDst/v4Qd
現代的なオブジェクト指向ではクラスの継承はあまり使用せずインターフェイスを使うので、クラスを派生できないこと自体はそれほど問題ではない
とはいえVBAでクラスを使うべきでないのは同意する
2023/01/10(火) 19:35:26.63ID:2zy2vhhW0
オブジェクト指向は考え方の一つとして知っていればいい
2023/01/10(火) 19:47:40.17ID:10oUx2C+a
VBAのたとえなんちゃってオブジェクト指向でもクラスは普通に便利じゃん

俺はカプセル化もオブジェクト指向も正直どうでもいいから
Publicで書いたりすることも少なく無い
2023/01/11(水) 00:58:56.65ID:UjJptVS80
オブジェクト指向の話は自分にはまだ早かったようです。
時間のあるときにC++やC#の世界がどんなものか覗いてみようと思います。
ありがとうございました。

ちょっと初歩的な事で質問をしたいのですが、
UserForm1の方に
Private Sub ButtonEnter_Click()
FormData = TextBox1.Value
Unload Me
End Sub
とあるとします。エクセルシート側のコマンドボタンに登録してるマクロには
Public FormData as Variant
Sub Sample()
FormData = 1
UserForm1.Show vbModeless
MsgBox FormData
end Sub
みたいにしてパブリック変数でフォームの入力値のやりとりをしようとしています。
しかしこれを実行するとユーザーフォームが表示された直後にMsgBoxが1表示してきます。
原因はvbModelessまでは調べが付きました。
RefEditでvbModeless使うとボタンが反応しなくなりエクセルの強制終了しか手がなくなる事も。
win10office2019環境特有かもしれませんが。

そこで質問ですがvbModelessって本来どうやって使うものなのでしょうか?
この挙動だと何にも使えない気がするのです。
処理がShowで止まらずに進んでしまうので入力値を受け取れませんし。
処理を止めるコードとセットで使うのでしょうか?
RefEditでは絶対にvbModelessは正常に動作しませんか?
2023/01/11(水) 07:07:46.99ID:ESDkH7B7d
画面表示後に後続のコードを実行させたくないなら vbModal にしないとだめ
vbModeless のままで作りたいなら後続のコードを画面側にもっていくか
ブック側に別のPublic関数として用意して画面側から実行するなりしないとだめ

vbModeless は画面を表示した状態でもブック側を操作できるようにしたいときに指定するものなので
そういう事をしたいときに使いましょう
668デフォルトの名無しさん (ワッチョイ 19da-tb1I)
垢版 |
2023/01/11(水) 07:14:17.28ID:pPL7W2Oc0
>>666
vbModeless は単純にユーザーフォームを表示したままEXCELシートを編集できるようにするか
否かなので、入力待ちのような場合には不要ですね。
本来の使い方というか、特徴からしてフローティングツールボックスみたいなことができる感じ?
Photoshopとか見たことあるとイメージしやすいかな。。。

必要かどうかは置いておいて例えば、、、
複数のマクロが作ってあるEXCELファイルでシート上のコマンドボタンでマクロ呼出ししようと
すると当然、別シートに移ると使えなくなるけどvbModelessのユーザーフォームに作っておけば
シートを移ってもボタン一発で呼び出せる、みたいな?
あとはテーブルがいくつか作られているシートでテーブルを渡りながら編集する必要がある場合、
目的のテーブルのみを表示させるマクロを登録しておけば簡単にアクセスできるようになる、とか。
どちらもどうでもいい使い方だけどw
ユーザーフォームとのデータの受け渡しならココを参考にしてみては?
関数化して引数でやりとりしてしまえばいいような気がする。。。
https://excel-ubara.com/excelvba3/EXCELFORM010.html
2023/01/11(水) 10:17:37.94ID:UjJptVS80
>>667>>668
ありがとうございます。
パブリック変数よりFunctionの戻り値をうまく使うっていう方がいいのですね。
UserForm_Initializeもいらなくなりそうですね。
フォームが増えていくとフォーム毎に渡すよう受け取るようのパブリック変数作って
ちょっと管理しづらいなと思っていましたのでいい勉強になりました。
Hideも使っていきます。
モーダルだとフォーム出てる間、タッチパッドの二本指スクロールが正常に動作しなくなるので
そのためだけにモードレスに魅力を感じていました。
2023/01/11(水) 10:30:30.16ID:UjJptVS80
>>668
ちなみにそのサイトにあるdoModalというフォーム側に書くパブリック関数名ですが。
今試したところ、標準モジュールと違ってPublic Subで同名のdoModal関数を
フォーム毎に一つずつ名前重複エラーにならなかったんですが、これを仕様として受け止めて
フォーム側の呼び出し関数を全部同じ名前にしてしまっても安全でしょうか?

フォームが5個あるとして、別々の呼び出し関数を作るのは名前を憶えれないどうせ
呼び出し時には
標準モジュール側で
受け取る変数名 = FormName.doModal(引数1,引数2)
みたいにするので別にdoModalにこだわりませんでが
フォーム名.Initializeとか、フォーム名.ShowMeとかにする危険性はありますでしょうか?
2023/01/11(水) 10:47:26.82ID:fNRPVgbqM
オブジェクト指向ですね
2023/01/11(水) 11:07:44.33ID:ESDkH7B7d
>>670
標準モジュールに宣言するPublic関数とは違って
ユーザーフォームに宣言するPublic関数はユーザーフォーム名.XXXのような記載をして呼び出すので同名の関数でも構わない
(XXX単独では呼べない)
2023/01/11(水) 11:12:01.18ID:ESDkH7B7d
>>670
VBEの画面でF2を押下するとオブジェクトブラウザが表示されるから
自分で作った変数や関数がどういう管理をされているかみてみるといいかもね
2023/01/11(水) 12:42:00.54ID:R7jAcCIud
>>670

> みたいにするので別にdoModalにこだわりませんでが
> フォーム名.Initializeとか、フォーム名.ShowMeとかにする危険性はありますでしょうか?

頭にshowをつけてユニークな名前にすることは個人的にはよくある。
initializeはつけたことないけどユニークな名前なら平気なんじゃないかな。ただVBA側で用意されている名前に酷似してしまうから避けるけど。
2023/01/11(水) 14:39:04.35ID:UjJptVS80
>>672
そうですよね。自信持って決まった名前のやつ使い回します。
>>673
見る習慣なかったですが見ないと理解は深まらないやつですねこれは。
>>674
予約語とぶつからないよう気を付けます。

グローバル変数のやりとりなくしたら右上×ボタン閉じでエラーが出る原因が突き止められなくて苦労しました。
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
Cancel = True
Me.Hide
End If
End Sub
右上×ボタンで閉じるとShowの次の行に制御は戻るのに、モジュールレベルの変数は
値をクリアされてしまうのですね。
とりあえずグローバルのやりとりは卒業できました。ありがとうございました。
676デフォルトの名無しさん (ワッチョイ 5b19-bgKu)
垢版 |
2023/01/11(水) 23:25:55.84ID:DN2jjrph0
オブジェクト指向では
多態性を覚えて初めてその恩恵を実感すると思う。
2023/01/12(木) 01:03:37.94ID:kydlVtmO0
>>676
多態性とは…
プログラムの経験が浅いとイマイチ具体例が出て来なくてモヤモヤっとした状態から抜け出せませんね。
VBAはオブジェクトは作れないけど、元々作ってあるオブジェクトの利用は出来るんですよね?多分
as objectとされるものは大体、オブジェクト名.プロパティ名とかオブジェクト名.メソッド名みたいなの持ってますよね。

継承というのは、Range.InsertとRange.EntireRow.Insertみたいな親クラスのメソッドを
引き継いでる子クラスみたいなことなのでしょうか。
今の経験量ではどれだけリファレンスサイトを読んでもピンときません。
残念ですし、アドバイスを活かせず申し訳ないです。

オブジェクト指向と非オブジェクト指向の境目がわかるようになるまで深入りしないようにしようと思っています。
2023/01/12(木) 01:27:45.18ID:285P/eUV0
VBAはそもそもちゃんとしたオブジェクト指向言語じゃないから
ちゃんとしたオブジェクト指向言語やらんと、その境目なんてわからんよ
679デフォルトの名無しさん (ワッチョイ 5b19-bgKu)
垢版 |
2023/01/12(木) 05:03:44.98ID:DzjvAA7t0
そうね
Object指向の概念はVBAだけやってれば
人によっては一生身につかないかもね。

この手の参考資料が一番多いのはやっぱりJavaになるのかなぁ。
VBAと文法が近いVB.Netでもあまり見かけないね。アレもIObject指向言語なのに。
680デフォルトの名無しさん (スッップ Sdb3-kOMB)
垢版 |
2023/01/12(木) 14:53:02.95ID:HTRe+k0wd
>>679
お前には見つけられないだけ
2023/01/12(木) 15:01:56.40ID:LJFXYIUK0
vbscriptでwin32apiのキーダウンを使おうとしているのですが、
キーダウンは検知できるのですが、標準入力に押したキーが入ってしまいます。
この標準入力を削除することはできないでしょうか
もしくはキーダウンが標準入力にならないようにする方法はないでしょうか
2023/01/12(木) 15:37:08.41ID:EIUtrygUd
ここはExcelVBAのスレなのでスレチです
2023/01/12(木) 18:59:52.86ID:UVTOHIyL0
vbsのスレは気持ち悪いからねえ
win32apiコールとか何でもできるpowershellを検討しよう
684デフォルトの名無しさん (ブーイモ MM4b-AA8W)
垢版 |
2023/01/12(木) 21:50:28.71ID:YA4W27ZxM
でもパワーシェルはダブルクリックで起動できないって
ところが
685デフォルトの名無しさん (スッップ Sdb3-kOMB)
垢版 |
2023/01/12(木) 22:14:31.34ID:HTRe+k0wd
>>684
馬鹿にはできないだけだぞ
2023/01/12(木) 22:22:53.89ID:Iq4TKL6o0
>>684
バッチからPowerShell呼べばいいだけ
2023/01/12(木) 22:26:21.46ID:9uITPonqM
PowerShellのスクリプトは.ps1ファイル
普通に起動できる
688デフォルトの名無しさん (ワッチョイ 5b19-bgKu)
垢版 |
2023/01/12(木) 22:27:21.44ID:DzjvAA7t0
>>680
そうなんかな?
VBAのデザインパターン扱ってる本なんて見たことないけど
689デフォルトの名無しさん (スッップ Sdb3-kOMB)
垢版 |
2023/01/12(木) 22:47:57.75ID:HTRe+k0wd
>>688
VB.NETの方
690デフォルトの名無しさん (ブーイモ MM4b-AA8W)
垢版 |
2023/01/13(金) 05:15:26.60ID:60PuJGcsM
パワーシェルでやってみます
2023/01/13(金) 06:09:05.42ID:pezk+gKQa
オブジェクト指向の典型は、Ruby on Rails。
派生ばっかり

おまけにRubyは、メソッドチェーンで関数型プログラミングもできる

ウェブ開発では、ガチガチのオブジェクト指向で、
テキスト処理では、Linux のパイプラインみたいなメソッドチェーンの両方を使うから、
あらゆるデザインパターンの宝庫

おまけに、Stack Overflow によると米国年収ではトップ。
Rubyは9.3万ドル、多くの言語は6.5万ドル、PHPは5万ドル
692デフォルトの名無しさん (ワッチョイ 5b19-bgKu)
垢版 |
2023/01/13(金) 09:12:44.75ID:ZL1fQ8g50
>>691
でも
日本ではVBAより平均年収安いって記事
前このスレに挙げられてたよね
2023/01/14(土) 13:37:47.00ID:wDcYqAP4a
また何かにつけて馬鹿馬鹿って連呼するヤツが来たか。揚げ足の取り合い、誹謗中傷スレになるのも時間の問題だな
荒らしにイチイチ構っているお前らも同罪
694デフォルトの名無しさん (アウアウウー Sa91-487d)
垢版 |
2023/01/14(土) 15:05:35.60ID:Ta24dazVa
そんな馬鹿な
2023/01/14(土) 16:08:53.73ID:2YQsutp50
Rubyはほんとにオブジェクト指向の学習に向いてるのに5chだとキチガイのせいで勧めづらい
いい加減消えてほしい
2023/01/14(土) 21:16:02.63ID:MMspDEqhH
今ruby勧めたらボッコボコにたたかれるだろうな
2023/01/15(日) 03:52:20.14ID:N2qBk67x0
新年明けましておめでとう
今年はここの住人に《禿》とか《馬鹿》とか《氏ね》とか言われない事を目標にするぞ!
2023/01/15(日) 09:48:56.12ID:OWvGRTxwH
>>697
禿ましておめでとうございます
2023/01/15(日) 22:39:41.40ID:aQZF8rrya
氏ね
2023/01/16(月) 01:40:45.06ID:EHand8Cf0
>>682
VBSからWin32api呼ぶのにVBA使わんの?
2023/01/16(月) 03:47:49.20ID:O4/VkLb30
別の確実な方法があるのにそんなもん使わないのでは
2023/01/16(月) 04:20:04.61ID:MheiSf/Y0
VBA使ってAPIコールするなら最初からVBAで作るだろ...
何が悲しくてvbsなんて使うんだよ
2023/01/16(月) 07:47:36.98ID:6JcN0E/Sd
>>700
ここは”Excel”のVBAスレです
2023/01/16(月) 07:56:54.09ID:pOVzc0STH
もう忘れたけどvbsの方がいい場面があることはある
ただもう二度と使う事はないだろう
2023/01/16(月) 11:52:06.85ID:9WgehSBk0
Excelのスレだったのか?
706デフォルトの名無しさん (アウアウウー Sa91-487d)
垢版 |
2023/01/16(月) 11:57:18.10ID:ySDGoo7La
スレタイ読めないのか
2023/01/16(月) 12:02:48.00ID:saP8Jzxpr
>>705
流石にこの発言は馬鹿と言われても仕方ないな
2023/01/16(月) 12:10:40.38ID:6JcN0E/Sd
Excelにかぎらなければこっちにスレがあるからこちらへどうぞ

VBAなんでも質問スレ Part3
https://mevius.5ch.net/test/read.cgi/tech/1631184381/
2023/01/16(月) 12:19:23.79ID:saP8Jzxpr
>>708
質問するにはこっちのスレの方が平和的でいいな
このスレには人をバカにしてマウント取るような人間しかいないし
2023/01/16(月) 12:29:47.52ID:Y+j2ikJL0
それはw 自分の発言読み返して反省しろよw >>705 はボケただけだろ 客席がドッ!と沸くトコだぞ
2023/01/16(月) 12:40:01.09ID:jJVBcCwBa
ガチでボケてるのか後出しでボケたことにしたいのか
どちらにせよ>>710が恥ずかしいことに変わりはないなw
2023/01/16(月) 18:41:31.88ID:9WgehSBk0
スレの住人のカラーや雰囲気全然違ってワロタww
ここは人をバカにして楽しむクソスレww
2023/01/16(月) 19:21:15.63ID:2xniVU/jM
winapi使いたいならexe作れよ
古いけどVB.NETのコンパイラ入ってるから
2023/01/16(月) 21:08:05.75ID:6JcN0E/Sd
>>712
ここにはスレタイも読めなければスレの趣旨も理解できずにただ雑談にくる人も多いからね
クソスレにしてるのはあなたみたいな人だって事を理解したほうがいい
2023/01/17(火) 21:21:18.66ID:uo4zKdp70
>>703
エクセルのVBAだろ?
ワードのVBAなんか使わないぞ?
2023/01/17(火) 22:19:09.74ID:BSKY6W440
たまに勘違いしてVBの質問してくる人とかいるくらいだからな。
2023/01/17(火) 22:29:25.09ID:lscX0yJQ0
vbaとribbon customuiって直接関係ありませんが、マクロをribbon customuiから利用を考えています。
ネットやyoutube等調べて試したのですが、タブやボタンが表示されずに困っています。
また2007と2010でxmlnsの名前空間指定方法が異なることも理解しているつもりです。
2010以降を想定しています。
環境:Excel for Microsoft 365 MSO (バージョン 2212 ビルド 16.0.15928.20196) 64 ビット
ribbon_test.xlsm(zip)
_rels, customUI, docProps, xl, [Content_Types].xml

マクロ
Module1.main

_relsの.rels
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships";>
<Relationship Id="rId3" Type="(略)" Target="docProps/core.xml"/>
<Relationship Id="rId1" Type="(略)" Target="xl/workbook.xml"/>
<Relationship Id="rId4" Type="(略)" Target="docProps/app.xml"/>
<Relationship Id="rId5" Type="http://schemas.microsoft.com/office/2007/relationships/ui/extensibility"; Target="customUI/customUI14.xml"/>
</Relationships>

customUIのcustomUI14.xml
<?xml version="1.0" encoding="utf-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui";>
<ribbon><tabs>
<tab id="CustomTab" label="Custom Tab">
<group id="customGroup" label="Custom Group"><button id="member" visible="true" label="Custom Button" size="large" imageMso="HappyFace" onAction="Module1.main" /></group>
</tab>
</tabs></ribbon>
</customUI>

ご教授お願いいたしますm(_ _;)m
2023/01/17(火) 23:43:37.93ID:lscX0yJQ0
自己解決できました。
お騒がせしました。
2023/01/18(水) 20:59:44.95ID:ta9bzp4r0
なんやねん
2023/01/19(木) 07:37:02.75ID:40XBuhhWH
VBA知らないのですけど
シート間やブック間の情報のやり取りには
コールバック関数みたい非同期処理をしてるんですか?
2023/01/19(木) 07:47:03.02ID:hjMxdzIvH
>>720
オブジェクトのプロパティを書き換えたり取得したりする
超古い言語だよ
2023/01/19(木) 08:01:59.36ID:40XBuhhWH
書き換えや取得してる間はコードの実行は待機し
書き換え、取得が済んでからコードを再開するってことなのでしょうか?
2023/01/19(木) 08:06:32.97ID:hjMxdzIvH
>>722
書き換えや取得するコードを書く
やって見た方が早い
2023/01/19(木) 08:33:41.90ID:WQbdwelX0
コールバックではなくCOMという概念で実際のところプロセス間通信している
VBAの場合多分インプロセスなので他の手段より有利
シートやブックに対してコールバックする処理ってあったっけかな
2023/01/19(木) 08:42:01.19ID:hjMxdzIvH
>>724
色々あるみたいだけど、vbaで使う場面って思いつかない。ってかバグりそうでやらない方がいい気がしてならない・・・
https://qiita.com/Kamo123/items/e676e0cbe6de83410980
2023/01/19(木) 09:20:35.66ID:IH8Q0Y2+M
Excelのオブジェクトを外部から弄るつもりならVBAよりもCOMアドインやVSTOアドイン、Office Scriptsなど別の方法利用を検討する方が良い気がする
2023/01/19(木) 10:50:54.77ID:hkE7HGyaM
>>722
その通り

データの書き換えしている様子も見えるから仕事しているなって気がしてくる
2023/01/19(木) 13:24:17.21ID:4qclTsLf0
イベントはコールバック
2023/01/19(木) 19:42:15.97ID:Dvqs9CAA0
例外処理の悩みなんだけど、
普段、オプションでエラーをクラスで停止するように設定している
その状態でクラスでErr.Raiseすると、標準モジュールでOnErrorGotoステートメントで受け取れないけど皆さんはどうしてるんですかね?
2023/01/19(木) 19:46:40.02ID:Dvqs9CAA0
オプションを変えれば標準モジュールで受けとれるんだけど切り替えが面倒
2023/01/19(木) 20:51:52.93ID:4qclTsLf0
普段からオプション変えとけばいいんじゃね
クラスモジュールで中断って、使いどころがわからん
2023/01/19(木) 21:58:24.97ID:40XBuhhWH
みなさん、ありがとうです
>>727様、ありがとうです

web系はユーザーの待機ストレスをなくすために
コールバックを多用しますけれど
事務系は一つの処理が終わってから次の処理に移るって
なんだかそんな感じを受けました

ありがとうございました
2023/01/19(木) 22:00:12.46ID:40XBuhhWH
>>728
イベントはコールバックしかないですものね
734デフォルトの名無しさん (ワッチョイ 9568-3JZN)
垢版 |
2023/01/19(木) 23:05:36.09ID:eT7lxKel0
外部取り込みデータでcsvファイルを
QueryTablesメソッドを使用して、TextFileColumnDataTypesを文字列では取り込むとデータの後ろに半角スペースが入ります。
これなぜでしょうか?
標準で取り込むと半角スペースが入らないです。

やりたいのが数値などを文字列で取り込んだ時に、先頭の0を表示させて、E形式で表示されてる数値を全部表示させたいです。

今、文字列形式で取り込むと必ず全データの後ろに半角スペースが入ります。半角スペースが入らないように取り込みたいです
2023/01/19(木) 23:47:25.42ID:XtxzJxUF0
>>734
そのcsvメモ帳で開いて
本当に生データに半角入ってないの?
2023/01/20(金) 01:33:26.94ID:W1xzt6Zf0
シートが2つあって、片方非表示にしようとしたら、最低1個は表示しろって怒られるの何で?
非表示にする1行手前でデバッグプリント取ったけど、間違いなく2つとも表示されている。
単体で実行すると問題ないが、新規ブック作ってシートを2つに増やしてからやるとエラーになる。
DoEvents入れても駄目、On Error Resume Next入れてもエラーで止まる。
ワケわからん。
2023/01/20(金) 01:44:54.53ID:ptsQI5JN0
その非表示にする行が悪いんじゃないの
御託はいいからコード貼れカス
2023/01/20(金) 02:56:01.96ID:W1xzt6Zf0
悪くない。
1行手前では2シートともVisibleは-1を返すから、前後がどんなどんなコードでも関係ないだろ。
2023/01/20(金) 03:42:39.52ID:iiD2fqs40
コード貼れ
2023/01/20(金) 06:53:35.87ID:WgMHwss/0
>>736
ブック2つあってその片方を丸ごと非表示にしょうとしてるとか
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況