- 1 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 01:40:59.22 ID:jnlr9GaR0.net]
- !extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512 ↑同じ内容を2行貼り付けるナリ ExcelのVBAに関する質問スレナリ コード書き込みや作成依頼もOKナリ ※前スレ Excel VBA 質問スレ Part73 https://mevius.5ch.net/test/read.cgi/tech/1631485799/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
- 281 名前:デフォルトの名無しさん mailto:sage [2022/01/09(日) 04:59:41.15 ID:l1QF5IWO0.net]
- officetanaka.net/excel/function/tips/tips105.htm
この回答を知恵遅れでしたのExcel板のバカどもかこの板のおまいらの誰かだろw 俺たちの回答が分からないのはアンタの勉強不足とかまさにw
- 282 名前:デフォルトの名無しさん mailto:sage [2022/01/09(日) 10:08:07.57 ID:AVz29wzk0.net]
- 過去に似たような経験あるの?
かわいそうにね
- 283 名前:デフォルトの名無しさん mailto:sage [2022/01/09(日) 16:28:30.35 ID:+qxN1lei0.net]
- >>279
敢えて反対させてもらうが 結果が合っていれば問題ない どんな素晴らしいコードでも検算は必要なんだから仕組みが理解できればどうでもいいよこんなの 特にVALUEを使わず1掛けるとかしたら可読性がなくなるだろうと VALUEが要らないならどうして関数として用意してあるのかと思うわ スマートなコードや保守性をとか考えるのは勝手だし他人も係るなら大切だがそれをチクチクつついて他人に押し付けるのは違うと思う まぁいつもお世話になってるサイトだが
- 284 名前:デフォルトの名無しさん [2022/01/09(日) 16:41:03.33 ID:KsdSH8rP0.net]
- 基本的には結果が合っていればいいとは思うけど、
ここまで可読性が低いと保守がキツくなる。この例はさすがにやりすぎかな
- 285 名前:デフォルトの名無しさん mailto:sage [2022/01/09(日) 17:23:57.99 ID:vzEMvNwud.net]
- VBAだとVal("100円")で100が返ってくるけど、ワークシート関数VALUEだとエラーになるんだよね
どうして同じ仕様にしなかったんだろう こういうケースで役に立ちそうに思うんだけど
- 286 名前:デフォルトの名無しさん mailto:sage [2022/01/09(日) 17:39:45.87 ID:Z7Ru5E9E0.net]
- https://www.limecode.jp/entry/difference/value-val-cdbl
- 287 名前:デフォルトの名無しさん mailto:sage [2022/01/09(日) 18:23:33.87 ID:l1QF5IWO0.net]
- 田中のオッサンの話題は出すなぼけ、荒れる原因だろが!
とExcel板では怒られるんだけど、こっちは無問題??
- 288 名前:デフォルトの名無しさん [2022/01/09(日) 18:51:01.86 ID:KsdSH8rP0.net]
- 別にいいよ
- 289 名前:デフォルトの名無しさん mailto:sage [2022/01/09(日) 19:29:24.38 ID:l1QF5IWO0.net]
- いや、過去スレであの人はくそコードを世の中に広めるなとかの書き込みあったからダメなんかなと思ってさ。
- 290 名前:デフォルトの名無しさん [2022/01/09(日) 19:53:32.78 ID:KsdSH8rP0.net]
- スキルはいい感じだけど、疲れてるのかたまに変な事やる
あと昔の間違っている記事を削除しない この辺が嫌われている理由 後者は割とマジで対処してほしい
- 291 名前:デフォルトの名無しさん mailto:sage [2022/01/09(日) 20:56:32.83 ID:yDEPQxds0.net]
- うん、まぁ別にいいんじゃないのかな
やりたいことだけ分かれば別に 糞コードだったとしても 自分の方でそう思った部分は 自分の納得行くコードにすればいいだけだから
- 292 名前:デフォルトの名無しさん mailto:sage [2022/01/09(日) 21:27:51.21 ID:l1QF5IWO0.net]
- へーそうなんだ??
ま、完璧な人間はいないと同じね 職場の上司もなんかそんな事指摘していたかな、中には無駄なコードや?なコード書いている時あるって。 あの方の講習会、教え方がかなり癖強くて合う合わないが大きく別れると聞きました。
- 293 名前:デフォルトの名無しさん [2022/01/10(月) 00:06:11.98 ID:xXRyLH4+0.net]
- 疲れてる時にコード書くと、その時はノリノリでも、後で見ると「?」ってのはたまによくある
思ったよりも時間がかかっているのは大体なんかひっかかる所がある
- 294 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 00:18:32.94 ID:mRr+sgF/0.net]
- 結果が同じなら手法は問わないってのには全く賛同できない
可読性を重視しないと後で困るに決まってる 自分が組んだのでさえそうなるのに
- 295 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 01:07:56.95 ID:xkxPt9W00.net]
- いい機会だから聞きたいけど、同志達はどんな時にミスる??
ミスの度合いは大なり小なりあるけど 自分は寝不足だとあり得ないミス連発する しっかり寝てかつ空腹だと調子良い笑
- 296 名前:デフォルトの名無しさん [2022/01/10(月) 02:50:00.36 ID:5FAqSG/ca.net]
- 普段使わない漢字や送り仮名はよく間違える
- 297 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 08:39:41.61 ID:BEh3+tWV0.net]
- 内容自体ミスるよりいいよ
- 298 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 09:35:33.83 ID:OcqVU6NzM.net]
- 日本語変数があるとミスるというか、まともに読めない。
- 299 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 10:31:42.31 ID:Gmsx4aaq0.net]
- でも英語力がないので聞いたこともない単語だとよりわからなくなるので結局日本語で書いてしまう
- 300 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 10:45:27.78 ID:I0MctoU+d.net]
- コードが長くなってくると変数名が思い付かなくて、必死に考えた結果重複とか
- 301 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 11:22:12.64 ID:cnQ7Zttn0.net]
- この処理似たようなのを書いた事あるなと以前のを見てみるも
すぐには思い出せない 過去の自分は他人
- 302 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 11:32:51.01 ID:RrusHExn0.net]
- プロシージャ名とか変数名とか以前は英語もどきで書いたけど悲しいかな後から見た時に意味が全く分からない。
なんで、しばらく前から日本語でかくようになった。最初は全角文字でうまく動くか心配だったしやたら長くなったんだけど後から見ても意味がわかるっていうのは超便利でやめられない。
- 303 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 11:43:56.56 ID:8zLRvGVH0.net]
- >>292
長さによりけりだろう 関数程度の単純なもので手法もクソもない
- 304 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 11:52:13.34 ID:dHNt3Trpd.net]
- 日本語にしても変数名が思い出せない
在庫数、在庫カウンター、カウンター_在庫 どれにしたっけ
- 305 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 12:06:42.32 ID:BEh3+tWV0.net]
- 変数名のコメントも豆に書いてる人もいるね
- 306 名前:デフォルトの名無しさん [2022/01/10(月) 12:23:58.68 ID:xXRyLH4+0.net]
- >>298
ありすぎる
- 307 名前:デフォルトの名無しさん [2022/01/10(月) 12:25:07.05 ID:xXRyLH4+0.net]
- 変数と変数の内容は紙に書き出している
毎回頭まで戻って読み直すのめんどくさすぎる
- 308 名前:デフォルトの名無しさん [2022/01/10(月) 12:44:38.02 ID:9Nu2isHY0.net]
- 表示中のModuleからDim宣言した行を抽出してパッと表示するアドインを作ったら便利かもね
と我ながらいいこと思いついた
- 309 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 12:58:58.14 ID:RrusHExn0.net]
- >>307
ウィンドウ2分割したらいいじゃん。もしくはデュアルモニターで作業ウィンドウと変数定義部分のウィンドウを表示するとか。
- 310 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 13:01:06.34 ID:RrusHExn0.net]
- >>303
option explicit 宣言してコントロールスペース機能を使えばいいじゃん。
- 311 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 17:02:28.45 ID:xkxPt9W00.net]
- 結局疲れていると変な事やり出すのは共通て事で。
趣味ですがやっている分ならまだしも仕事なら間違いは許されんよね大変だ
- 312 名前:デフォルトの名無しさん [2022/01/10(月) 19:43:03.44 ID:vN9fY4Wcd.net]
- 多国籍企業で言語の違うOSを使うと軒並み文字化けするから日本語含めてマルチバイト文字が一切使えない
早くUnicode化して欲しいわ
- 313 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 20:56:33.75 ID:lrMaPQ7Kd.net]
- コメントも英語縛りだと大変そうだなあ
- 314 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 21:00:45.99 ID:00vaWtI10.net]
- 英語に抵抗あるのはお前ら世代ぐらいまでだから そろそろ引退後を考えときな
- 315 名前:デフォルトの名無しさん [2022/01/10(月) 21:04:29.76 ID:xXRyLH4+0.net]
- >>312
カッコイイね!
- 316 名前:デフォルトの名無しさん [2022/01/10(月) 21:05:12.22 ID:xXRyLH4+0.net]
- >>310
最悪、ワークシートに書けば良い あっちは多言語対応してる
- 317 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 21:38:02.69 ID:xkxPt9W00.net]
- 今は小学生でプログラミング授業が当たり前??と聞いた。
将来は全員バリバリのプログラマーとして新卒で入社してくるのだろうかと。。。
- 318 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 22:37:56.38 ID:ZgLLvrEYd.net]
- >>315
義務教育の内容なんて、大多数の子は半分程度しか覚えてないんだよ だから高校に格差がある
- 319 名前:デフォルトの名無しさん [2022/01/10(月) 22:40:00.97 ID:oZVfodR70.net]
- 思い込みだな、ソースだしてみ
- 320 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 22:42:08.68 ID:J1lYCUSE0.net]
- 小1からアルファベットくらい教えないと無理
- 321 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 22:49:49.35 ID:cNWamYBR0.net]
- >>315
教育ではプログラミング的思考のことだけでツールの使い方は微塵も知らんぞ
- 322 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 22:56:21.83 ID:BEh3+tWV0.net]
- >>308
何の為の変数か分かるようにコメント書いてるって話だけどそれで分かるの?
- 323 名前:デフォルトの名無しさん [2022/01/10(月) 23:45:01.54 ID:xXRyLH4+0.net]
- >>315
vbaでifとfornext使えるだけでいいんだけどな 教育の概要みてみたけど、プログラムの概念教えるだけなのね まぁ知らんよりかは大分マシだと思うけど、なんだかなぁ https://www.mext.go.jp/content/20200218-mxt_jogai02-100003171_003.pdf
- 324 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 23:47:37.36 ID:y6BmIHv2M.net]
- 小学生の算数で
なにができるかって話
- 325 名前:デフォルトの名無しさん mailto:sage [2022/01/11(火) 00:00:22.85 ID:RJl36Rij0.net]
- 20年前10年前で新卒の技能も変わってるし今の小学生が新卒になる10年後には更にベースが変わっているだろう
- 326 名前:デフォルトの名無しさん mailto:sage [2022/01/11(火) 00:55:36.01 ID:f975O5pD0.net]
- なでしこならできるだろ
実際導入してるところあるみたいだし
- 327 名前:デフォルトの名無しさん [2022/01/11(火) 01:04:44.62 ID:v6KgbdTr0.net]
- >>324
なでしこ、一回ぐらい見てから言った方が良いと思う https://image.itmedia.co.jp/l/im/news/articles/2009/18/l_mt1626333_NDSK-02.jpg#_ga=2.46856359.1211102927.1641830465-1693712719.1638754091 中国人が書いたような日本語があまりに不気味で、余計に読みづらい これなら最初から英語の方が遥かにマシ ただ全部英語だと変数がキツイので、日本語変数を使えるvbaは本当に使いやすい
- 328 名前:デフォルトの名無しさん [2022/01/11(火) 01:05:47.81 ID:LtMpgTY10.net]
- ID:xXRyLH4+0
頭が悪いまさしく馬鹿の典型例
- 329 名前:デフォルトの名無しさん mailto:sage [2022/01/11(火) 01:19:28.14 ID:1S8cvNBi0.net]
- >>325
無理やり感が凄いなw 特に中途半端に演算子を助詞に置き換えてるのが酷い
- 330 名前:デフォルトの名無しさん [2022/01/11(火) 01:43:32.21 ID:v6KgbdTr0.net]
- >>326
こんな時間まで置きて煽りとか、凄いな >>327 終わってるだろ どんな場面でも使いたくないわ
- 331 名前:デフォルトの名無しさん mailto:sage [2022/01/11(火) 02:54:50.14 ID:jXrjwHyf0.net]
- お互い見下したり下らない事での喧嘩は止めましょうよ。
もう一個あるExcel板みたいに荒れたくないので、超マターリやりましょうぜ
- 332 名前:デフォルトの名無しさん mailto:sage [2022/01/11(火) 02:59:40.60 ID:IdisKVi00.net]
- >>320
すまんタグ付を間違えた。302に対する返事でした。
- 333 名前:デフォルトの名無しさん mailto:sage [2022/01/11(火) 04:33:13.43 ID:0LWENKA5d.net]
- >>323
VBAはオワコンと言われ続けて20年以上が過ぎて、いまだに需要があるという現実 画期的な新技術が出てきても、10年程度で世界中のすべてが置き換わるなんて絶対にありえないから
- 334 名前:デフォルトの名無しさん [2022/01/11(火) 04:53:38.34 ID:PWAeXKZsa.net]
- 使う人がいて使わない人もいるそれだけだ
- 335 名前:デフォルトの名無しさん mailto:sage [2022/01/11(火) 05:12:45.59 ID:jXrjwHyf0.net]
- 恥ずかしながらマクロしかやった事ないから、他の言語はほとんど知りません
他の言語やっている人が言うにはExcelマクロはいろいろ独特すぎると言っていましたよ。
- 336 名前:デフォルトの名無しさん [2022/01/11(火) 06:57:43.71 ID:zgghDV8Ra.net]
- 初心者には難しいのかもね
- 337 名前:デフォルトの名無しさん mailto:sage [2022/01/11(火) 09:20:49.60 ID:NHkh6AryM.net]
- >>325
見てないで言ったって妄想は自分の心の中だけにしておくべきでは
- 338 名前:デフォルトの名無しさん mailto:sage [2022/01/11(火) 09:26:49.60 ID:NHkh6AryM.net]
- つかお前のほうがきちんと見ていないのでは?
nadesi.com/doc/cmd-func.htm
- 339 名前:デフォルトの名無しさん [2022/01/11(火) 09:55:25.76 ID:v6KgbdTr0.net]
- >>333
言語というより、エクセルのスクリプト エクセルへの依存が大きい Bライク エラーがあっても平気、というかfatal errorがほぼ無い なんか知らんけど適当に書いても動く こういうのでいい
- 340 名前:デフォルトの名無しさん [2022/01/11(火) 11:17:42.49 ID:7nbTW/GEM.net]
- プロパティ一つ変えるだけで大きくデータか変わるのとかあるからなぁ
デフォルトプロパティのおかげで書きやすいけど間違いやすいし MID関数とMIDステートメントみたいな意地悪な引掛けもあるし ワークシートの数式とVBの数式の文法が違うから初心者がよく混乱してるし 配列数式だかプペルだか毎回ググらずにはいられないし
- 341 名前:デフォルトの名無しさん mailto:sage [2022/01/11(火) 13:48:53.68 ID:IdisKVi00.net]
- >>338
プペルってなに?
- 342 名前:デフォルトの名無しさん mailto:sage [2022/01/11(火) 14:28:18.62 ID:aR5mdzEba.net]
- タプルのことかな
- 343 名前:デフォルトの名無しさん mailto:sage [2022/01/11(火) 16:41:11.70 ID:nmLdRhtud.net]
- パピコ
- 344 名前:デフォルトの名無しさん mailto:sage [2022/01/11(火) 17:43:15.57 ID:jXrjwHyf0.net]
- VBでワークシート関数が使える事を知らなかった人もいるぐらい
- 345 名前:デフォルトの名無しさん mailto:sage [2022/01/11(火) 20:05:33.64 ID:4GEp5Szkd.net]
- スピル
まぢれす
- 346 名前:デフォルトの名無しさん mailto:sage [2022/01/11(火) 20:17:38.77 ID:iCzHcVAmd.net]
- >>342
以前はVBやVCからワークシートオブジェクトを生成してやると、Excelの30日体験版がいつまでも使えてしまうという裏技があったんだよなあ
- 347 名前:デフォルトの名無しさん mailto:sage [2022/01/11(火) 23:15:17.45 ID:jXrjwHyf0.net]
- 凄いバグですな。
Office365を永久に無料試用できる裏ワザあると聞いたのを思い出した。
- 348 名前:デフォルトの名無しさん [2022/01/12(水) 11:52:41.57 ID:8kyKCDFaM.net]
- 同じやり方でWin11でIE使えるんだよな
- 349 名前:デフォルトの名無しさん mailto:sage [2022/01/12(水) 21:05:19.10 ID:xv5qUCXt0.net]
- 本当にExcel2021をケーズデンキで買ってきた
これで充分な気がする
- 350 名前:デフォルトの名無しさん mailto:sage [2022/01/12(水) 21:10:06.51 ID:Bw0ohLlk0.net]
- フラグを変更することにより外部に個人情報を送信するようになるかも
- 351 名前:デフォルトの名無しさん mailto:sage [2022/01/12(水) 23:55:12.07 ID:ORVSIxTU0.net]
- >>345
永久って何十年でも使えるのか?
- 352 名前:ワイドショーは見るな mailto:sage [2022/01/13(木) 00:47:58.94 ID:G09zCb3J0.net]
- ロンドンブーツ田村淳
「嫌なら見なきゃいいじゃん。君らのテレビはチャンネル変えられないの?ネチネチうるさいって言われない? 力つけないと。お前に影響力ないから」 99 岡村隆史 「嫌なら見るなや。何でもツイッターで呟くな!は?ミステリー作家? 知らんわ、お前がミステリーやわ」 ビートたけし 「韓流ばかり放送するたってそれである程度視聴率取るんだからしょうがないよな。いやなら見なきゃいいんじゃねーか」 ダウンタウン 松本 「お前らチャンネル変える能力もないんやな。どんだけ無能やねん(笑)」 やしきたかじん 「(韓流番組が)イヤやったら観んとったらえぇんちゃうの」 マツコ デラックス 「フジテレビのデモは新右翼の集まり」 テリー 伊藤 「高岡さんは精神的にアレですよ」 ミッツ マングローブ 「ネットは仮想敵国を作りたがる。(カメラ目線で)日本人はこういう意見じゃないですから」 江川 紹子 「ふかわの意見は中身がないにゃ」
- 353 名前:デフォルトの名無しさん mailto:sage [2022/01/13(木) 01:06:13.81 ID:VkNUzTKE0.net]
- 韓流番組は知らんけど
とりあえずNHKは解体させるべき
- 354 名前:デフォルトの名無しさん mailto:sage [2022/01/13(木) 02:22:29.43 ID:Ia/gMc7B0.net]
- YouTube に、N国の立花孝志の動画が上がっている。1/12
NHKとの裁判で半分勝ちました。 やはり時効5年の最高裁判決は国民にとってありがたい判決でした。 裁判所から、5年以上の支払督促が来ても、1円も払わず、 5年の時効を援用して、8.9万円だけを払う。 1円でも払うと、債務を認めたことになるので、全額を払わなければならないので危険! 8.9万円 × 年間の裁判数700件 = 6,230万円 は、N国が政党助成金から払うので、国民は払わなくて良い やっぱり、N国が最高裁判決で勝ち取った、時効5年の援用が強力!
- 355 名前:デフォルトの名無しさん mailto:sage [2022/01/13(木) 02:59:22.55 ID:pqvs3QlS0.net]
- 次はExcel2024てのが発売されるのかな?
- 356 名前:デフォルトの名無しさん mailto:sage [2022/01/13(木) 23:45:10.44 ID:7CyKGRy20.net]
- VBA極めたら最終的に世界中の有用な情報を集めて自動で収集できるようになりますか?
- 357 名前:デフォルトの名無しさん mailto:sage [2022/01/14(金) 00:05:56.70 ID:vO12hrLSa.net]
- 極めなくてもスクレイピングができれば収集は可能だよ
- 358 名前:デフォルトの名無しさん mailto:sage [2022/01/14(金) 00:08:13.34 ID:lOO1pB5h0.net]
- >>354
SeleniumとSQL覚えたらできるかもな VBAとは言い難くなってしまうが 笑 https://uploda1.ysklog.net/uploda/a21c72780b.jpg
- 359 名前:デフォルトの名無しさん [2022/01/14(金) 00:20:30.44 ID:dtRMJdwu0.net]
- vbaでやるのは辞めたほうがいいかなぁ
PHPとXPath、各種検索サイトのAPIを勉強するのが最終的にはラク
- 360 名前:デフォルトの名無しさん [2022/01/14(金) 02:42:54.63 ID:hRpWT3YP0.net]
- サーバーの負荷になるようなマクロつくったら逆に訴えられる可能性あるよ
- 361 名前:デフォルトの名無しさん mailto:sage [2022/01/14(金) 08:06:55.98 ID:ifEdQjoh0.net]
- https://www.relief.jp/docs/003086.html
初心者です このようなダブルクリックで色をつけたり消したりするコードについての質問です。 同じファイルのAシートとBシートでそれぞれ使っているのですがBシートでダブルクリックすると一瞬読み込みマークが出てテンポが悪くなります。AシートとBシートに特に差異はなくてBシートに画像が一枚あるだけなのですがそんな変わるものでしょうか
- 362 名前:デフォルトの名無しさん [2022/01/14(金) 10:47:59.53 ID:dtRMJdwu0.net]
- >>.359
普通は変わらん 条件つき書式か何かが隠れてると思うけど、ファイルを見てみないと分からない
- 363 名前:デフォルトの名無しさん mailto:sage [2022/01/14(金) 11:11:05.48 ID:HvyHPCt90.net]
- Is Nothing の判断で戸惑ってるか、Sheet を特定すれば直るのか
画像外してテストしてみりゃいいだけ
- 364 名前:デフォルトの名無しさん mailto:sage [2022/01/14(金) 12:08:46.60 ID:lOO1pB5h0.net]
- >>359
やってみましたけど再現しないので解らないです(Ver16) 今の状況で出来ることというとまず>>361を試す 直らないなら「If Intersect(Target, Range("B1:B10")) Is Nothing Then Exit Sub」と「 End If」を抜いて試す 直らないなら Cancel = Trueを抜く 直らないなら 全部抜いてCells(1, 1) = "a"とかを入れてみる 他はシート1を消して試してみる、シート3を作ってどうなるか試してみるなどで遅延の原因を探っていくしかない気がします
- 365 名前:デフォルトの名無しさん [2022/01/14(金) 12:47:39.88 ID:dtRMJdwu0.net]
- >>362
ちょっと違う どこで時間がかかっているかを見るなら、 Debug.Print Now() & "if前" Debug.Print Now() & "最後" みたいなものを随所に差し込んでコンソールで確認する 一番いいのは新しくシート作ってそこに画像だけ持っていって試す。 時間がかからないならそのシートを使い続ければ良い。原因なんて考えても仕方ない。大体どこか見えない所にゴミデータがあるだけだ
- 366 名前:デフォルトの名無しさん mailto:sage [2022/01/14(金) 13:23:22.68 ID:0uAreaIs0.net]
- ありがとうございます
いずれ他の言語やソフトウェアも勉強することを視野に入れてVBAはじめてみます
- 367 名前:デフォルトの名無しさん mailto:sage [2022/01/14(金) 14:53:37.34 ID:cSomMf3f0.net]
- Function testfunc01(word) As Integer
Dim serchChar As String
- 368 名前:デフォルトの名無しさん mailto:sage [2022/01/14(金) 14:55:30.70 ID:cSomMf3f0.net]
- £は英国の通貨記号ポンドです.
セルA1に"10£"を入れ,B1にA1の文字列内の£の位置を示す関数testfunc01(A1)(後述)を入力しました.正しい値は3ですが,何故か0を返します. セルA2に"10L"を入れ,B2にA2の文字列内のLの位置を示す関数testfunc02(A2)(後述)を入力しました.正しい値3を返します. 通貨記号が問題かと思い,今度はプロシジャーtest(後述)内で変数 word = "10£"を定義しtest内でtestfunc01(word)を実行すると正しく3を返しました. ”引数がセル参照かつ通貨記号”という組み合わせの場合にtestfunc01内で使用している組み込み関数instrが正しく機能しないようです.解決策をありますでしょうか? 他にtestfunc01に関して以下の条件で試しました. セルA3に"10あ"を入れ,B1にA1の文字列内のあの位置を示す関数testfunc03(A3)を入力すると正しく3を返す.”引数がセル参照かつ全角文字”が原因ではない. testfunc01(word)をtestfunc01(ByVal word as string)に修正する→改善せず,間違った0を返す.
- 369 名前:デフォルトの名無しさん [2022/01/14(金) 14:55:37.21 ID:dtRMJdwu0.net]
- wordなのにintやめろ
- 370 名前:デフォルトの名無しさん mailto:sage [2022/01/14(金) 14:55:50.74 ID:cSomMf3f0.net]
- Function testfunc01(word) As Integer
Dim serchChar As String serchChar = "£" testfunc01 = InStr(word, serchChar) End Function Function testfunc02(word) As Integer Dim serchChar As String serchChar = "L" testfunc02 = InStr(word, serchChar) End Function Function testfunc03(word) As Integer Dim serchChar As String serchChar = "あ" testfunc03 = InStr(word, serchChar) End Function
- 371 名前:デフォルトの名無しさん [2022/01/14(金) 14:56:14.35 ID:dtRMJdwu0.net]
- すまん、連投なのね
ちょっとテストしてみる
- 372 名前:デフォルトの名無しさん mailto:sage [2022/01/14(金) 14:56:24.45 ID:cSomMf3f0.net]
- sub test()
Dim word, serchChar As String serchChar = "£" word = "10£" Debug.Print testfunc01(word) End Sub 結果 A B C 1 10£ 0 ←testfunc01の結果 2 10L 3 ←testfunc02の結果 3 10あ 3 ←testfunc03の結果 testの実行結果 3 3 3
- 373 名前:デフォルトの名無しさん mailto:sage [2022/01/14(金) 14:56:53.00 ID:cSomMf3f0.net]
- タブが解除されて見にくいです.すんません.
- 374 名前:デフォルトの名無しさん mailto:sage [2022/01/14(金) 14:59:25.39 ID:cSomMf3f0.net]
- 最後は間違っておりいかが正しい結果です.
testの実行結果 3
- 375 名前:デフォルトの名無しさん [2022/01/14(金) 15:01:52.05 ID:dtRMJdwu0.net]
- >>365,366,368,370
https://i.imgur.com/ZrKrhy8.png >セルA1に"10£"を入れ,B1にA1の文字列内の£の位置を示す関数testfunc01(A1)(後述)を入力しました.正しい値は3ですが,何故か0を返します. 俺の環境では3が返ってきた A1がおかしい気がする =CODE(MID(A1,3,1)) で「8562」が返ってくれば、ポンドの文字は間違い無いと思う もし8562以外だと、別の文字が入っている気がする
- 376 名前:デフォルトの名無しさん mailto:sage [2022/01/14(金) 15:02:23.56 ID:P/5qDoLq0.net]
- ポンド記号が書式で出てるんじゃないかと予想
セルの値をどうやって取得してチェック関数に渡してるんだ?
- 377 名前:デフォルトの名無しさん [2022/01/14(金) 15:03:43.93 ID:dtRMJdwu0.net]
- >>374
あぁほぼ間違いなくそれだ
- 378 名前:デフォルトの名無しさん mailto:sage [2022/01/14(金) 16:01:27.94 ID:cSomMf3f0.net]
- >>373
>>374 「ポンド記号が書式で出てる」ということはありません. 10£はサンプルとして簡単にしただけで,実際には10£5s9d(10ポンド5シリング9ペンス)をペンスに換算するプロセスで直面した問題です. 原因は通貨記号の半角と全角の問題であることがわかりましたが解決策がわかりません. A1の£のコードは63でした. 一方,testfunc01内の£をエクセルにコピペしてcode関数で値を取得すると8562でした. A1の£をVBAのプロシージャ内にコピペすると?になります. エクセルの通貨記号は£,VBAのプロシージャ内の通貨記号をコピペしたものは£で,サイズが異なるので半角と全角の違いだと思います. 通貨記号を入力する時はエクセルでもVBAプロシジャーでも”ポンド”と打ち込でで変換しますが半角一択です(googleのIMEを使用). VBAのプロシージャ内で半角(コード番号63)が何故全角(コード番号8562)に自動的に変換されるのかわかりません. エクセルの£をVBAのプロシジャーにコピペしても?になるので,半角の£をプロシジャー内で使う方法が見つかりません. 逆にエクセルで10£と打ち込んだ後半角の£を全角の£に置換するとうまくいきました.しかし毎回置換するのは面倒です. 結局,通貨記号の入力時に半角と全角が選択できるか,VBAで内で自動的に全角に変換されないようにできればば問題は解決するのですが. MSIMEに切り替えると、ポンドの候補として、£(全角)と£(環境依存)がでてきました。エクセルではとちらでも選べますが、VBA内では環境依存を選んでも強制的に全角に変換されます。 VBAの環境設定の問題でしょうか? 最悪の場合は、エクセルサイドで半角を全角に置換するマクロで解決する方法がありますが、できれば入力時に半角と全角で意図したほうを入力できるという解決策がいいです。 うまい解決策はないでしょうか?
- 379 名前:デフォルトの名無しさん [2022/01/14(金) 16:45:24.64 ID:dtRMJdwu0.net]
- >>376
半角ポンドとエルは同じ文字コードなのかな。スラッシュと円マークみたいなもんかね こういう場合は、検索する側、される側を両方半角小文字に揃えれば良い Function testfunc01(word) As Integer Dim serchChar As String serchChar = "£" testfunc01 = InStr(StrConv(word, 10), StrConv(serchChar, 10)) End Function
- 380 名前:デフォルトの名無しさん mailto:sage [2022/01/14(金) 17:12:55.74 ID:P/5qDoLq0.net]
- VBE内ではたしかSHIFT_JISしか使えんかった気がするな
文字リテラルで書くのやめて、CHRWとか使えばいいんじゃね Strconvで行けるかなぁ そもそも半角ポンド記号とかいう想定がない気がする
- 381 名前:デフォルトの名無しさん mailto:sage [2022/01/14(金) 17:20:31.63 ID:HvyHPCt90.net]
- 別角度からのほほんと見てるけど、> 10£5s9d(10ポンド5シリング9ペンス) という元データがあるんだろうか?
イギリスはポンドとペンスが通貨単位でシリングというのは1971年以前の単位だと出てくるんだが で、1ポンド = 100ペンス 10£5s9d というテキストで渡されるから変換したいんで£の位置を知りたい は判るが そこで躓いて先に進まないと成れば、事前に£を他の文字に変換してからExceに入れてはどうか すでに目を通しているとは思うが 通貨定数について https://docs.microsoft.com/ja-jp/office/client-developer/visio/about-currency-constants EUROCONVERT 関数 https://support.microsoft.com/ja-jp/office/euroconvert-%E9%96%A2%E6%95%B0-79c8fd67-c665-450c-bb6c-15fc92f8345c MSに問い合わせる案件のような気もする
|

|