1 名前:デフォルトの名無しさん [2023/01/28(土) 12:12:12.41 ID:UjlIZ1Ov0.net] !extend:checked:vvvvv:1000:512 !extend:checked:vvvvv:1000:512 ↑同じ内容を3行貼り付けること ExcelのVBAに関する質問スレ コード書き込みや作成依頼もOK 次スレは>>980 が立てること 無理なら細かく安価指定 ※前スレ Excel VBA 質問スレ Part77 https://mevius.2ch.net/test/read.cgi/tech/1658009255/ Excel VBA 質問スレ Part78 https://mevius.2ch.net/test/read.cgi/tech/1667104996/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
834 名前:デフォルトの名無しさん (ワッチョイ 0ac8-tU16) mailto:sage [2023/09/26(火) 20:47:48.58 ID:e5wjlTrL0.net] まぁちょっとでもコーディング楽したいからカネ払うってのはアリカモとわ思いましたケドぬ
835 名前:デフォルトの名無しさん (ワッチョイ 0736-f7kt) mailto:sage [2023/09/27(水) 08:16:47.55 ID:KzAf4gKK0.net] これ以上カネ払いたくない
836 名前:むっつりクマたん ◆cIkVt1EXxY (ワッチョイ ca89-j351) mailto:sage [2023/09/27(水) 11:24:21.36 ID:pPbUGATv0.net] 俺は こんな情報すら知らない『情弱』だったわ。 https://sogyotecho.jp/microsoft-365-copilot/
837 名前:デフォルトの名無しさん (ワッチョイ 6b01-P6+q) mailto:sage [2023/09/28(木) 22:12:51.19 ID:dYhUuhvT0.net] Redimって途中からの指定は無理なのか? Redim Arry(1 to Ubound (Arry) , 5 to 10)みたいな感じにしたいんだが
838 名前:デフォルトの名無しさん (ワッチョイ 27ce-WMZf) mailto:sage [2023/09/28(木) 23:04:37.28 ID:Kp8uTxgJ0.net] 無理
839 名前:デフォルトの名無しさん (ワッチョイ 062f-oRtz) mailto:sage [2023/09/29(金) 01:59:31.59 ID:YBCTJXQl0.net] >>829 途中ってどういう意味だ? Sub test() Dim Arry() ReDim Arry(5, 10) ReDim Arry(1 To UBound(Arry), 5 To 10) End Sub とくにエラーはでないが?
840 名前:デフォルトの名無しさん (オッペケ Sr23-P6+q) mailto:sage [2023/09/29(金) 06:16:54.23 ID:hPMCTGyUr.net] >>831 分かりにくくてすまん Redim Arry(1 to Ubound (Arry) , 5 to 10)と書いてもエラーは出ないけど実際二次元側の配列に格納されるの1〜6の値になるってこと
841 名前:デフォルトの名無しさん (ワッチョイ 9b2f-UA51) mailto:sage [2023/09/30(土) 00:04:10.69 ID:u5B7upPH0.net] >>832 ますます意味がわからん ReDimした段階で中身は空なんだが?
842 名前:デフォルトの名無しさん (ワッチョイ 23ea-/hnu) [2023/09/30(土) 10:41:38.51 ID:e5dXzvv10.net] >>832 う〜ん、言っている内容がわからない。画面キャプチャして貼ってみて。 https://i.imgur.com/LPlz6iE.jpg
843 名前:デフォルトの名無しさん (スッププ Sd43-1H40) mailto:sage [2023/09/30(土) 12:02:57.08 ID:+2S9roRWd.net] 値なのか添字なのかハッキリしてくれ
844 名前:デフォルトの名無しさん (ワッチョイ 8501-E3Lm) mailto:sage [2023/09/30(土) 19:39:00.90 ID:HRNdSGlC0.net] 度々すいません Sub test() Dim Arry() Arry = Sheet1.Range(“A1”).CurrentRegion.Value Redim Arry(1 to Ubound (Arry) , 5 to 10) End Sub これで二次元側の値をArryの5〜10の値を格納したいけど1〜6の値がはいります そもそも無理なんでしょうか?
845 名前:デフォルトの名無しさん (ワッチョイ 8501-E3Lm) mailto:sage [2023/09/30(土) 19:44:55.14 ID:HRNdSGlC0.net] Preserve書き忘れてましたけど実際は書いてます
846 名前:デフォルトの名無しさん (スッップ Sd43-IetE) mailto:sage [2023/09/30(土) 20:30:52.83 ID:ITwwqQZud.net] こいつずっと日本語おかしいけど なんなの?w
847 名前:デフォルトの名無しさん (ワッチョイ 23ea-4a9y) [2023/09/30(土) 21:43:15.63 ID:e5dXzvv10.net] >>836 何をやりたいのか書いた方がいいかも。 見た感じ、Redimの使い方を間違ってる、機能を誤解している印象。
848 名前:デフォルトの名無しさん (ワッチョイ 8501-6YkV) mailto:sage [2023/09/30(土) 21:52:52.81 ID:UMbhW8aD0.net] >>836 >>834
849 名前:デフォルトの名無しさん (ワッチョイ 23ea-/hnu) [2023/10/01(日) 08:29:59.20 ID:Po2H+ILb0.net] Redimは配列の要素数を変更するもの。元々の添字が1〜10でRedimで5 to 10としたら要素数を6に変更し添字が5から始まるようになるだけ。 Preserveを使っているなら元の値の頭から変更後の要素数分だけ持ってくる。 てか、この後どう使っているか知らないけどRedimする必要ある? 配列から値を読み出す時に添字をいじればいいんじゃない? c = 4 ‘今回の使い方だと-4? d = arry(a, b + c)
850 名前:デフォルトの名無しさん (ワッチョイ 0502-5C2y) [2023/10/01(日) 14:22:43.95 ID:n3YXj22r0.net] 素人質問で申し訳ありません。 VBAをコピーしつつ組んだのですが下記がエラーが出てしまいます。 ご教示いただけますと幸いです。 A行(A1:A100)をダブルクリックするとA行に1加算され、 B行(B1:B100)をダブルクリックすると、B行には年月日が、C行には時間が記載される。 D行(D1:D100)をダブルクリックすると、D行には時間が記載される。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, Range("A1:A100")) Is Nothing Then Target.Value = Target.Value + 1 If Not IsEmpty(Target) Then Exit Sub If Intersect(Target, Range("B1:B100,D1:D100")) Is Nothing Then Exit Sub If Target.Column = 2 Then Target.Value = Date Target.Offset(, 1).Value = Time ElseIf Target.Column = 3 Then Target.Value = Time ElseIf Target.Column = 4 Then Target.Value = Time End If Cancel = True Cancel = True End Sub
851 名前:デフォルトの名無しさん (スッップ Sd43-VEJP) mailto:sage [2023/10/01(日) 16:06:27.86 ID:BhexpavYd.net] どんなときにどんなエラーが出るか(どのコードでエラーがでるかなど)ぐらい書いたほうがいいんじゃね 素人でもそれぐらいはできるでしょ
852 名前:842 (ワッチョイ 0502-UA51) [2023/10/01(日) 17:20:06.14 ID:n3YXj22r0.net] >>843 すみません。エラーが出るというより、A行とD行しか反応しません。
853 名前:デフォルトの名無しさん (ワッチョイ 7dce-VEJP) mailto:sage [2023/10/02(月) 03:50:19.29 ID:oQhLkSNR0.net] >>842 とりあえずこれで動くけど、何か説明が抜けてない? Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("A1:A100,B1:B100,D1:D100")) Is Nothing Then Exit Sub If Target.Column = 1 Then 'A列 Target.Value = Target.Value + 1 ElseIf Target.Column = 2 Then 'B列 Target.Value = Date Target.Offset(, 1).Value = Time ElseIf Target.Column = 4 Then 'D列 Target.Value = Time End If Cancel = True End Sub
854 名前:842 (ワッチョイ 756f-4zuU) [2023/10/02(月) 08:22:38.98 ID:9fso2rak0.net] >>845 ありがとうございます。 やってみます。 説明できる限りのことは書いたのですが 要領を得なかったら申し訳ありません。
855 名前:デフォルトの名無しさん (スッップ Sd43-VEJP) mailto:sage [2023/10/02(月) 09:11:09.89 ID:MMPwIajKd.net] >>846 自分の書いてる説明には If Not IsEmpty(Target) Then Exit Sub これに相当することが書かれてないけど必要なの? これがあるとB列とD列は一度設定されると以降の処理が動作しないよね(未設定の時だけ設定される動作) (そういう点では>>845 のコードは説明に合わせたコード) あと ElseIf Target.Column = 3 Then Target.Value = Time これは自分の説明にはない動作だよね(「C列をダブルクリックしたら時間を設定」だけど実際にはIntersectの範囲に含まれないから動作しない)
856 名前:デフォルトの名無しさん (ワッチョイ 7d9a-/sIl) [2023/10/02(月) 12:25:48.10 ID:ld9+k8U+0.net] >>反応しません ってので見てるとこがね…
857 名前:デフォルトの名無しさん (ワッチョイ 7d9a-/sIl) [2023/10/02(月) 12:26:02.80 ID:ld9+k8U+0.net] >>反応しません ってので見てるとこがね…
858 名前:デフォルトの名無しさん [2023/10/11(水) 12:18:31.21 ID:VviNns4z0.net] vbaを含むxlsmファイルのライセンスってどこに含めるのが一般的ですか?
859 名前:デフォルトの名無しさん [2023/10/11(水) 12:24:39.89 ID:nuQ0rfxo0.net] つくったとこじゃね
860 名前:デフォルトの名無しさん (ブーイモ MM1d-YcX+) mailto:sage [2023/10/15(日) 13:46:37.05 ID:f8ckKaeDM.net] VBA使えなくなるんですか??? https://gigazine.net/news/20231012-microsot-kill-off-vbscript/
861 名前:デフォルトの名無しさん (ワッチョイ 131f-ty0S) mailto:sage [2023/10/15(日) 13:55:09.75 ID:vVffQC480.net] YES
862 名前:デフォルトの名無しさん (ワッチョイ fbbf-3tBr) [2023/10/15(日) 14:15:54.32 ID:BVKbSlte0.net] >>852 馬鹿
863 名前:デフォルトの名無しさん mailto:sage [2023/10/15(日) 14:24:09.38 ID:vRG6kfBHM.net] VBSとVBAは別物なのでまだ当面使えなくなることはないだろうけどそろそろ別の手段を考え始めた方が良さげな感じではある
864 名前:デフォルトの名無しさん (ワッチョイ 7b77-fsiV) mailto:sage [2023/10/15(日) 15:28:22.49 ID:j1k0qbJm0.net] セキュリティリスクだからVBA使うなって会社もそろそろ増えてきてるだろうしな
865 名前:デフォルトの名無しさん [2023/10/15(日) 17:42:26.62 ID:H9M8XB6j0.net] excelが悪い
866 名前:デフォルトの名無しさん mailto:sage [2023/10/16(月) 09:17:56.44 ID:1jmJ2+9pM.net] もう今はExcelとVBAではなくモダンExcelとPowerPlatformの時代
867 名前:デフォルトの名無しさん [2023/10/16(月) 09:59:53.14 ID:kgcCjrnKa.net] >>856 同じ理由ならpowershellも廃止すべきでは
868 名前:デフォルトの名無しさん (ワッチョイ 2bf7-xRLz) [2023/10/17(火) 07:51:58.43 ID:mIHb8CZV0.net] 自分が使わなければいいだけでしょ
869 名前:デフォルトの名無しさん mailto:sage [2023/10/18(水) 10:45:13.63 ID:BxVgF2oz0.net] なんでやねん、説明して
870 名前:デフォルトの名無しさん mailto:sage [2023/10/18(水) 11:05:14.43 ID:IL9b7uemd.net] >>861 スレチなので当該スレでやって
871 名前:デフォルトの名無しさん mailto:sage [2023/10/19(木) 20:33:49.11 ID:k8TjAFfd0.net] ACCESSの連結フォームのように、Excelのセルとフォームを簡単に連動させるテクニックはありますか?
872 名前:デフォルトの名無しさん mailto:sage [2023/10/19(木) 20:36:45.56 ID:k8TjAFfd0.net] ACCESSの連結フォームのように、Excelのセルとフォームを簡単に連動させるテクニックはありますか?
873 名前:デフォルトの名無しさん mailto:sage [2023/10/19(木) 20:37:04.09 ID:k8TjAFfd0.net] ACCESSの連結フォームのように、Excelのセルとフォームを簡単に連動させるテクニックはありますか?
874 名前:デフォルトの名無しさん mailto:sage [2023/10/19(木) 20:37:18.34 ID:k8TjAFfd0.net] ACCESSの連結フォームのように、Excelのセルとフォームを簡単に連動させるテクニックはありますか?
875 名前:デフォルトの名無しさん mailto:sage [2023/10/19(木) 23:17:38.32 ID:3q17UY2e0.net] Excelのセルを使ってVBAソースを作る 似たような式をフィルでズズーと作ると気持ちいいぞ
876 名前:デフォルトの名無しさん (ワッチョイ 5901-Q3Hg) mailto:sage [2023/10/20(金) 03:27:46.40 ID:mGpX8NcL0.net] >>867 狙ったとこだけ変えるテクを教えてください
877 名前:デフォルトの名無しさん mailto:sage [2023/10/20(金) 18:26:19.01 ID:YxHuWP400.net] これを参考にしてみて、この程度でいいならいちばんシンプル https://forest.watch.impress.co.jp/docs/serial/exceltips/1208637.html もっと深く踏み込んだのが欲しければ、ここで在庫管理とかを解説してる 真似するだけで、かなりのものに仕上がる https://www.minizaiko.com/entry/ZaiSis102
878 名前:デフォルトの名無しさん mailto:sage [2023/10/21(土) 03:50:37.64 ID:4nC0eILg0.net] >>866 RowSourceとかControlSourceとか https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/listbox-control-boundcolumn-controlsource-rowsource-properties-example >>869 今のエクセル、入力用フォーム自動生成してくれるのか もう無茶苦茶な機能追加だな でも自分でそのフォームカスタマイズできないのは魅力半減だな
879 名前:デフォルトの名無しさん mailto:sage [2023/10/21(土) 03:54:30.35 ID:+5aGT6RT0.net] 設定ファイルを書き換えればカスタマイズできる
880 名前:デフォルトの名無しさん mailto:sage [2023/10/25(水) 10:36:26.65 ID:eJmjtmbA0.net] Excelなのですが、複数セルに条件付き書式を一括で追加したいです。(条件は各行変化する) FomulaとFormatConditions.addを組み合わせる様な事をしたいのですが、 実際やるとエラーで通りません。 例えば FormatConditions.Add(2,3, '=A2TRUE') と言った具合で、範囲で追加したときAの値A2,A3,A4と変化させたい感じです。 また別言語(Powershell)から呼び出しているのでWith構文は使えないと思います。 Forで回しても良いのですが、1000行近くあるので時間が結構かかる為避けたいです。
881 名前:デフォルトの名無しさん [2023/10/25(水) 12:26:50.69 ID:SA71alYG0.net] もっとよく考えたほうがいいと思う
882 名前:デフォルトの名無しさん mailto:sage [2023/10/25(水) 20:06:44.00 ID:FhNheB/20.net] >>872 1000行なんてパソコンにとっては全然多くない どうやろうが一瞬で終わる程度の量 そんな作業はどう考えてもForで回した方が速い
883 名前:デフォルトの名無しさん (ワッチョイ 7ae6-dytz) mailto:sage [2023/10/26(木) 11:27:43.31 ID:0owHhtRH0.net] VBA内なら1000行すぐ終わるかも知れませんが Powershellから呼び出しだと結構時間かかります 試しにComObject作成して確認してみて下さい
884 名前:デフォルトの名無しさん (スップ Sd7a-JD/u) mailto:sage [2023/10/26(木) 11:37:44.62 ID:q3pE0MJPd.net] 最初の質問から24時間以上経過してるけど、その間にパソコンを動かしてたら遅い方法でもとっくに終わってたやろうなあ
885 名前:デフォルトの名無しさん (スッププ Sd9a-pqHO) mailto:sage [2023/10/26(木) 11:38:24.30 ID:ewuxy2JXd.net] 実際のセルの処理は時間がかかる 描画を止めてから処理すれば多少早くなるから、 Application.ScreenUpdating=Falseしてから処理をはじめ、 終わったらApplication.ScreenUpdating=True 計算処理も同様に Application.Calculation = xlCalculationManual やってからはじめて、 Application.Calculation = xlCalculationAutomaticでおえる
886 名前:デフォルトの名無しさん (スッププ Sd9a-pqHO) mailto:sage [2023/10/26(木) 11:39:48.79 ID:ewuxy2JXd.net] >>876 何度も使うつもりなら速いに越したことはないでしょ 一回切りなら尤もな話だけどさ
887 名前:デフォルトの名無しさん (ワッチョイ 7ae6-dytz) mailto:sage [2023/10/26(木) 12:19:58.33 ID:0owHhtRH0.net] 質問取り下げます まともに回答するつもりの方いない様なので 書き込む前から雰囲気悪いなと思ったけどやっぱりか・・
888 名前:デフォルトの名無しさん mailto:sage [2023/10/26(木) 12:46:23.38 ID:UgEvltp9M.net] 変化する条件を一括設定したい これだけ聞いたら「もう少し考えたら?」の回答しか出ないよ
889 名前:デフォルトの名無しさん mailto:sage [2023/10/26(木) 14:25:49.72 ID:w9aGlpnFd.net] >>879 与えられた条件で速くなりうる手段を考えて回答したのに、 まともな回答じゃないって判断されたんだね 考える時間もレスする時間も無駄にしたわ
890 名前:デフォルトの名無しさん mailto:sage [2023/10/26(木) 14:46:30.23 ID:Sxr6n1fv0.net] > VBA内なら1000行すぐ終わるかも知れませんが > Powershellから呼び出しだと結構時間かかります これよくわからない 時間がかかってるのはExcelの起動やらとかであって、Forの実行はVBA内で行われるんじゃないの?
891 名前:デフォルトの名無しさん mailto:sage [2023/10/26(木) 14:51:50.68 ID:ZtFvM5yP0.net] 取り下げたんだからもう良いんじゃねw 自分の恥ずかしいところとか見つかったんだろうよw
892 名前:デフォルトの名無しさん (ワッチョイ dd4e-CxP9) mailto:sage [2023/10/27(金) 15:12:43.55 ID:fcYuq+zB0.net] >>883 > また別言語(Powershell)から呼び出しているのでWith構文は使えないと思います。 これもよくわからないし Powershellって人がプロシージャに書いてある文章を一行ずつ読みにいって、自己解釈の元で自分で実行するみたいな発想だったのかね ここまで意味不明な解釈してる人がどこで何に気がついたのか知らないけど>>879 の捨て台詞は必要だったのかね そして何よりもID:ewuxy2JXdが不憫で仕方がない
893 名前:デフォルトの名無しさん (ワッチョイ a551-dytz) mailto:sage [2023/10/27(金) 17:17:23.69 ID:NmWpMbd70.net] これからこういう人多く成るんだよ? 高学歴が邪魔するのか何だか知らんけど プライドだけは変な方向に高い 実務に即さない解決策を講じる 選択肢が間違ってても突っ走る
894 名前:デフォルトの名無しさん (ワッチョイ c1a5-ANn9) mailto:sage [2023/10/27(金) 18:21:28.41 ID:HOnfPTgV0.net] ChatGPTでしらべたけどよくわからん、みたいな?
895 名前:デフォルトの名無しさん (ワッチョイ 4ec2-WPgu) [2023/10/27(金) 21:02:38.87 ID:4EmYUF1P0.net] 馬鹿が考える解決方法はそんなもの 馬鹿ほど己の間違え方法にこだわる
896 名前:デフォルトの名無しさん mailto:sage [2023/10/28(土) 00:17:29.34 ID:jY1bWC/90.net] やっている本人しかわからない可能性があることなんていくらでもあるだろう。
897 名前:デフォルトの名無しさん (ワッチョイ 29ca-mA8z) mailto:sage [2023/10/28(土) 06:04:48.34 ID:frVn+RL00.net] セルに○○と打ち込んだ これを.Valueで取ったら"○○" .Textで取ったら" ○○ "になった その前後のスペースはどこから来たんじゃい?
898 名前:デフォルトの名無しさん mailto:sage [2023/10/28(土) 08:55:39.42 ID:GGD6bBOU0.net] >>889 再現しない https://i.imgur.com/6cSraSv.png
899 名前:デフォルトの名無しさん (ワッチョイ 41da-c8RC) mailto:sage [2023/10/28(土) 11:13:55.25 ID:EfsxXat70.net] >>889 朝から寝ぼけたんじゃね
900 名前:デフォルトの名無しさん (ワッチョイ 29ca-mA8z) mailto:sage [2023/10/28(土) 11:19:53.47 ID:frVn+RL00.net] だよなあ 20年やっててこんなこと初めてだわ
901 名前:デフォルトの名無しさん mailto:sage [2023/10/28(土) 15:22:33.56 ID:Jo+R6/p70.net] 馬鹿馬鹿って頻繁に書き込んでる人はよほど優秀なんだろうね。 Excelマクロ教室でも開けば良いのに。
902 名前:デフォルトの名無しさん mailto:sage [2023/10/28(土) 20:44:15.82 ID:13jr+kZc0.net] >>889 セルの書式
903 名前:デフォルトの名無しさん mailto:sage [2023/10/29(日) 01:44:54.53 ID:IGVL7C2J0.net] >>894 標準か文字型 ○○は漢字で、 Cells(1, 1).Text = "○○" がFalseで、 Cells(1, 1).Value = "○○" がTrueになったので、 んなわけあるか!と思ってDebug.Printしたら、 .Textには前後に変な空白があったのよ
904 名前:デフォルトの名無しさん mailto:sage [2023/10/29(日) 10:01:38.54 ID:9r8OlfFd0.net] とりあえずトリムっとけばおk
905 名前:デフォルトの名無しさん mailto:sage [2023/10/29(日) 10:54:39.06 ID:j00+fEWV0.net] 同じやん https://i.imgur.com/ULDMIE0.png
906 名前:デフォルトの名無しさん mailto:sage [2023/10/29(日) 12:32:43.45 ID:T4jRmqRS0.net] >>895 問題のセルがA1だったとして、A1の表示形式を"標準"にする。 (一旦別の表示形式にして"標準"にするのがよい) その状態からF2で一旦入力状態にして、Enterで確定。 これで同じになれば値をどうやって入れたかを調べる。 同じ列の別の行で同じことが起こるか、などいろいろ。 動けばいいんだったら、違うことを前提にして回避策をいれればいい。
907 名前:デフォルトの名無しさん (ワッチョイ 1310-mA8z) mailto:sage [2023/10/30(月) 00:45:58.32 ID:ok297MD20.net] 1セルだけ書式が会計になってたわ >>891 の言うとおりだった すまん しかし、なんで会計だと空白が付くのかという新たな疑問が
908 名前:デフォルトの名無しさん (ワッチョイ 51da-c8RC) mailto:sage [2023/10/30(月) 01:23:46.28 ID:B1G43WsB0.net] >>899 セルや罫線の中で見やすくするためかしら? 桁区切り付き数値にしても、値の後に空白が入る。
909 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 10:34:02.92 ID:upgSC0LO0.net] Textはあくまで見た目のデータだからね 書式設定のウインドウでも位置がズレることが確認できるはず 何故かはしらん、マイナスとかついたときの位置を固定するためとかやろ
910 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 11:27:34.15 ID:TNhE6eNI0.net] 標準で入ってる書式にもスペース入ってるのあるはず(前はあったが…) あれみた時、見えない爆弾仕込んでるな…と思った
911 名前:デフォルトの名無しさん [2023/10/30(月) 12:07:45.37 ID:RmOFtzKv0.net] 前の空白は数値で付くのはわかるが後ろの空白は謎
912 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 12:28:45.35 ID:lBYVOk8eM.net] おそらく非表示の書式文字はアンダーバー+半角スペース1文字
913 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 15:52:04.09 ID:lVrtS1Ry0.net] 会計を設定した場合に隙間が空くのは、次のような表示形式が行われるからです _ \* #,##0_ ;_ \* -#,##0_ ;_ \* "-"_ ;_ @_ https://www.officepro.jp/exceltips/tips_format/index16.html 基本のキ
914 名前:デフォルトの名無しさん [2023/10/30(月) 16:33:05.01 ID:upgSC0LO0.net] いやそれが何故かっていう疑問なんじゃないの・・・ (言い換えれば空ける理由、空けなくてもいいんじゃない?っていう疑問だと思う) 答え出るかわからんし闇っぽいから、はい次の方
915 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 16:45:21.41 ID:+WHjaEV1d.net] 闇って言いたいだけだろ
916 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 22:20:23.95 ID:8XyBI/Ix0.net] 書式設定を変えた時、文字の位置が少し変わるのは知ってたけど、まさかそれを内部的には空白で表現してるとは思わなかったよ
917 名前:デフォルトの名無しさん (ワッチョイ 1387-zW/F) [2023/11/01(水) 01:09:45.26 ID:hjpDJv/i0.net] 【質問】 Excelのソートに関しての質問です。 ①シートの1列目の文字列に基づいて昇順でソートする。 ②シートの1列目の文字列の先頭に「○」や「☆」などの記号がある場合は、それらを無視して2文字目の文字に基づいてソートしたい。 そこで下記コードを実行したところ、 「実行時エラー '1004': 並べ替えの参照が正しくありません。」というエラーが出ます。 どこをどう修正すればよいでしょうか?
918 名前:デフォルトの名無しさん (ワッチョイ 1387-zW/F) [2023/11/01(水) 01:11:37.64 ID:hjpDJv/i0.net] Sub CustomSort() Dim LastRow As Long Dim SortRange As Range Dim SortKeyRange As Range Dim i As Long With ActiveSheet LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row Set SortRange = .Range("A2:A" & LastRow) Set SortKeyRange = .Range("B2:B" & LastRow) .Sort.SortFields.Clear .Sort.SortFields.Add Key:=SortRange, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .Sort.SetRange SortRange .Sort.Header = xlNo .Sort.MatchCase = False .Sort.Orientation = xlTopToBottom .Sort.SortMethod = xlPinYin .Sort.Apply End With
919 名前:デフォルトの名無しさん (ワッチョイ 1387-zW/F) [2023/11/01(水) 01:12:11.61 ID:hjpDJv/i0.net] For i = 2 To LastRow If Left(SortKeyRange(i, 1), 1) Like "[○☆]" Then SortKeyRange(i, 1) = Mid(SortKeyRange(i, 1), 2, 1) End If Next i With ActiveSheet .Sort.SortFields.Clear .Sort.SortFields.Add Key:=SortKeyRange, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .Sort.SetRange SortRange .Sort.Header = xlNo .Sort.MatchCase = False .Sort.Orientation = xlTopToBottom .Sort.SortMethod = xlPinYin .Sort.Apply End With For i = 2 To LastRow If Left(SortKeyRange(i, 1), 1) Like "[○☆]" Then SortKeyRange(i, 1) = "○" & SortKeyRange(i, 1) End If Next i End Sub
920 名前:デフォルトの名無しさん mailto:sage [2023/11/01(水) 03:09:14.48 ID:u6oKBIyz0.net] >>909 何もかも違ってる気がするので丸ごと作り直してみたけど、これで希望の結果になってるかはわからない Sub CustomSort() Dim LastRow As Long Dim SortRange As Range Dim SortKeyRange As Range Dim i As Long With ActiveWorkbook.ActiveSheet LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row Set SortRange = .Range("A2:B" & LastRow) Set SortKeyRange = .Range("B2:B" & LastRow) .Range("A2:A" & LastRow).Copy Destination:=SortKeyRange For i = 2 To LastRow If Left(.Cells(i, 1), 1) Like "[〇☆]" Then .Cells(i, 2) = Mid(.Cells(i, 1), 2, 1) End If Next i With .Sort .SortFields.Clear .SortFields.Add2 Key:=SortKeyRange .SetRange SortRange .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End With End Sub
921 名前:デフォルトの名無しさん [2023/11/01(水) 03:13:41.64 ID:H7+Ix2LYd.net] >>909 ほぼマルチんこ
922 名前:デフォルトの名無しさん (ワッチョイ 1387-zW/F) [2023/11/01(水) 07:02:30.74 ID:hjpDJv/i0.net] >>912 ありがとうございます。 ただ、そのコードを実行してみたら、ちょっとセルの中身がずれたりしていたので、色々試した結果、下記のコードで解決しました。 Sub CustomSortWithSymbol() Dim LastRow As Long Dim ws As Worksheet Dim i As Long, j As Long, k As Long Dim sortKey As String Dim originalValue As String Set ws = ThisWorkbook.ActiveSheet ' アクティブなシートを設定 LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' 最後の行を取得 Dim sortKeys() As String ' カスタムソートのため、ソートキーを一時的に保持 ReDim sortKeys(1 To LastRow) For i = 2 To LastRow ' ○や☆の文字で始まる文字列の場合、次の3文字をソートキーとして設定 originalValue = ws.Cells(i, 1).Value If Left(originalValue, 1) = "○" Or Left(originalValue, 1) = "☆" Then sortKeys(i) = UCase(Mid(originalValue, 2, 3)) Else sortKeys(i) = UCase(Left(originalValue, 3)) End If Next i
923 名前:デフォルトの名無しさん (ワッチョイ 1387-zW/F) [2023/11/01(水) 07:04:31.49 ID:hjpDJv/i0.net] For i = 2 To LastRow ' ソートキーを使ってソート順を決定 For j = i + 1 To LastRow If sortKeys(i) > sortKeys(j) Then Dim tempKey As String ' ソートキーの順序を入れ替え tempKey = sortKeys(i) sortKeys(i) = sortKeys(j) sortKeys(j) = tempKey Dim tempValue As String ' A列のセルの値も入れ替え tempValue = ws.Cells(i, 1).Value ws.Cells(i, 1).Value = ws.Cells(j, 1).Value ws.Cells(j, 1).Value = tempValue For k = 2 To 10 ' B列~J列のセルの値も入れ替え tempValue = ws.Cells(i, k).Value ws.Cells(i, k).Value = ws.Cells(j, k).Value ws.Cells(j, k).Value = tempValue Next k End If Next j Next i End Sub
924 名前:デフォルトの名無しさん mailto:sage [2023/11/02(木) 01:34:57.09 ID:qnTt38vU0.net] めっちゃ解りやすい。上手ですね
925 名前:デフォルトの名無しさん mailto:sage [2023/11/02(木) 10:47:14.24 ID:I7yCwl+w0.net] いえいえ
926 名前:デフォルトの名無しさん (ワッチョイ f3ad-2XMF) [2023/11/02(木) 12:10:56.31 ID:T6fjkERA0.net] swap関数作るともっと簡単に
927 名前:デフォルトの名無しさん [2023/11/08(水) 19:03:41.59 ID:OdlSvgsbk] 朝からうちのseleniumbasicがエレメントはじいて、 困ってます。 ページ移動やページソースは持ってきてくれますが、 driver.IsElementPresent(myBy.id("xxxx"))や driver.FindElementById ("xxxx")がエラーで、 某サイトのサンプルをコピペしても同じです。エラー↓ ____________________________ 実行時エラー'13': UnknownError unknown error:result.webdriverValue.value list is missing or empty in Runtime.callFunctionOn response (Session info:chrome=119.0.6045.106) (Driver info:chromedriver=118.0.5993.70 (e52f33f3091b4ddfad649acddc39ab570473b86-refs/branch-heads/5993{#12 NT 10.0.19045 x86_64 ーーーーーーーーーーーーーーーーーーーーーーーーーーーー よろしくお願いします。
928 名前:デフォルトの名無しさん [2023/11/09(木) 22:15:08.21 ID:1dy9z0CQM] 解決しました。 https://note.com/yuu________/n/n48b3530b0fe6
929 名前:デフォルトの名無しさん mailto:sage [2023/11/10(金) 14:54:35.91 ID:A5qmTFWx0.net] VBAでスクレイピングをしてるんだが これはOK Set o_elem = Driver.FindElementsByCss("ul.M_pager > li[class = 'next'] > a") これはOK Set o_elem = Driver.FindElementsByCss("ul.M_pager > li[class *= 'next'] > a") これはエラーになる Set o_elem = Driver.FindElementsByCss("ul.M_pager > li[class != 'next'] > a") VBAのFindElementsByCssで!=を使う方法てある? もちろん<>もだめ。
930 名前:デフォルトの名無しさん mailto:sage [2023/11/10(金) 18:46:25.71 ID:W6cpCxu4M.net] ソレってVBAではなくDriverさんの文法ですよね?
931 名前:デフォルトの名無しさん mailto:sage [2023/11/10(金) 20:05:43.07 ID:SDTABjlf0.net] コレでどーなるか ちょっと試してみてもらえるかぬ Set o_elem = Driver.FindElementsByCss(“ul.M_pager > li:not([class = ‘next’]) > a”)
932 名前:デフォルトの名無しさん mailto:sage [2023/11/10(金) 23:38:13.76 ID:A5qmTFWx0.net] >>923 THX それだとエラーはなくなるけど <li class=next><a>も選ばれてしまう。 . ul.M_pager > li:not([class]) > a だとうまくいきました
933 名前:デフォルトの名無しさん mailto:sage [2023/11/11(土) 00:16:15.21 ID:QtW8OgmTd.net] 解決オメだぬ
934 名前:デフォルトの名無しさん (ワッチョイ ff4f-ljUV) [2023/11/12(日) 20:06:42.57 ID:evQWrDt50.net] デスクトップに保存したhtmlファイルを、Shell ("エッジのパス\msedge.exe" & path, vbNormalFocus)で開いています。 んで、そのhtmlファイルには複数個のリンクがあります。 各リンクを自動的にonClick()でクリックするにはどのようにすればいいでしょうか?