Excel VBA 質問スレ Part81

レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん
垢版 |
2024/04/18(木) 14:03:38.03ID:cMr18rZu
ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK

次スレは>>980が立てること
無理なら細かく安価指定

関連スレ
Excel VBA 質問スレ Part79(ワッチョイあり)
https://mevius.5ch.net/test/read.cgi/tech/1674875532/

※前スレ
Excel VBA 質問スレ Part79
https://mevius.5ch.net/test/read.cgi/tech/1674874007/
Excel VBA 質問スレ Part80
https://mevius.5ch.net/test/read.cgi/tech/1685489018/
840デフォルトの名無しさん
垢版 |
2024/11/27(水) 18:21:30.61ID:jEDz14aM
>>839
値を文字列変数に取得
値の設定先セルの書式を文字列に
変数値を設定先に代入
とやりたいことそのまま書く
2024/11/27(水) 18:35:22.56ID:MVMSa9+B
了解しました。それでは、A1の文字列が日付として解釈されないように、文字列としてコピーする方法をお教えします。以下のVBAコードを試してみてください。

vba
Dim rg1 As Range, rg2 As Range
Set rg1 = Cells(1, 1) ' "2024-12-32" などの文字列
Set rg2 = Cells(2, 1) ' コピー先のセル
rg2.Value = "'" & rg1.Value ' 値を文字列としてコピー

このコードでは、`rg1.Value`の前にシングルクオート(')を追加して、値を強制的に文字列としてコピーしています。これにより、A2セルにコピーした値が日付として解釈されるのを防ぐことができます。
2024/11/28(木) 18:36:22.65ID:7vnqI5qM
.Value(デフォルトプロパティ)じゃなくて、.Textをコピーすればいいんじゃね
2024/11/29(金) 02:09:38.98ID:YHfjDVN0
↓ これっともっとすっきり書けない? 

If hoge > 75 Then
  '処理1
Else
 If hoge > 50 Then
  '処理2
 Else
  If hoge > 25 Then
   '処理3
  Else
   '処理4
  End If
 End If
End If
2024/11/29(金) 02:36:57.16ID:DXctvJUW
すっきりじゃないかもしれないけど。
比較する条件がhogeだけならCase isでもいいと思う。select caseで調べてみて。

Select Case true
Case hoge>75
処理1
Case hoge>50
処理2
Case hoge>25
処理3
Case else
処理4
End Select
2024/11/29(金) 03:40:38.72ID:V3MBNjzV
>>843
抽象的な質問には無難な回答しかできない
Else と If をくっつければ End If が1回で済む
「処理」は Sub に飛ばして判定ロジックと分けると読みやすくなる

If hoge > 75 Then
  Call 処理1
ElseIf hoge > 50 Then
  Call 処理2
ElseIf hoge > 25 Then
  Call 処理3
Else
  Call 処理4
End If
2024/11/29(金) 04:47:37.78ID:mI/xlHXJ
すっきり書けるかどうかは状況によるなあ
たとえばhogeが整数型で100点満点のテストの点数だったら、こういう書き方もできる

Select Case hoge
  Case 0 To 25
    処理1
  Case 26 To 50
    処理2
  Case 51 To 75
    処理3
  Case 76 To 100
    処理4
End Select
2024/11/29(金) 07:48:42.48ID:ckuwcooG
>>840-842
ダメでした
しかも詳細を書こうとするともう余所エラーが出ます
2024/11/29(金) 13:07:52.33ID:sw8AErMv
文字列型変数の値は"2024-12-31"でも、
Range型のValueプロパティに代入すると勝手にシリアル値が代入される
フォーマットもGeneralからyyyy/m/dに変わる
2024/11/29(金) 13:08:16.00ID:sw8AErMv
代入元が"2024-12-32"の時は、代入先のセルも同値が入る
2024/11/29(金) 13:08:48.76ID:sw8AErMv
"'2024-12-31"をセルに代入し、
MID関数で"'"を取りのぞいても、やはりシリアル値になる
簡単にできると思っていたことが難しいです…
2024/11/29(金) 13:11:46.28ID:sw8AErMv
レス分けたら詳細書けました
クリップボード経由してPasteSpecialメソッドを用いると、
テキストとしての"2024-12-31"もセルに入れることができる
Excelの仕様の問題のような気がしてきました
2024/11/29(金) 18:10:43.05ID:IFmvlPC2
先にセルの書式を文字列 @ にしてみては?
2024/11/29(金) 18:36:49.21ID:sw8AErMv
>>852
うまくいきました!
>>840のアドバイスを試す際、
コード内に@と明示せずGeneralにして試したのも間違いでした
お二人とも本当にありがとうございました!
2024/11/29(金) 21:22:22.42ID:lLH4NdiL
>>844

苔で出来ました。
855デフォルトの名無しさん
垢版 |
2024/11/29(金) 22:54:45.08ID:GFsU//s0
a=(hoge>75)*100+(hoge>50)*10+(hoge>25)*1
on log10(a)-1 goto 処理3,処理2,処理1

こういうイメージは嫌われるんですかね。
856デフォルトの名無しさん
垢版 |
2024/11/29(金) 23:05:46.40ID:lTs330SS
>>853
うまくいってよかった
@予め指定するのが肝でしたから
今回は文字列固定でのコピーでしたけど、他の書式も混在になることが予想されるならコピー元の書式をコピー先に設定するようにしといてもいいかもしれません
2024/11/30(土) 09:08:08.19ID:I6iXAWzN
Int(hoge / 25)
858デフォルトの名無しさん
垢版 |
2024/12/05(木) 11:53:46.88ID:DSq5f289
甲斐はいらん。巨人に来るな。
2024/12/07(土) 11:24:04.60ID:22FK4rxH
私が作ったVBAがうまく動かないんですがどこにバグがありますか?ご教示おねがいします
860デフォルトの名無しさん
垢版 |
2024/12/07(土) 14:05:32.60ID:8ekNK8XT
知能にバグ
2024/12/07(土) 14:45:24.46ID:8w7S0x4U
知恵袋より酷い質問だな
2024/12/07(土) 17:34:43.76ID:m++O9Thl
だな
863デフォルトの名無しさん
垢版 |
2024/12/07(土) 18:08:11.98ID:1M5NkSjP
>>859
あなたが低脳猿なところに問題がある。
2024/12/07(土) 23:19:44.56ID:czlVvPsF
RubyのようにVBAを作った?
2024/12/09(月) 11:28:04.58ID:WZWOgPIq
知恵袋もそうだが、まずはソースコードを見せてもらわないと話にならん事が分からんのか?
2024/12/09(月) 12:17:07.04ID:EtFmQud+
ネタにマジレスという愚かな事が分からんのか?
2024/12/09(月) 13:00:32.05ID:N1CqhZvA
バグバグで抜いた
2024/12/10(火) 01:01:19.96ID:ruXLR+AW
COM考えたやつってもしかして天才なんです?
20年以上前のシステムがいまだに第一線で原液だとか
869デフォルトの名無しさん
垢版 |
2024/12/10(火) 13:23:10.76ID:1EevVDft
>>868
COMファイルはMS-DOS時代の産物
2024/12/10(火) 13:45:36.94ID:y9g7pdkb
>>868
バイナリレベルのオブジェクト指向、インターフェース指向は素晴らしかったと思うよ
2024/12/10(火) 15:02:21.25ID:x6/vupO7
>>869
メモリにそのまま展開される危険なファイル
2024/12/10(火) 17:16:10.86ID:JrehIsPh
逆に移行を妨げてるんだろね、現行システムからの反発激しくて
873デフォルトの名無しさん
垢版 |
2024/12/11(水) 01:28:47.06ID:bYjfV/I8
「反発激」という用語なのかと思った
874デフォルトの名無しさん
垢版 |
2024/12/21(土) 09:32:36.56ID:yZmYWL20
画像サイズが変わってしまい困っています。
メモの編集→コメントの書式設定→色と線タブ→塗りつぶし効果で画像を挿入しています。
サイズタブ→原型のサイズ→リセットを行うにはどうしたら良いでしょうか?
875デフォルトの名無しさん
垢版 |
2024/12/21(土) 10:48:06.83ID:bIHzWCsd
>>868
昔の人は明らかに頭が良かった

>>872
遺構を妨げてるんじゃなくて以降がスムースに逝ってる証拠だよ
876デフォルトの名無しさん
垢版 |
2024/12/21(土) 11:27:23.27ID:hMoGpFaG
>>874
それはVBAの話しなのか?
2024/12/21(土) 13:33:30.79ID:qaV/EKys
>>874
画像のサイズが変わってしまった場合、元のサイズにリセットする方法についてお答えします。

1. **メモの編集**モードに入ります。
2. **コメントの書式設定**を開きます。
3. **色と線タブ**を選択します。
4. **塗りつぶし効果**で画像を挿入します。
5. **サイズタブ**を開きます。

ここで、以下の手順を試してみてください:

- **リセットボタン**がある場合、それをクリックして元のサイズに戻します。
- リセットボタンがない場合、手動で**元のサイズ**に調整する必要があります。挿入した画像の元の幅と高さの値を入力します。

これにより、画像のサイズが元に戻るはずです。もし他にもお困りの点があれば、教えてください。
2024/12/21(土) 15:52:44.31ID:H4Rm1lor
マクロでわからないことがあったらCHatGPT に聞くようになった。
すごいのは、やりたいことを書いてEXCELファイルを添付すると、マクロを組んでくれること。
問題はCHatGPT 頼りになるので、自分のスキルが向上しないことw
879デフォルトの名無しさん
垢版 |
2024/12/21(土) 16:31:15.48ID:yZmYWL20
>>876
>>877
上記の動作をVBAで行う方法が知りたいです
LockAspectRatio、TextFrame.AutoSize等を試しましたがうまくいきませんでした
マクロ記録もやってみましたがリセットの動作は記録されないようです
メモ内の埋め込み画像の元サイズを取得する方法ってありますか?
2024/12/21(土) 21:28:57.26ID:yZmYWL20
自己解決しました
2024/12/22(日) 16:36:05.08ID:6TdXbZK5
昔の人ってすげぇスキル高いと思うわ。ネットや書籍が無い時代に手探りで立派なソースコード書いていたと思うとな
2024/12/22(日) 16:52:27.65ID:yHGbj31B
Sendkeysが上手く動いてくれない。。
DoEventsも入れているのに。。
2024/12/22(日) 17:09:07.17ID:IQoJ7007
>>882
Sendkeysは最後の手段
できるだけ使うな
2024/12/22(日) 17:51:48.04ID:MwFjhbEz
windows apiのsendkeyをdeclareして使う方が良いとか
2024/12/22(日) 18:04:03.23ID:/fc7feyD
対象が何なのかで切り分けが必要だよ
SendInputが確実な場合もある
2024/12/22(日) 18:11:28.97ID:yHGbj31B
やりたいことは「このエクセルファイルのこのシート上で方向キー↓を押しなさい」とマクロの定義をエクセルシート上に書いておくと、その定義どおりに動いてくれるマクロを作りたいだけなんだけどな。。
2024/12/22(日) 21:26:34.16ID:wgWg/n5S
ファイルを開いた瞬間に開始してるからシートのほうが準備できてないとかなんじゃね
知らんけど
888デフォルトの名無しさん
垢版 |
2024/12/22(日) 23:01:29.25ID:db07A3sN
range("A1").select
sendkeys "{DOWN}"
でA2になるぞ
操作したいもの(例えばシート)がアクティブになってないんじゃないかと
889デフォルトの名無しさん
垢版 |
2024/12/25(水) 15:25:06.92ID:PDJSnv/I
sendekysはpopup出てると死ねる
890デフォルトの名無しさん
垢版 |
2024/12/28(土) 00:58:35.34ID:qirfMsYN
そういうのは、VBAからVBSを起動して、そっちにクリッコさせるんだぜ
891デフォルトの名無しさん
垢版 |
2025/01/03(金) 18:15:22.43ID:n8cwekpK
変数名に漢字を使うのってどう?
使えるかもしれないけど気持ち悪いと感じる
2025/01/03(金) 18:23:18.68ID:kR1aFMkz
専門用語とか漢字の利点を感じられるなら
2025/01/03(金) 18:25:04.66ID:HMYtlPTh
業務用語は下手に英語とかローマ字にせず業務用語そのままの漢字変数
ただ頭にアルファベットの接頭辞つける
2025/01/03(金) 18:45:00.49ID:208FlUJL
変数に限らず、定義名やクエリー名、シート名を日本語にしておくと、
なぜかWindowsのupdateの機会でもおかしくなるときがあって、
それ以来、アルファベット表記に変えてしまった。
2025/01/03(金) 18:45:23.61ID:208FlUJL
Unicodeのせいかしら?
2025/01/03(金) 20:26:13.30ID:hehfksyj
趣味でしてるし日本語も使う
2025/01/03(金) 22:04:30.99ID:n8cwekpK
>>893
接頭辞は型名?
898デフォルトの名無しさん
垢版 |
2025/01/03(金) 22:07:46.64ID:n8cwekpK
フォームを作るときオブジェクト名をそのまま使うか変更するのか悩む
後からオブジェクト名を変えるのは避けたほうがいいのはわかる
899デフォルトの名無しさん
垢版 |
2025/01/04(土) 16:29:41.54ID:EU+YyxS0
自治体とか業務に使うの書いてると、その用語使わないとやってられない
可読性が段違い
なのでそれ以外でももちろん漢字も使う
i とかはもちろん別だ
2025/01/04(土) 16:50:34.89ID:37N69Sng
漢字使おうかな
使えるものは使っておけと思い始めた
2025/01/04(土) 17:12:28.42ID:nk/HV8GL
>>897
colとか適当だけどCTRLspaceのオートコンプリートで候補探すとき便利
2025/01/04(土) 17:43:19.80ID:1EYuhsJq
漢字は漢字で弊害があったような
昔それでやっぱ変な事はやめとこってなった
2025/01/04(土) 21:06:46.91ID:37N69Sng
>>901
CTRLspaceのオートコンプリート初めて知った
あざす
2025/01/05(日) 09:58:57.13ID:HsCGP5m6
半角でも「0」「O」「1」「l」みたいなことが漢字でも起きるからな
905デフォルトの名無しさん
垢版 |
2025/01/05(日) 10:52:44.56ID:8kdOFrcZ
名前は文字コードで一意を確保してるだろうから
観掛けが同じでも違うコードなら違う変数やオブジェクトと看做される
百害有って一利無し
2025/01/05(日) 14:47:02.49ID:ToFXQ1cV
VBA漢字変数問題は決着つかないみたいね
他にもVBAで論争ってある?
2025/01/05(日) 15:11:29.01ID:nUqPwLoc
論争はないかもしれないけど、英字の大文字と小文字を同一視するのが堪らなくイヤ
Enumで宣言したときは大文字始まりで、ローカル変数は小文字始まりにしたいときなど、同じ名前だとどちらかに寄ってしまうのがイヤ

(以下うろ覚え)
あと、Enumで宣言した識別子をタイプするとき、宣言した大文字・小文字の列(パスカルやキャメル)にならないのがイヤ
その他はたとえすべて小文字でタイプしても宣言のとおりに大文字・小文字に統一されるのに
2025/01/05(日) 15:17:04.83ID:nUqPwLoc
Enumのときだけ、メンバをタイプすると、タイプした側に寄せて宣言側が変わってしまうような

Typeのメンバや他の変数宣言では、使用時にどうタイプしても宣言したとおりの大文字・小文字の列になる
(以上うろ覚え)
2025/01/05(日) 16:23:41.91ID:ToFXQ1cV
従うことが推奨するレベルのコーディング規約などあればうれしいと思って調べてみた
最近は結構盛り上がっているとの記事を見つけた
素人としては助かるとおもった
2025/01/05(日) 17:44:25.49ID:23iDS5pk
そんなもん丸ごとAIに投げてレビューさせりゃいいよ
VBA使い同士よりも遥かに有用なアドバイスをくれる
まあ基本的にVBAでは人間のリテラシーもコードに求められる品質も低いので、一般的なプログラミング作法の視点でAIにまともに指摘させると
逆に一般的なVBA使いのレベルでは扱いにくいようなコードを推奨してくるから、ちょっとレベルを下げるようにプロンプトを工夫する必要はあるが
2025/01/05(日) 18:08:41.24ID:HsCGP5m6
OK/NGの結果を○×で判断しようとしてオーと丸、バツとエックスが混在したり
海外のテストで正解をㇾ点、不正解に○ が書かれるとか
PSのボタンで×が決定、○がキャンセルみたいなことが起きるのが世の中
912デフォルトの名無しさん
垢版 |
2025/01/05(日) 19:12:09.31ID:c9RkuEF2
>>911
○〇
913デフォルトの名無しさん
垢版 |
2025/01/05(日) 19:13:51.36ID:c9RkuEF2
>>911
PS5は世界の主流派に合わせただけ
PS4までは日本人仕様をゴリ押ししていた
914デフォルトの名無しさん
垢版 |
2025/01/05(日) 19:14:56.59ID:c9RkuEF2
「プレイステーション」、「ウォークマン」という変な英語も許容してくれたアメリカ合衆国に感謝しろよ。
2025/01/05(日) 19:25:49.40ID:NttvQdH2
>>913
世界でも×は決定じゃないし〇も間違いじゃない
レ点と×は区別され使われてる
×が決定って文化のソースを出してくれ
2025/01/05(日) 19:27:19.60ID:NttvQdH2
>>914
商品名に変な英語もクソもあるかよ
2025/01/05(日) 20:35:02.16ID:NdQYfdJN
MACの✕○
Winの○✕
MSの意地だね
918デフォルトの名無しさん
垢版 |
2025/01/06(月) 09:58:12.70ID:S/vMyKqU
ワンボタンマウスなんてクソに引っ張られなくてwinに感謝してる
独立した△□三なAndroidに感謝してる
919デフォルトの名無しさん
垢版 |
2025/01/06(月) 13:18:15.88ID:whmwJ+gu
馬鹿はMacがワンボタンマウスだと思ってる
920デフォルトの名無しさん
垢版 |
2025/01/06(月) 13:37:03.49ID:daWFXzfc
ハゲもMacがワンボタンマウスだと思ってる
921デフォルトの名無しさん
垢版 |
2025/01/06(月) 13:56:37.51ID:S/vMyKqU
2000年過ぎてもワンボタンだったなんてバカ過ぎるw
922デフォルトの名無しさん
垢版 |
2025/01/06(月) 14:13:55.27ID:whmwJ+gu
>>921
馬鹿はまだ気付かないのかよ
923デフォルトの名無しさん
垢版 |
2025/01/06(月) 19:49:43.48ID:S/vMyKqU
>>922
ニホンゴワカラナイ奴は絡んでくるなよw
924デフォルトの名無しさん
垢版 |
2025/01/07(火) 12:23:32.84ID:PC0xHZvK
アップルは間違いに気づいて
ウィンドウズと同じ方式にした
あれだけこき下ろしてたのに
2025/01/07(火) 13:37:08.71ID:jtRHQb6b
現行マックのマウスは言わば無限ボタン
表面全体がセンサーでタッチパッドぽく使えるようになってる
これに慣れると普通のホイールマウスが不便すぎて使えなくなる
2025/01/07(火) 17:13:54.87ID:qnMO/RTC
>>925
無限ボタンw
信者って面白いこと言い出すな
927デフォルトの名無しさん
垢版 |
2025/01/08(水) 09:45:47.27ID:RLOCMdIb
無限ぷちぷちシートを思い出した
928デフォルトの名無しさん
垢版 |
2025/01/09(木) 12:38:58.06ID:iZ6OsWgm
そしてすぐ忘れる
2025/01/09(木) 16:04:35.97ID:lm+XW3ez
最近Excel関連スレはどこも過疎すぎ。みんなどこに飛んだ?
930デフォルトの名無しさん
垢版 |
2025/01/09(木) 17:29:47.26ID:/JQpVs0P
>>929
回答してくれるExcelの神様たちが
ハゲたり死んでしまったんじゃないか?
2025/01/09(木) 19:48:52.41ID:vEm55Zh9
AIに聞いてるんじゃね?
2025/01/09(木) 19:57:46.66ID:lm+XW3ez
AIはアカン。回答に魂が籠もっていないから。
やっぱりこのスレの回答者みたいに喜怒哀楽感情全開な回答が良い。
2025/01/09(木) 20:07:46.11ID:sR2mtIgX
>>932
そのとおり
あと、VBAで業務を自動化するのは真心がこもってないし、一生懸命手作業している人のことを思い遣って控えるべき
2025/01/09(木) 21:08:18.79ID:vEm55Zh9
>>933
同意。
それから、エクセルで書類を電子化して画一化するのは冷たい印象を与えるから、手書き書類の暖かみを改めて考えるべき。
2025/01/09(木) 21:34:09.45ID:TbrYE+DS
>>933,934
つまんね
2025/01/09(木) 21:40:57.86ID:vav7Znkh
>>935
君、なかなか見所があるぞ
937あれ?
垢版 |
2025/01/09(木) 23:47:00.74ID:qILOB6yW
>>932
いちいち感情なんか込めんわアホ
2025/01/09(木) 23:51:59.37ID:sQAFzeHP
デジタル行財政改革ということか
2025/01/10(金) 22:59:39.20ID:5Wtp4mSG
>喜怒哀楽感情全開
ディスられて完結するのがなw
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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