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


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

Excel VBA 質問スレ Part79(ワッチョイあり)



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

856 名前:デフォルトの名無しさん (スッップ 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の範囲に含まれないから動作しない)

857 名前:デフォルトの名無しさん (ワッチョイ 7d9a-/sIl) [2023/10/02(月) 12:25:48.10 ID:ld9+k8U+0.net]
>>反応しません
ってので見てるとこがね…

858 名前:デフォルトの名無しさん (ワッチョイ 7d9a-/sIl) [2023/10/02(月) 12:26:02.80 ID:ld9+k8U+0.net]
>>反応しません
ってので見てるとこがね…

859 名前:デフォルトの名無しさん [2023/10/11(水) 12:18:31.21 ID:VviNns4z0.net]
vbaを含むxlsmファイルのライセンスってどこに含めるのが一般的ですか?

860 名前:デフォルトの名無しさん [2023/10/11(水) 12:24:39.89 ID:nuQ0rfxo0.net]
つくったとこじゃね

861 名前:デフォルトの名無しさん (ブーイモ MM1d-YcX+) mailto:sage [2023/10/15(日) 13:46:37.05 ID:f8ckKaeDM.net]
VBA使えなくなるんですか???
https://gigazine.net/news/20231012-microsot-kill-off-vbscript/

862 名前:デフォルトの名無しさん (ワッチョイ 131f-ty0S) mailto:sage [2023/10/15(日) 13:55:09.75 ID:vVffQC480.net]
YES

863 名前:デフォルトの名無しさん (ワッチョイ fbbf-3tBr) [2023/10/15(日) 14:15:54.32 ID:BVKbSlte0.net]
>>852
馬鹿

864 名前:デフォルトの名無しさん mailto:sage [2023/10/15(日) 14:24:09.38 ID:vRG6kfBHM.net]
VBSとVBAは別物なのでまだ当面使えなくなることはないだろうけどそろそろ別の手段を考え始めた方が良さげな感じではある



865 名前:デフォルトの名無しさん (ワッチョイ 7b77-fsiV) mailto:sage [2023/10/15(日) 15:28:22.49 ID:j1k0qbJm0.net]
セキュリティリスクだからVBA使うなって会社もそろそろ増えてきてるだろうしな

866 名前:デフォルトの名無しさん [2023/10/15(日) 17:42:26.62 ID:H9M8XB6j0.net]
excelが悪い

867 名前:デフォルトの名無しさん mailto:sage [2023/10/16(月) 09:17:56.44 ID:1jmJ2+9pM.net]
もう今はExcelとVBAではなくモダンExcelとPowerPlatformの時代

868 名前:デフォルトの名無しさん [2023/10/16(月) 09:59:53.14 ID:kgcCjrnKa.net]
>>856
同じ理由ならpowershellも廃止すべきでは

869 名前:デフォルトの名無しさん (ワッチョイ 2bf7-xRLz) [2023/10/17(火) 07:51:58.43 ID:mIHb8CZV0.net]
自分が使わなければいいだけでしょ

870 名前:デフォルトの名無しさん mailto:sage [2023/10/18(水) 10:45:13.63 ID:BxVgF2oz0.net]
なんでやねん、説明して

871 名前:デフォルトの名無しさん mailto:sage [2023/10/18(水) 11:05:14.43 ID:IL9b7uemd.net]
>>861
スレチなので当該スレでやって

872 名前:デフォルトの名無しさん mailto:sage [2023/10/19(木) 20:33:49.11 ID:k8TjAFfd0.net]
ACCESSの連結フォームのように、Excelのセルとフォームを簡単に連動させるテクニックはありますか?

873 名前:デフォルトの名無しさん mailto:sage [2023/10/19(木) 20:36:45.56 ID:k8TjAFfd0.net]
ACCESSの連結フォームのように、Excelのセルとフォームを簡単に連動させるテクニックはありますか?

874 名前:デフォルトの名無しさん mailto:sage [2023/10/19(木) 20:37:04.09 ID:k8TjAFfd0.net]
ACCESSの連結フォームのように、Excelのセルとフォームを簡単に連動させるテクニックはありますか?



875 名前:デフォルトの名無しさん mailto:sage [2023/10/19(木) 20:37:18.34 ID:k8TjAFfd0.net]
ACCESSの連結フォームのように、Excelのセルとフォームを簡単に連動させるテクニックはありますか?

876 名前:デフォルトの名無しさん mailto:sage [2023/10/19(木) 23:17:38.32 ID:3q17UY2e0.net]
Excelのセルを使ってVBAソースを作る
似たような式をフィルでズズーと作ると気持ちいいぞ

877 名前:デフォルトの名無しさん (ワッチョイ 5901-Q3Hg) mailto:sage [2023/10/20(金) 03:27:46.40 ID:mGpX8NcL0.net]
>>867
狙ったとこだけ変えるテクを教えてください

878 名前:デフォルトの名無しさん 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

879 名前:デフォルトの名無しさん 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
今のエクセル、入力用フォーム自動生成してくれるのか
もう無茶苦茶な機能追加だな
でも自分でそのフォームカスタマイズできないのは魅力半減だな

880 名前:デフォルトの名無しさん mailto:sage [2023/10/21(土) 03:54:30.35 ID:+5aGT6RT0.net]
設定ファイルを書き換えればカスタマイズできる

881 名前:デフォルトの名無しさん 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行近くあるので時間が結構かかる為避けたいです。

882 名前:デフォルトの名無しさん [2023/10/25(水) 12:26:50.69 ID:SA71alYG0.net]
もっとよく考えたほうがいいと思う

883 名前:デフォルトの名無しさん mailto:sage [2023/10/25(水) 20:06:44.00 ID:FhNheB/20.net]
>>872
1000行なんてパソコンにとっては全然多くない
どうやろうが一瞬で終わる程度の量
そんな作業はどう考えてもForで回した方が速い

884 名前:デフォルトの名無しさん (ワッチョイ 7ae6-dytz) mailto:sage [2023/10/26(木) 11:27:43.31 ID:0owHhtRH0.net]
VBA内なら1000行すぐ終わるかも知れませんが
Powershellから呼び出しだと結構時間かかります
試しにComObject作成して確認してみて下さい



885 名前:デフォルトの名無しさん (スップ Sd7a-JD/u) mailto:sage [2023/10/26(木) 11:37:44.62 ID:q3pE0MJPd.net]
最初の質問から24時間以上経過してるけど、その間にパソコンを動かしてたら遅い方法でもとっくに終わってたやろうなあ

886 名前:デフォルトの名無しさん (スッププ 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でおえる

887 名前:デフォルトの名無しさん (スッププ Sd9a-pqHO) mailto:sage [2023/10/26(木) 11:39:48.79 ID:ewuxy2JXd.net]
>>876
何度も使うつもりなら速いに越したことはないでしょ
一回切りなら尤もな話だけどさ

888 名前:デフォルトの名無しさん (ワッチョイ 7ae6-dytz) mailto:sage [2023/10/26(木) 12:19:58.33 ID:0owHhtRH0.net]
質問取り下げます
まともに回答するつもりの方いない様なので
書き込む前から雰囲気悪いなと思ったけどやっぱりか・・

889 名前:デフォルトの名無しさん mailto:sage [2023/10/26(木) 12:46:23.38 ID:UgEvltp9M.net]
変化する条件を一括設定したい
これだけ聞いたら「もう少し考えたら?」の回答しか出ないよ

890 名前:デフォルトの名無しさん mailto:sage [2023/10/26(木) 14:25:49.72 ID:w9aGlpnFd.net]
>>879
与えられた条件で速くなりうる手段を考えて回答したのに、
まともな回答じゃないって判断されたんだね
考える時間もレスする時間も無駄にしたわ

891 名前:デフォルトの名無しさん mailto:sage [2023/10/26(木) 14:46:30.23 ID:Sxr6n1fv0.net]
> VBA内なら1000行すぐ終わるかも知れませんが
> Powershellから呼び出しだと結構時間かかります

これよくわからない
時間がかかってるのはExcelの起動やらとかであって、Forの実行はVBA内で行われるんじゃないの?

892 名前:デフォルトの名無しさん mailto:sage [2023/10/26(木) 14:51:50.68 ID:ZtFvM5yP0.net]
取り下げたんだからもう良いんじゃねw
自分の恥ずかしいところとか見つかったんだろうよw

893 名前:デフォルトの名無しさん (ワッチョイ dd4e-CxP9) mailto:sage [2023/10/27(金) 15:12:43.55 ID:fcYuq+zB0.net]
>>883
> また別言語(Powershell)から呼び出しているのでWith構文は使えないと思います。
これもよくわからないし

Powershellって人がプロシージャに書いてある文章を一行ずつ読みにいって、自己解釈の元で自分で実行するみたいな発想だったのかね
ここまで意味不明な解釈してる人がどこで何に気がついたのか知らないけど>>879の捨て台詞は必要だったのかね
そして何よりもID:ewuxy2JXdが不憫で仕方がない

894 名前:デフォルトの名無しさん (ワッチョイ a551-dytz) mailto:sage [2023/10/27(金) 17:17:23.69 ID:NmWpMbd70.net]
これからこういう人多く成るんだよ? 高学歴が邪魔するのか何だか知らんけど
プライドだけは変な方向に高い 実務に即さない解決策を講じる 選択肢が間違ってても突っ走る



895 名前:デフォルトの名無しさん (ワッチョイ c1a5-ANn9) mailto:sage [2023/10/27(金) 18:21:28.41 ID:HOnfPTgV0.net]
ChatGPTでしらべたけどよくわからん、みたいな?

896 名前:デフォルトの名無しさん (ワッチョイ 4ec2-WPgu) [2023/10/27(金) 21:02:38.87 ID:4EmYUF1P0.net]
馬鹿が考える解決方法はそんなもの
馬鹿ほど己の間違え方法にこだわる

897 名前:デフォルトの名無しさん mailto:sage [2023/10/28(土) 00:17:29.34 ID:jY1bWC/90.net]
やっている本人しかわからない可能性があることなんていくらでもあるだろう。

898 名前:デフォルトの名無しさん (ワッチョイ 29ca-mA8z) mailto:sage [2023/10/28(土) 06:04:48.34 ID:frVn+RL00.net]
セルに○○と打ち込んだ
これを.Valueで取ったら"○○"
.Textで取ったら" ○○ "になった
その前後のスペースはどこから来たんじゃい?

899 名前:デフォルトの名無しさん mailto:sage [2023/10/28(土) 08:55:39.42 ID:GGD6bBOU0.net]
>>889
再現しない
https://i.imgur.com/6cSraSv.png

900 名前:デフォルトの名無しさん (ワッチョイ 41da-c8RC) mailto:sage [2023/10/28(土) 11:13:55.25 ID:EfsxXat70.net]
>>889
朝から寝ぼけたんじゃね

901 名前:デフォルトの名無しさん (ワッチョイ 29ca-mA8z) mailto:sage [2023/10/28(土) 11:19:53.47 ID:frVn+RL00.net]
だよなあ
20年やっててこんなこと初めてだわ

902 名前:デフォルトの名無しさん mailto:sage [2023/10/28(土) 15:22:33.56 ID:Jo+R6/p70.net]
馬鹿馬鹿って頻繁に書き込んでる人はよほど優秀なんだろうね。
Excelマクロ教室でも開けば良いのに。

903 名前:デフォルトの名無しさん mailto:sage [2023/10/28(土) 20:44:15.82 ID:13jr+kZc0.net]
>>889
セルの書式

904 名前:デフォルトの名無しさん 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には前後に変な空白があったのよ



905 名前:デフォルトの名無しさん mailto:sage [2023/10/29(日) 10:01:38.54 ID:9r8OlfFd0.net]
とりあえずトリムっとけばおk

906 名前:デフォルトの名無しさん mailto:sage [2023/10/29(日) 10:54:39.06 ID:j00+fEWV0.net]
同じやん
https://i.imgur.com/ULDMIE0.png

907 名前:デフォルトの名無しさん mailto:sage [2023/10/29(日) 12:32:43.45 ID:T4jRmqRS0.net]
>>895
問題のセルがA1だったとして、A1の表示形式を"標準"にする。
(一旦別の表示形式にして"標準"にするのがよい)
その状態からF2で一旦入力状態にして、Enterで確定。

これで同じになれば値をどうやって入れたかを調べる。
同じ列の別の行で同じことが起こるか、などいろいろ。

動けばいいんだったら、違うことを前提にして回避策をいれればいい。

908 名前:デフォルトの名無しさん (ワッチョイ 1310-mA8z) mailto:sage [2023/10/30(月) 00:45:58.32 ID:ok297MD20.net]
1セルだけ書式が会計になってたわ
>>891の言うとおりだった
すまん

しかし、なんで会計だと空白が付くのかという新たな疑問が

909 名前:デフォルトの名無しさん (ワッチョイ 51da-c8RC) mailto:sage [2023/10/30(月) 01:23:46.28 ID:B1G43WsB0.net]
>>899
セルや罫線の中で見やすくするためかしら?
桁区切り付き数値にしても、値の後に空白が入る。

910 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 10:34:02.92 ID:upgSC0LO0.net]
Textはあくまで見た目のデータだからね
書式設定のウインドウでも位置がズレることが確認できるはず
何故かはしらん、マイナスとかついたときの位置を固定するためとかやろ

911 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 11:27:34.15 ID:TNhE6eNI0.net]
標準で入ってる書式にもスペース入ってるのあるはず(前はあったが…)
あれみた時、見えない爆弾仕込んでるな…と思った

912 名前:デフォルトの名無しさん [2023/10/30(月) 12:07:45.37 ID:RmOFtzKv0.net]
前の空白は数値で付くのはわかるが後ろの空白は謎

913 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 12:28:45.35 ID:lBYVOk8eM.net]
おそらく非表示の書式文字はアンダーバー+半角スペース1文字

914 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 15:52:04.09 ID:lVrtS1Ry0.net]
会計を設定した場合に隙間が空くのは、次のような表示形式が行われるからです
_ \* #,##0_ ;_ \* -#,##0_ ;_ \* "-"_ ;_ @_
https://www.officepro.jp/exceltips/tips_format/index16.html
基本のキ



915 名前:デフォルトの名無しさん [2023/10/30(月) 16:33:05.01 ID:upgSC0LO0.net]
いやそれが何故かっていう疑問なんじゃないの・・・
(言い換えれば空ける理由、空けなくてもいいんじゃない?っていう疑問だと思う)

答え出るかわからんし闇っぽいから、はい次の方

916 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 16:45:21.41 ID:+WHjaEV1d.net]
闇って言いたいだけだろ

917 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 22:20:23.95 ID:8XyBI/Ix0.net]
書式設定を変えた時、文字の位置が少し変わるのは知ってたけど、まさかそれを内部的には空白で表現してるとは思わなかったよ

918 名前:デフォルトの名無しさん (ワッチョイ 1387-zW/F) [2023/11/01(水) 01:09:45.26 ID:hjpDJv/i0.net]
【質問】
Excelのソートに関しての質問です。

①シートの1列目の文字列に基づいて昇順でソートする。
②シートの1列目の文字列の先頭に「○」や「☆」などの記号がある場合は、それらを無視して2文字目の文字に基づいてソートしたい。

そこで下記コードを実行したところ、
「実行時エラー '1004': 並べ替えの参照が正しくありません。」というエラーが出ます。
どこをどう修正すればよいでしょうか?

919 名前:デフォルトの名無しさん (ワッチョイ 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

920 名前:デフォルトの名無しさん (ワッチョイ 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

921 名前:デフォルトの名無しさん 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

922 名前:デフォルトの名無しさん [2023/11/01(水) 03:13:41.64 ID:H7+Ix2LYd.net]
>>909
ほぼマルチんこ

923 名前:デフォルトの名無しさん (ワッチョイ 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

924 名前:デフォルトの名無しさん (ワッチョイ 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



925 名前:デフォルトの名無しさん mailto:sage [2023/11/02(木) 01:34:57.09 ID:qnTt38vU0.net]
めっちゃ解りやすい。上手ですね

926 名前:デフォルトの名無しさん mailto:sage [2023/11/02(木) 10:47:14.24 ID:I7yCwl+w0.net]
いえいえ

927 名前:デフォルトの名無しさん (ワッチョイ f3ad-2XMF) [2023/11/02(木) 12:10:56.31 ID:T6fjkERA0.net]
swap関数作るともっと簡単に

928 名前:デフォルトの名無しさん [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
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
よろしくお願いします。

929 名前:デフォルトの名無しさん [2023/11/09(木) 22:15:08.21 ID:1dy9z0CQM]
解決しました。
https://note.com/yuu________/n/n48b3530b0fe6

930 名前:デフォルトの名無しさん 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で!=を使う方法てある?
もちろん<>もだめ。

931 名前:デフォルトの名無しさん mailto:sage [2023/11/10(金) 18:46:25.71 ID:W6cpCxu4M.net]
ソレってVBAではなくDriverさんの文法ですよね?

932 名前:デフォルトの名無しさん 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”)

933 名前:デフォルトの名無しさん 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
だとうまくいきました

934 名前:デフォルトの名無しさん mailto:sage [2023/11/11(土) 00:16:15.21 ID:QtW8OgmTd.net]
解決オメだぬ



935 名前:デフォルトの名無しさん (ワッチョイ ff4f-ljUV) [2023/11/12(日) 20:06:42.57 ID:evQWrDt50.net]
デスクトップに保存したhtmlファイルを、Shell ("エッジのパス\msedge.exe" & path, vbNormalFocus)で開いています。
んで、そのhtmlファイルには複数個のリンクがあります。
各リンクを自動的にonClick()でクリックするにはどのようにすればいいでしょうか?

936 名前:デフォルトの名無しさん (ワッチョイ 9f30-i63k) mailto:sage [2023/11/13(月) 01:56:20.78 ID:zqycnYO50.net]
知らんが、onclickするより、
そのhtmlをテキストで読み込んで、
アドレス調べて直接開いた方がはやい

937 名前:デフォルトの名無しさん [2023/11/13(月) 07:48:09.28 ID:qmUd3R410.net]
>>926
ウイルスみたいなことは止めてね

938 名前:デフォルトの名無しさん mailto:sage [2023/11/13(月) 09:56:28.31 ID:bmjie8/E0.net]
Tiktok LiteでPayPayやAmazonギフトなどに交換可能な4000円分のポイントをプレゼント中!
※既存Tiktokユーザーの方はTiktokアプリからログアウトしてアンインストールすればできる可能性があります。

1.SIMの入ったスマホ・タブレットを用意する
2.以下のTiktok Liteのサイトからアプリをダウンロード(ダウンロードだけでまだ起動しない)
https://tiktok.com/t/ZSNfGYxDA/
3.ダウンロード完了後、もう一度上記アドレスのリンクからアプリへ
4.アプリ内でTiktokで使用してない電話番号かメールアドレスから登禄
5.10日間連続のチェックインで合計で4000円分のポイントゲット

ポイントはPayPayやAmazonギフト券に交換できます
家族・友人に紹介したり、通常タスクをこなせば更にポイントを追加でゲットできます

939 名前:デフォルトの名無しさん mailto:sage [2023/11/13(月) 10:34:01.20 ID:M/Z3XSeO0.net]
>>929
これは試す価値あるな

940 名前:デフォルトの名無しさん [2023/11/13(月) 11:23:51.91 ID:MRrvj9HMd.net]
>>926
イベントハンドラ(onClick)を自動的にクリックとか表現してるあたり、なんか基本がわかってなさそうなふいんきだけど、大丈夫?

Edgeに限らず、Shellで開いたアプリをクリックするのは不可能じゃないけどかなり大変
APIを使わないと無理なんだけど、Shell以外の方法で開くのはだめなの?

941 名前:デフォルトの名無しさん mailto:sage [2023/11/13(月) 20:01:33.22 ID:lWzkFiOt0.net]
そういうのは、Ruby, Selenium WebDriver で出来そう

942 名前:デフォルトの名無しさん (ワッチョイ 7f07-1GGZ) mailto:sage [2023/11/14(火) 05:23:36.97 ID:OZUGvDNw0.net]
アクティブブックを保存してBluetoothでファイル転送。の方法をお教えいただきたくお願いいたします。

上記についてはウェブサイトでも見つかりませんでした。今は手段をメール添付にして似た動作で行っていますが、ローカルPCでも自動ファイル転送するケースがでてきたため、Bluetooth転送方法をお願いいたします。

943 名前:デフォルトの名無しさん mailto:sage [2023/11/14(火) 07:04:54.83 ID:iOHrZmQ00.net]
転送したいファイルを右クリックして 送る で BTデバイスを選択するダケと思いましたケドぬ

944 名前:デフォルトの名無しさん mailto:sage [2023/11/14(火) 13:08:23.76 ID:nlIF0ifC0.net]
>>933
BT通信の自動化はかなりめんどい
専門家に開発費を払って作ってもらうレベル
自分でやりたいなら、ここを参考にして
https://www.softech.co.jp/mm_170705_tr.htm



945 名前:デフォルトの名無しさん (ワッチョイ ffbd-f7HJ) mailto:sage [2023/11/16(木) 21:59:20.91 ID:NlRecVbU0.net]
Microsoft 365 Excel バージョン2310 ビルド 16924.20124だけど、
name no
a 1
b 2
c 3
みたいなテーブル1を作ってワークシート上で
XLOOKUP("a",テーブル1[name],テーブル1[no],"")
ってやると当然1が帰るけど、
vbaで
With ThisWorkbook.Sheets(1).ListObjects("テーブル1").DataBodyRange
MsgBox Application.WorksheetFunction.XLookup("a", .Range("テーブル1[name]"), .Range("テーブル1[no]"), "")
End With
みたいにするとaだけ帰ってこない b以降はOK これは何でしょ?

946 名前:デフォルトの名無しさん mailto:sage [2023/11/17(金) 00:30:19.09 ID:82JP36FI0.net]
With ThisWorkbook.Sheets(1).ListObjects("テーブル1").DataBodyRange
MsgBox Application.WorksheetFunction.XLookup("a", .Range("テーブル1[name]A1:A3"), .Range("テーブル1[no]"), "")
End With

こんなカンジで試してみてどーかぬ

947 名前:デフォルトの名無しさん [2023/11/17(金) 05:58:28.92 ID:cP0QxO9W0.net]
>>936
そのコードで本当に動いた? エラーになるけど。
そのWithの指定だとテーブルの中身だけ持ってくるから .Range("テーブル1[name]") で参照出来ないと思う。

948 名前:デフォルトの名無しさん (スッップ Sd9f-ze79) mailto:sage [2023/11/17(金) 10:29:57.13 ID:n+3yrbg2d.net]
>>937
ありがと あとで試してみる
>>938
動いてるコードそのまま貼ったつもりなんだけど…動かなかったらすまん

949 名前:デフォルトの名無しさん (ワッチョイ ff02-czGt) mailto:sage [2023/11/17(金) 12:35:58.54 ID:pS9NmqjV0.net]
商社から上司経由でシステムの売り込みとかよく来るしpython勉強すればもっと広い範囲で出来たりするんだろうけど
vbaで何とかしようと考えちゃう悪癖が無くならない
42歳だけど化石人種のまま定年になるんかなぁ

950 名前:デフォルトの名無しさん mailto:sage [2023/11/17(金) 17:47:10.30 ID:82JP36FI0.net]
得意なツールでなんとかするのわ ワルくわネエと思いますケドぬ

951 名前:デフォルトの名無しさん mailto:sage [2023/11/17(金) 17:58:29.35 ID:cgnjVGQxd.net]
ではN88BASICとフロッピーでなんとかします!

952 名前:934 mailto:sage [2023/11/17(金) 20:54:07.11 ID:Z3gLVdXN0.net]
With ThisWorkbook.Sheets(1).ListObjects("テーブル1")
MsgBox Application.WorksheetFunction.XLookup("a", .ListColumns("name").Range, .ListColumns("no").Range, "")
End With

結局これでうまくいった おまえらありがとう

953 名前:デフォルトの名無しさん mailto:sage [2023/11/17(金) 21:14:43.08 ID:82JP36FI0.net]
解決オメだぬ

954 名前:デフォルトの名無しさん mailto:sage [2023/11/18(土) 09:48:39.54 ID:zOT3yXlF0.net]
ChatGPTのcursorとエクセルを連動することって出来ますかね?

cursorで作成したVBAコードをVBEに貼り付けて実行ではなく、
cursor内から直で実行したいです。



955 名前:デフォルトの名無しさん mailto:sage [2023/11/18(土) 11:55:47.75 ID:Qfp+vd6T0.net]
cursor ってpythonなので python でエクセルを呼んでやれば可能と思いますケドぬ

956 名前:デフォルトの名無しさん (ワッチョイ 5d6e-ekUX) mailto:sage [2023/11/18(土) 15:43:14.57 ID:zOT3yXlF0.net]
ありがとうございます。
やっぱり難しいですよね。
そもそもVSCodeとVBAの相性もいまいちなことに気づきました。






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

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

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