!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること
ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
Excel VBA 質問スレ Part76
https://mevius.5ch.net/test/read.cgi/tech/1651339421/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part77
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (TW 0H42-j7SA)
2022/07/17(日) 07:07:35.59ID:tS4zKdphH790デフォルトの名無しさん (ワッチョイ c3cd-vqPj)
2022/10/02(日) 15:47:28.98ID:DdgukWIZ0791デフォルトの名無しさん (ワッチョイ ff3e-z20m)
2022/10/02(日) 20:54:31.26ID:TlawqFoR0 VBAは作業を登録して自動化するくらいで覚えておいた方がいいですよね
792デフォルトの名無しさん (ワッチョイ ffe1-3QPM)
2022/10/03(月) 06:16:19.93ID:S2WAje4f0793デフォルトの名無しさん (ワッチョイ 53a2-zVVQ)
2022/10/03(月) 07:27:24.16ID:4wRZXMmm0 VBEに書いたコードの整列っていうかコードを整えるっていうか自動インデントっていうかそんなショートカットキーがあったと思うけどなんだっけ?
794デフォルトの名無しさん (ワッチョイ 53ce-OAEy)
2022/10/03(月) 17:56:19.40ID:M1bZx+HZ0 タブ
795デフォルトの名無しさん (ワッチョイ ff4f-PeWp)
2022/10/03(月) 20:58:11.99ID:FDmFS1zQ0796デフォルトの名無しさん (ワッチョイ 6f7d-e5cN)
2022/10/04(火) 15:00:55.06ID:pLalriKq0 イベントで質問
余所で作ったエクセルにVBAで改造加えてるんだけど
1マス入力だけするSheetにActiveXのコマンドボタン付けたら
Worksheet_SelectionChange
が発生しなくなった
コマンドボタン押したイベントは拾ってるので
EnableEventsがFalseってわけじゃない(イミディエイトで確認済み)
デザインモードを解除してもWorksheet_SelectionChangeイベントが起きないので
しょうが無いからまた一から作り直したんだが
この現象って頻発するもの?
ググってもOfficeの修復かEnableEventsしか解決策が出てこない
余所で作ったエクセルにVBAで改造加えてるんだけど
1マス入力だけするSheetにActiveXのコマンドボタン付けたら
Worksheet_SelectionChange
が発生しなくなった
コマンドボタン押したイベントは拾ってるので
EnableEventsがFalseってわけじゃない(イミディエイトで確認済み)
デザインモードを解除してもWorksheet_SelectionChangeイベントが起きないので
しょうが無いからまた一から作り直したんだが
この現象って頻発するもの?
ググってもOfficeの修復かEnableEventsしか解決策が出てこない
797デフォルトの名無しさん (スププ Sd1f-Ycj2)
2022/10/04(火) 15:54:59.32ID:TDYI1fTGd >>792
Sub Macro1()
ActiveSheet.Pictures.Insert "C:\Work\Sample1.jpg"
End Sub
これで400KBのpngで試してみたけど
なぜかxlsmファイルのサイズは15KB
何か別の要因とか
Sub Macro1()
ActiveSheet.Pictures.Insert "C:\Work\Sample1.jpg"
End Sub
これで400KBのpngで試してみたけど
なぜかxlsmファイルのサイズは15KB
何か別の要因とか
798デフォルトの名無しさん (ワッチョイ d3da-pIDl)
2022/10/04(火) 19:28:07.31ID:uOFwOuxi0 >>796
そりゃエクセルを改造したら駄目だろ
そりゃエクセルを改造したら駄目だろ
799デフォルトの名無しさん (ワッチョイ 332f-LIzE)
2022/10/04(火) 19:47:41.77ID:o+JurUyd0 >>792
オプションの詳細設定-イメージのサイズと画質 ってどうなってる?
オプションの詳細設定-イメージのサイズと画質 ってどうなってる?
800デフォルトの名無しさん (ワッチョイ 6f66-vqPj)
2022/10/04(火) 21:08:36.46ID:vyetwO+c0 Dim ar(2) As Variant
ar(0) = 1
ar(1) = 2
ar(2) = Split("1,2,3,4,5", ",")
Dim i
For i = 0 To UBound(ar(2))
ar(2)(i) = CLng(ar(2)(i))
Next i
splitで作ったジャグ配列の中身をlong型に変換したいです。
variant変数に一度入ったらもう無理ですか?
一応他の変数に入れる事で型変換には成功するのですが。
余計な変数を二つも用意してstringで作成されたのを一時的なvariant型ノーマル配列に
おさめてmそのあとで本当に使いたい配列のジャグ配列に入れていくというのが
どうも汚い感じで腑におちません。
アドバイスもらえると助かります。
ar(0) = 1
ar(1) = 2
ar(2) = Split("1,2,3,4,5", ",")
Dim i
For i = 0 To UBound(ar(2))
ar(2)(i) = CLng(ar(2)(i))
Next i
splitで作ったジャグ配列の中身をlong型に変換したいです。
variant変数に一度入ったらもう無理ですか?
一応他の変数に入れる事で型変換には成功するのですが。
余計な変数を二つも用意してstringで作成されたのを一時的なvariant型ノーマル配列に
おさめてmそのあとで本当に使いたい配列のジャグ配列に入れていくというのが
どうも汚い感じで腑におちません。
アドバイスもらえると助かります。
801デフォルトの名無しさん (ワッチョイ ff4f-PeWp)
2022/10/04(火) 22:26:54.77ID:cce3s7590802800 (ワッチョイ 6f66-vqPj)
2022/10/04(火) 22:43:48.69ID:vyetwO+c0803デフォルトの名無しさん (ワッチョイ 332f-LIzE)
2022/10/04(火) 23:35:06.72ID:o+JurUyd0 >splitで作ったジャグ配列
>動的な配列の中にジャグ配列
ジャグ配列って用語の使い方が微妙に間違ってる気がするが...
そもそも文字列を分割して配列作ってるんだから文字列の配列になるのが当然で
Variant上等でやるなら、それを使う側がVariantで受ければいいだけでは?
まあ俺ならどうしても文字列をSplitしてLongにしたいなら
Longの配列返すSplitのラップ関数作るけど
>動的な配列の中にジャグ配列
ジャグ配列って用語の使い方が微妙に間違ってる気がするが...
そもそも文字列を分割して配列作ってるんだから文字列の配列になるのが当然で
Variant上等でやるなら、それを使う側がVariantで受ければいいだけでは?
まあ俺ならどうしても文字列をSplitしてLongにしたいなら
Longの配列返すSplitのラップ関数作るけど
804デフォルトの名無しさん (ワッチョイ e301-vqPj)
2022/10/05(水) 04:48:52.00ID:b9GTOuH90 sqliteで作ったジャグ配列。
805デフォルトの名無しさん (アウアウウー Sa27-3QPM)
2022/10/05(水) 07:10:06.74ID:8YZU4Hq7a >>797
それでいくとうまくいくんだけどね、
通常のPictures.Insertだとリンク貼付けなのよ。他人に送付したら見れない。
だから一旦クリップボード経由でPaste使ってやってるんだがそれだと容量がヤバくなる。
それでいくとうまくいくんだけどね、
通常のPictures.Insertだとリンク貼付けなのよ。他人に送付したら見れない。
だから一旦クリップボード経由でPaste使ってやってるんだがそれだと容量がヤバくなる。
806デフォルトの名無しさん (ワッチョイ ff4f-PeWp)
2022/10/05(水) 08:07:32.65ID:hw4y4dFR0 そもそも何でもかんでも配列で処理しようとするのがちょっとねぇ。
例えば列に当たる要素毎に違う型を使いたいなら
ちょっと仕組みは大きくなるけどADODBのRecordsetを使うことや
1行の列データ単位の値を格納するクラスを作ってそれを行単位としてディクショナリやコレクションに追加して行くことも検討することを視野に入れると
結局後で読みやすく汎用性の高いロジックが組めたりする。
処理速度優先なら配列一択だからそのときのシュチュエーションに合わせて使い分けだね。
例えば列に当たる要素毎に違う型を使いたいなら
ちょっと仕組みは大きくなるけどADODBのRecordsetを使うことや
1行の列データ単位の値を格納するクラスを作ってそれを行単位としてディクショナリやコレクションに追加して行くことも検討することを視野に入れると
結局後で読みやすく汎用性の高いロジックが組めたりする。
処理速度優先なら配列一択だからそのときのシュチュエーションに合わせて使い分けだね。
807デフォルトの名無しさん (ワッチョイ f35f-F/JR)
2022/10/05(水) 08:19:21.40ID:SsR8S72r0 構造体ではできんの?
ジャグ使う機会無いからなんとも言えんが
ジャグ使う機会無いからなんとも言えんが
808デフォルトの名無しさん (スプッッ Sd1f-ufYE)
2022/10/05(水) 10:50:57.71ID:HrKgxVhUd すぐDBとか持ち出す奴いるけどコスト考えたらそう簡単にDBなんか使わんと思うけどね
普通に配列処理用の関数のみのモジュールでコード管理すればいいだけと思うわ
普通に配列処理用の関数のみのモジュールでコード管理すればいいだけと思うわ
809デフォルトの名無しさん (スップ Sd1f-rSe5)
2022/10/05(水) 13:20:52.03ID:7KiNZ4t1d >>808
何のコスト?
何のコスト?
810デフォルトの名無しさん (ワッチョイ ffda-qv7/)
2022/10/05(水) 14:41:00.50ID:bxBPBLxH0 やっぱ好きなように作るのが1番ね
811デフォルトの名無しさん (ワッチョイ cf10-HI6Y)
2022/10/05(水) 15:47:13.70ID:DsSYxIFi0 ワークシートがDBみたいなもんだしね
812デフォルトの名無しさん (ラクッペペ MM7f-Aqn+)
2022/10/05(水) 15:53:15.41ID:tZ9pwx2fM 学習コスト
813デフォルトの名無しさん (ワッチョイ ff42-JExP)
2022/10/05(水) 21:19:11.66ID:/BrWnOTx0 コストコ
814デフォルトの名無しさん (ワッチョイ ffda-qv7/)
2022/10/05(水) 23:35:05.88ID:bxBPBLxH0 コスパ良い
815デフォルトの名無しさん (スププ Sd1f-zUcf)
2022/10/06(木) 16:49:22.22ID:wENRazb+d 例えば、誕生石を取得するGetBirthStone関数を作ろうとすれば引数は「日付 as Variant」と「月 as Integer(Long)」のどちらがいいでしょうか?
816デフォルトの名無しさん (ラクッペペ MM7f-lmfq)
2022/10/06(木) 16:54:16.04ID:lmEPcDvIM Dateではあかんのか?
817デフォルトの名無しさん (ブーイモ MM7f-HD9v)
2022/10/06(木) 16:55:37.45ID:1FPDwTBGM そんなもんVLOOKUPで誕生石シートを検索すれば十分
VBAを正しく使うコツはVBAを可能な限り書かないことだよ
VBAを正しく使うコツはVBAを可能な限り書かないことだよ
818デフォルトの名無しさん (スププ Sd1f-zUcf)
2022/10/06(木) 17:19:15.50ID:wENRazb+d >>816
Date型でも大丈夫ですか?
一応、最初の部分はこう書いてみました
If Not IsDate(日付) then
GetBirthStone = CVErr(xlErrValue)
Exit Function
Date型でも大丈夫ですか?
一応、最初の部分はこう書いてみました
If Not IsDate(日付) then
GetBirthStone = CVErr(xlErrValue)
Exit Function
819デフォルトの名無しさん (ワッチョイ 238e-rSe5)
2022/10/06(木) 17:48:34.71ID:KR9VbeXw0820デフォルトの名無しさん (スッップ Sd1f-ufYE)
2022/10/06(木) 19:10:02.45ID:YSVEcn1gd >>815
元のデータが何によるかで違うけど「月 as Integer(Long)」でいいのではと思う
仮に元のデータが日付でもGetBirthStone(Month(日付))で済む
月を渡すようなケースがありえないなら日付を渡して関数内でMonthを使うでもいい
元のデータが何によるかで違うけど「月 as Integer(Long)」でいいのではと思う
仮に元のデータが日付でもGetBirthStone(Month(日付))で済む
月を渡すようなケースがありえないなら日付を渡して関数内でMonthを使うでもいい
821デフォルトの名無しさん (ワッチョイ 435f-pIDl)
2022/10/06(木) 19:39:53.74ID:sUmENiPE0 月だけでいい
特定の日付に依らずある月の誕生石を知りたい場合に
意味のないDate値用意しなきゃいけなくなるから可読性が落ちる
>>817
誕生石みたいに改訂されたことがニュースになるくらい固定されてる内容ならコードにベタ打ちでいいと思う
祝日みたいに毎年変動するものとか、組合せの数が多すぎる要素ならシート管理の方が扱いやすいと思うけど
特定の日付に依らずある月の誕生石を知りたい場合に
意味のないDate値用意しなきゃいけなくなるから可読性が落ちる
>>817
誕生石みたいに改訂されたことがニュースになるくらい固定されてる内容ならコードにベタ打ちでいいと思う
祝日みたいに毎年変動するものとか、組合せの数が多すぎる要素ならシート管理の方が扱いやすいと思うけど
822デフォルトの名無しさん (ワッチョイ d3da-pIDl)
2022/10/06(木) 19:46:56.80ID:bktrTE7O0 >>815
その程度のこと自分で決められんようでは時間かかってしょうがないだろ
その程度のこと自分で決められんようでは時間かかってしょうがないだろ
823デフォルトの名無しさん (ワッチョイ 6f8c-SQdC)
2022/10/06(木) 19:49:13.70ID:gOgPUvPm0 >>815
Function getBirthStone(日付 As Date)
Application.Volatile True
getBirthStone = WorksheetFunction.Choose(Month(日付), "ガーネット", "アメシスト", "アクアマリン", "ダイヤモンド", "エメラルド", "ムーンストーン、真珠", "ルビー", "ペリドット", "サファイア", "オパール、トルマリン", "トパーズ", "トルコ石、タンザナイト")
End Function
こんなかんじ?
Function getBirthStone(日付 As Date)
Application.Volatile True
getBirthStone = WorksheetFunction.Choose(Month(日付), "ガーネット", "アメシスト", "アクアマリン", "ダイヤモンド", "エメラルド", "ムーンストーン、真珠", "ルビー", "ペリドット", "サファイア", "オパール、トルマリン", "トパーズ", "トルコ石、タンザナイト")
End Function
こんなかんじ?
824デフォルトの名無しさん (スププ Sd1f-zUcf)
2022/10/06(木) 22:32:10.00ID:wENRazb+d >>823
ありがとうございます。
ありがとうございます。
825デフォルトの名無しさん (ワッチョイ ff01-d1zO)
2022/10/06(木) 22:47:25.99ID:HCQdlFdq0 >>823
わざわざワークシート関数を呼ばなくてもVBAにもChoose関数あるよ
https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/choose-function
わざわざワークシート関数を呼ばなくてもVBAにもChoose関数あるよ
https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/choose-function
826デフォルトの名無しさん (ワッチョイ 6f8c-SQdC)
2022/10/06(木) 23:06:53.10ID:gOgPUvPm0 ほんとだw てへ
827800 (ワッチョイ 0666-Phf8)
2022/10/09(日) 17:09:18.30ID:Kilq6kjS0828デフォルトの名無しさん (ワッチョイ 6b79-Ir1l)
2022/10/10(月) 21:48:05.32ID:P58+Ol8v0 >誕生石みたいに改訂されたことがニュースになるくらい固定されてる内容ならコードにベタ打ちでいいと思う
>>823を見ての通りこの手は表記ゆれが問題になる事が多いから
可能な限り外部データにした方がいい
>>823を見ての通りこの手は表記ゆれが問題になる事が多いから
可能な限り外部データにした方がいい
829デフォルトの名無しさん (ワッチョイ 07a2-w8U7)
2022/10/11(火) 13:53:54.44ID:uAPvvwer0 インプットボックスで入力される値が数字かどうか判断するコードってどう書けばいい?
830デフォルトの名無しさん (スッップ Sdea-zauZ)
2022/10/11(火) 14:15:03.61ID:fEDU7G4fd ・符号(+-)を許すか
・ドット(小数点)を許すか
・カンマ(桁区切り)
を踏まえて文字の妥当性チェックすればいいんじゃないの
・ドット(小数点)を許すか
・カンマ(桁区切り)
を踏まえて文字の妥当性チェックすればいいんじゃないの
831デフォルトの名無しさん (スッップ Sdea-zauZ)
2022/10/11(火) 14:17:40.55ID:fEDU7G4fd あと自分はWorksheetFunction使うの好きじゃないけど
WorksheetFunction.IsNumber
でもいいかもね
WorksheetFunction.IsNumber
でもいいかもね
832デフォルトの名無しさん (ワッチョイ 07ce-kEV8)
2022/10/11(火) 14:26:37.29ID:H84z/pNR0 全角は?漢数字は?ローマ数字は?欧米式の桁区切りは?
入力検査は考え始めるとキリがない分野の一つだぜ
入力検査は考え始めるとキリがない分野の一つだぜ
833デフォルトの名無しさん (ワッチョイ ca4f-R5DV)
2022/10/11(火) 15:13:10.17ID:DoWcBI1l0 >>829
IsNumericじゃダメなの?
IsNumericじゃダメなの?
834デフォルトの名無しさん (ワッチョイ 07a2-w8U7)
2022/10/11(火) 17:02:04.45ID:uAPvvwer0835デフォルトの名無しさん (ワッチョイ ca4f-R5DV)
2022/10/11(火) 18:13:13.59ID:DoWcBI1l0 >>834
語弊があるといけないから言っておくと、
IsNumericはあくまで数値として扱える値(数値に変換出来る値)かどうかを判定するよ。
だからString型でも”123”みたいのはTrueを返すからそこは注意してね。
語弊があるといけないから言っておくと、
IsNumericはあくまで数値として扱える値(数値に変換出来る値)かどうかを判定するよ。
だからString型でも”123”みたいのはTrueを返すからそこは注意してね。
836デフォルトの名無しさん (ワッチョイ ff2f-SUfT)
2022/10/11(火) 20:16:52.08ID:hb9m45MO0 考慮点はまだあるぞ
IsNumericって
"\3"とか"3e3"とか"&habc"とかもTrueだぜ
IsNumericって
"\3"とか"3e3"とか"&habc"とかもTrueだぜ
837デフォルトの名無しさん (スププ Sdea-h8KF)
2022/10/12(水) 08:33:18.55ID:FAaW2+wFd じゃ足し算する関数を別に作ってノーエラーで戻ってきたら数値
Sub Main()
'全角数字も数字と見なす
If Suujikana(StrConv(InputBox("入力せぇ"), vbNarrow)) Then
MsgBox "数字だよ"
Else
MsgBox "数字じゃないよ"
End If
End Sub
Function Suujikana(moji As Long) As Boolean
On Error GoTo er
moji = moji + moji
Suujikana = True
Exit Function
er:
Suujikana = False
End Function
Sub Main()
'全角数字も数字と見なす
If Suujikana(StrConv(InputBox("入力せぇ"), vbNarrow)) Then
MsgBox "数字だよ"
Else
MsgBox "数字じゃないよ"
End If
End Sub
Function Suujikana(moji As Long) As Boolean
On Error GoTo er
moji = moji + moji
Suujikana = True
Exit Function
er:
Suujikana = False
End Function
838デフォルトの名無しさん (スププ Sdea-h8KF)
2022/10/12(水) 08:35:48.26ID:FAaW2+wFd あ、これじゃだめかえらーでるあ
839デフォルトの名無しさん (スププ Sdea-h8KF)
2022/10/12(水) 08:38:00.09ID:FAaW2+wFd このやろ、variantにしたら+で文字列つくりやがって
こんのやろぉ
こんのやろぉ
840デフォルトの名無しさん (スププ Sdea-h8KF)
2022/10/12(水) 08:39:59.19ID:FAaW2+wFd これでいい?らめ?
Sub Main()
'全角数字も数字と見なす
If Suujikana(StrConv(InputBox("入力せぇ"), vbNarrow)) Then
MsgBox "数字だよ"
Else
MsgBox "数字じゃないよ"
End If
End Sub
Function Suujikana(moji As Variant) As Boolean
On Error GoTo er
moji = moji * moji
Suujikana = True
Exit Function
er:
Suujikana = False
End Function
Sub Main()
'全角数字も数字と見なす
If Suujikana(StrConv(InputBox("入力せぇ"), vbNarrow)) Then
MsgBox "数字だよ"
Else
MsgBox "数字じゃないよ"
End If
End Sub
Function Suujikana(moji As Variant) As Boolean
On Error GoTo er
moji = moji * moji
Suujikana = True
Exit Function
er:
Suujikana = False
End Function
841デフォルトの名無しさん (ワッチョイ ca4f-R5DV)
2022/10/12(水) 09:33:08.65ID:JFXNmWRt0842デフォルトの名無しさん (ブーイモ MM76-5xmO)
2022/10/12(水) 09:45:17.75ID:05zETGAlM >>840
自分も同じこと考えたけど型の制約が緩いと面倒くさそうなので思考を放棄した、よく頑張ったな
自分も同じこと考えたけど型の制約が緩いと面倒くさそうなので思考を放棄した、よく頑張ったな
843デフォルトの名無しさん (ブーイモ MM76-5xmO)
2022/10/12(水) 10:05:45.44ID:05zETGAlM そういえば昔型はあるのとないのではどっちが良いのかって記事を見たことあるな
結局型がないと論理エラーが出ないように型をちゃんと理解する必要があるって書いてた
結局型がないと論理エラーが出ないように型をちゃんと理解する必要があるって書いてた
844デフォルトの名無しさん (ワッチョイ 1be5-EVUD)
2022/10/12(水) 10:15:23.77ID:FnwlmZOz0 kgとkmは単純に足し算しても意味ないからな
845デフォルトの名無しさん (ワッチョイ 07a2-w8U7)
2022/10/13(木) 04:03:11.23ID:j3UF+2500 別にVBA使わなくてもワークシート関数でできるじゃんって意見どう思う?
846デフォルトの名無しさん (アウアウウー Sa2f-UxA0)
2022/10/13(木) 04:08:37.62ID:QthptHxba やりたいようにやれ
847デフォルトの名無しさん (ワッチョイ ca01-52T8)
2022/10/13(木) 05:43:31.20ID:l6HSpiwg0 >>845
内容によるけどまあワークシート関数でできるならその方がいいだろうな
内容によるけどまあワークシート関数でできるならその方がいいだろうな
848デフォルトの名無しさん (ワッチョイ 03ba-1XYb)
2022/10/13(木) 06:51:28.60ID:R3JkkIAh0 A1に入力されているものが消えたらB1以降の入力セルデータが右から左に自動で繰り上がってくるようにしたいのですがこれで大丈夫ですか?
これをA20くらいまで適用したいんですけど教えて貰えませんか...?
Private Sub Worksheet_Change(ByVal
Target As Range)
If Target.Address = Range("A1").Address
And IsEmpty(Target) Then
Application.EnableEvents = False
lastrow = Cells (Rows.Count,
"A").End(xIUp).Row
Range("B1:F1"&lastrow).Copy
Range("A1").PasteSpecial xIPasteValues
Range ("A"&lastrow).ClearContents
Application.EnableEvents = True
End If
End Sub
これをA20くらいまで適用したいんですけど教えて貰えませんか...?
Private Sub Worksheet_Change(ByVal
Target As Range)
If Target.Address = Range("A1").Address
And IsEmpty(Target) Then
Application.EnableEvents = False
lastrow = Cells (Rows.Count,
"A").End(xIUp).Row
Range("B1:F1"&lastrow).Copy
Range("A1").PasteSpecial xIPasteValues
Range ("A"&lastrow).ClearContents
Application.EnableEvents = True
End If
End Sub
849デフォルトの名無しさん (ワッチョイ 67da-kHT+)
2022/10/13(木) 11:53:03.67ID:Ue05WQwm0 キーボード操作でマクロ作って呼べばいいんじゃね
850デフォルトの名無しさん (オッペケ Sr03-REPx)
2022/10/13(木) 13:03:11.83ID:8suwpN2kr "B1:F"&lastrow
下から4行目は何の処理かな
g列以降にデータがないなら、a列削除でもいけそう
下から4行目は何の処理かな
g列以降にデータがないなら、a列削除でもいけそう
851デフォルトの名無しさん (ワッチョイ c68c-PvL/)
2022/10/13(木) 13:57:54.49ID:UFLyO0SD0 xIUp >> xlUp >> xlLeft
xIPaste >> xlPaste
excel だから xl だよ
本から手入力したのかな
xIPaste >> xlPaste
excel だから xl だよ
本から手入力したのかな
852デフォルトの名無しさん (ワッチョイ 0614-3fXN)
2022/10/13(木) 15:04:44.40ID:xeSsgHCJ0 文字列にしてTrimして
右から一文字づつAscでコード調べて数字判別してる
右から一文字づつAscでコード調べて数字判別してる
853デフォルトの名無しさん (ワッチョイ 4ada-HRMU)
2022/10/13(木) 18:35:01.73ID:ya6JFJPp0854デフォルトの名無しさん (ワッチョイ 7bac-lNao)
2022/10/13(木) 19:55:20.65ID:oYcLbXFh0 ワークシート関数も便利なものは便利で、
パフォーマンスについてVBAより良い場合があるものもあった記憶がある
まあ使い分けだな
パフォーマンスについてVBAより良い場合があるものもあった記憶がある
まあ使い分けだな
855デフォルトの名無しさん (ワッチョイ ca01-52T8)
2022/10/13(木) 20:16:02.23ID:l6HSpiwg0 あたりまえだかパフォーマンスはワークシート関数の方が高いよ
そもそもマルチスレッドで動くし
そもそもマルチスレッドで動くし
856デフォルトの名無しさん (ワッチョイ 4a7c-5xmO)
2022/10/13(木) 21:52:09.43ID:h4dbAy9A0 問題はたくさんのセルに関数を入れまくると超遅くなることだ
857デフォルトの名無しさん (ワッチョイ 03cd-kHT+)
2022/10/13(木) 22:26:40.06ID:QRzYIXmy0858デフォルトの名無しさん (ワッチョイ ca01-52T8)
2022/10/13(木) 22:36:14.16ID:l6HSpiwg0 >>856
それVBAでやったらそのセルの分ループで回すことになるからますます遅くなるわけで...
それVBAでやったらそのセルの分ループで回すことになるからますます遅くなるわけで...
859デフォルトの名無しさん (ワッチョイ def2-/WJo)
2022/10/13(木) 23:31:54.00ID:bK0Z5PO+0 カスタム関数は使い捨て
860デフォルトの名無しさん (アウアウウー Sa2f-UxA0)
2022/10/14(金) 02:09:11.91ID:CZenHna/a ワークシート関数は自動計算で実行する
マクロ(vba)はイベントで実行する
マクロ(vba)はイベントで実行する
861デフォルトの名無しさん (ワッチョイ dee3-UxA0)
2022/10/14(金) 12:43:43.74ID:Ad8SzhkB0 >>845
ワークシート関数で済むならそれに越したことはない
複雑になりすぎてVBA使うのと変わらんレベルになるくらいなら、状況次第でVBA使うこともある
よく検討してみてExcel仲介する必要ないならVBSなんかも視野に入ってくる
他のより良い手段があるならそっちにする
ワークシート関数で済むならそれに越したことはない
複雑になりすぎてVBA使うのと変わらんレベルになるくらいなら、状況次第でVBA使うこともある
よく検討してみてExcel仲介する必要ないならVBSなんかも視野に入ってくる
他のより良い手段があるならそっちにする
862デフォルトの名無しさん (ワッチョイ 4a42-yNJY)
2022/10/14(金) 13:06:50.25ID:fje2pDJC0 ケースバイケースという当たり前の結論
だがそれが大事
だがそれが大事
863デフォルトの名無しさん (ワッチョイ 9f4f-wXMq)
2022/10/15(土) 01:10:39.87ID:zmWNo0nm0 そういや何気にVBAの中でCallByName使うとJavaScript 使えるらしいね。
使ったことないけど。
使ったことないけど。
864デフォルトの名無しさん (ワッチョイ ef8c-e5nY)
2022/10/15(土) 01:25:23.69ID:eU4yePu40 >>863
どういうこと? どうやるの?
どういうこと? どうやるの?
865デフォルトの名無しさん (ワッチョイ 2bcd-7iBv)
2022/10/15(土) 07:21:27.16ID:tw/asOzR0 >>863
文字列で言語書いて実行するのってどうも好きじゃないな
そもそも有効な場面ってあるんだろうか
http://bougyuusonnin.seesaa.net/article/191171013.html
>>864
調べなよ・・・
文字列で言語書いて実行するのってどうも好きじゃないな
そもそも有効な場面ってあるんだろうか
http://bougyuusonnin.seesaa.net/article/191171013.html
>>864
調べなよ・・・
866デフォルトの名無しさん (ワッチョイ 9f4f-wXMq)
2022/10/15(土) 09:05:24.46ID:zmWNo0nm0 >>865
さあ?
メソッドチェーンが使えるくらい?
まぁ無理して使うもんでもないような。
現にJavascript知っててもVBAに混ぜて
使うような状況なんてなったことないし、
大体記述がめんどいし。
さあ?
メソッドチェーンが使えるくらい?
まぁ無理して使うもんでもないような。
現にJavascript知っててもVBAに混ぜて
使うような状況なんてなったことないし、
大体記述がめんどいし。
867デフォルトの名無しさん (ワッチョイ 2bcd-7iBv)
2022/10/15(土) 09:07:30.39ID:tw/asOzR0868デフォルトの名無しさん (ワッチョイ 0b79-BCAW)
2022/10/16(日) 03:31:09.39ID:IoSf1xr/0 メリットはネイティブの手段でJSONがパースできるようになる事なんだけどVBAで必要になることはほとんどないか
ちなみに似たような方法でHtmlFileからIEのjavascriptを呼ぶ方法もある
ちなみに似たような方法でHtmlFileからIEのjavascriptを呼ぶ方法もある
869デフォルトの名無しさん (ワッチョイ 9f01-QrOW)
2022/10/16(日) 05:54:19.77ID:zEVEZIxw0 ネイティブ?
870デフォルトの名無しさん (ワッチョイ 9f7c-z8YJ)
2022/10/16(日) 06:00:43.85ID:q8mBJvHk0 予め言語側で用意されてるってことじゃない
871デフォルトの名無しさん (ブーイモ MMbf-U6r5)
2022/10/16(日) 06:58:42.73ID:4eBUdjNxM 正規表現をRegExpオブジェクトで利用することはネイティブですか?
872デフォルトの名無しさん (ワッチョイ 1f74-ZEg/)
2022/10/16(日) 08:27:49.05ID:6FfxZTeW0 正規表現をRegExpオブジェクトで利用したらハゲますよ
873デフォルトの名無しさん (ワッチョイ 5bda-7iBv)
2022/10/16(日) 23:46:46.75ID:n3hO69PQ0 性器のことしか考えてないから禿げるんじゃね
874デフォルトの名無しさん (オイコラミネオ MM8f-MSw4)
2022/10/17(月) 02:28:59.55ID:Foj5GBltM 正規表現はexcelapiを使うのが楽
875デフォルトの名無しさん (オッペケ Sr0f-v82n)
2022/10/17(月) 17:47:22.14ID:LwSzkOCXr すみません、質問させてください
range内の空白セルを除いた部分を一気に配列に入れる方法ってありますか?
例えばA1、B2、A3、B3に1が入っていて、Range(Cells(1,1) ,Cells(2,2))を選んでいる状態で配列ArrにArr(1,1)=1、Arr(1,2)=1のみを入れる。ということです
「Range(Cells(1,1) ,Cells(2,2))を選んでいる状態」というのはFunctionで関数を作ったときにこの範囲を選んでいるという意味です
CurrentRegionを使ってもA2、B2の空白まで配列に入ってきてしまって困ってます
range内の空白セルを除いた部分を一気に配列に入れる方法ってありますか?
例えばA1、B2、A3、B3に1が入っていて、Range(Cells(1,1) ,Cells(2,2))を選んでいる状態で配列ArrにArr(1,1)=1、Arr(1,2)=1のみを入れる。ということです
「Range(Cells(1,1) ,Cells(2,2))を選んでいる状態」というのはFunctionで関数を作ったときにこの範囲を選んでいるという意味です
CurrentRegionを使ってもA2、B2の空白まで配列に入ってきてしまって困ってます
876デフォルトの名無しさん (ラクッペペ MM7f-g1uO)
2022/10/17(月) 17:53:55.90ID:c98RAUt6M selectionでforeach回せばできる気がするけどな
877デフォルトの名無しさん (ラクッペペ MM7f-g1uO)
2022/10/17(月) 18:05:29.40ID:PbBQX3S8M 一気にやるなら判定文をスピルで一気に適用するか
878デフォルトの名無しさん (オッペケ Sr0f-v82n)
2022/10/17(月) 18:22:32.67ID:KXCnFpZrr すみません、先程の質問の意図はvba 100本ノックの以下の問題を解いていましたhttps://excel-ubara.com/vba100/VBA100_062.html
最初に範囲内を配列にすべて入れてdictionaryで出す方法を考えたんですけど、範囲のところがA1:C5とかならいいのですが、A:Cだと、すべての行まで配列に入ってしまって、それの行すべて処理するようになってしまったので、数字が範囲内の最終行までを配列に入れることができれば処理速度も変わるので、そういう方法があればという質問でした
最初に範囲内を配列にすべて入れてdictionaryで出す方法を考えたんですけど、範囲のところがA1:C5とかならいいのですが、A:Cだと、すべての行まで配列に入ってしまって、それの行すべて処理するようになってしまったので、数字が範囲内の最終行までを配列に入れることができれば処理速度も変わるので、そういう方法があればという質問でした
879デフォルトの名無しさん (アウアウクー MM0f-KS7Z)
2022/10/17(月) 18:56:02.19ID:eqEJLsQnM 答えも解説も書いてあるんだからそれ見ろよ
880デフォルトの名無しさん (ワッチョイ bb5f-L4ib)
2022/10/17(月) 20:25:02.38ID:sP2+Ci5U0 >>874
へーそんなのあるのか
へーそんなのあるのか
881デフォルトの名無しさん (ワッチョイ 7b54-HPGf)
2022/10/17(月) 21:15:18.56ID:8otnrSal0 作成依頼です。
G列に空白セルがあった場合、その空白セルの隣のセルに入力されている値をクリアにする。
というコードを作成いただけないでしょうか。
よろしくお願いします。
G列に空白セルがあった場合、その空白セルの隣のセルに入力されている値をクリアにする。
というコードを作成いただけないでしょうか。
よろしくお願いします。
882デフォルトの名無しさん (ワッチョイ 2b63-KS7Z)
2022/10/17(月) 22:12:03.14ID:ISXu5HOG0 いやです
883デフォルトの名無しさん (ワッチョイ 4b8e-kCmy)
2022/10/17(月) 22:18:07.47ID:+NOpXqIT0 待て、これは孔明の罠だ
884デフォルトの名無しさん (ワッチョイ 9f42-M5DG)
2022/10/17(月) 22:23:49.67ID:AIOop8Dz0 F、G、H列を無条件で消せばいいのね
885デフォルトの名無しさん (ワッチョイ ef8c-e5nY)
2022/10/17(月) 22:24:49.52ID:tLF3dHHy0 隣とはどっちだ
あまりにも指示が不明瞭でバカが書いたとしか思えない文章
スルーで決定
あまりにも指示が不明瞭でバカが書いたとしか思えない文章
スルーで決定
886デフォルトの名無しさん (ワッチョイ 9f4f-wXMq)
2022/10/17(月) 22:28:51.88ID:dYe0p6CB0 >>881
マジレスするとここは質問スレであり
作成要請スレではありません。
作る方法等を聞けば教えてくれる人もいるかも知れませんが、作ってくれと丸投げにした場合、
その見返りを要求されるか一蹴されるかして終わるのが関の山です。
自分でそう言った趣旨のスレを探すか立てるかした方が賢明と思われます。
マジレスするとここは質問スレであり
作成要請スレではありません。
作る方法等を聞けば教えてくれる人もいるかも知れませんが、作ってくれと丸投げにした場合、
その見返りを要求されるか一蹴されるかして終わるのが関の山です。
自分でそう言った趣旨のスレを探すか立てるかした方が賢明と思われます。
887デフォルトの名無しさん (US 0Hbf-459s)
2022/10/17(月) 22:46:52.95ID:/WpPTN/JH888デフォルトの名無しさん (アウアウウー Sacf-23WP)
2022/10/17(月) 23:47:38.34ID:yX88xE7Ya >>884
消す方だったか、"クリア"って書くのかと思ったぜ
消す方だったか、"クリア"って書くのかと思ったぜ
889デフォルトの名無しさん (ワッチョイ 4b8e-kCmy)
2022/10/17(月) 23:49:43.92ID:+NOpXqIT0890デフォルトの名無しさん (アウアウウー Sacf-ZPbQ)
2022/10/18(火) 05:15:15.98ID:s0SrGZFEa 4000件くらいのデータのExcelファイルから
A. 特定の数十件の社員データを除いたデータファイル
B. Aで除いた数十件の社員のデータのみのファイル
を作成しなければなりません
元のファイルを2つFileCopyして
・Aから対象社員のデータをUINONメソッドでRangeに格納して一括削除
・Bから非対象社員のデータをUINONメソッドでRangeに格納して一括削除
もしくは
・Aから対象社員データをAutoFillterしてBに貼り付け
→Aから対象社員データ削除
を考えてますがどちらが速いでしょう
元の書式を活かしたExcelファイルが必要なので
CSV出力やExcelファイルにデータのみ転記することはできません
A. 特定の数十件の社員データを除いたデータファイル
B. Aで除いた数十件の社員のデータのみのファイル
を作成しなければなりません
元のファイルを2つFileCopyして
・Aから対象社員のデータをUINONメソッドでRangeに格納して一括削除
・Bから非対象社員のデータをUINONメソッドでRangeに格納して一括削除
もしくは
・Aから対象社員データをAutoFillterしてBに貼り付け
→Aから対象社員データ削除
を考えてますがどちらが速いでしょう
元の書式を活かしたExcelファイルが必要なので
CSV出力やExcelファイルにデータのみ転記することはできません
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★3 [蚤の市★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「クマはなるべく山に返す努力を」「クマと戦争は間違っている」動物保護活動家の主張 棲み分けと学習放獣でクマ被害なくなるのか?★7 [ぐれ★]
- とらせん IPあり
- 【DAZN】ワールドカップ欧州予選総合 ★5
- 巨専】
- こいせん 全レス転載禁止
- 侍ジャパンシリーズ2025「日本vs韓国」その12
- 【J SPORTS】FIFA U-17ワールドカップ ★10
- 高市「次回選挙争点は台湾有事よ!!」自民立憲公明維新国民「やめろーー!!」これが現実になりそうな件 [469534301]
- 経済保安相「気に入らないことがあれば経済的威圧をする国への依存はリスク」日本さん遂にアメリカと断交へ!!! [472617201]
- 自閉症が「んなっしょい」と連呼するお🏡
- 「世の中、バカが多くて疲れません?」👉1991年日本人大発狂 [543236886]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 来年は卵が1パック400円以上になるらしい
