探検
Excel VBA 質問スレ Part65
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 3bda-drwQ)
2020/03/17(火) 16:27:20.88ID:hh8LiIgR0ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part64
https://mevius.5ch.net/test/read.cgi/tech/1575297834/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
772デフォルトの名無しさん (ワッチョイ dfea-9YRN)
2020/05/02(土) 15:03:21.75ID:HkfyT0U40773デフォルトの名無しさん (ワッチョイ dfea-9YRN)
2020/05/02(土) 15:06:50.76ID:HkfyT0U40 >>771
そそ。D&Dでパワポにノートを読み上げるマクロをぶっ込めるvbs作ったんだけど、よく考えるとちょつと怖くなった。
そそ。D&Dでパワポにノートを読み上げるマクロをぶっ込めるvbs作ったんだけど、よく考えるとちょつと怖くなった。
774デフォルトの名無しさん (ワッチョイ a7ad-ur4w)
2020/05/02(土) 15:24:24.68ID:Z+zF8E0a0775デフォルトの名無しさん (ワッチョイ bf2f-WRor)
2020/05/02(土) 15:37:35.14ID:lt4kIJ5o0776デフォルトの名無しさん (アークセー Sx5b-apiA)
2020/05/02(土) 15:54:13.09ID:WuBkO5o5x >>762
テーブルとしての構造化参照が不要なら別にテーブルにしなくても「空のクエリ」でリテラル定数を返す接続クエリを作るなり、パラメータを登録するなりすれば良い
詳細エディタに
= "テーブル名"
って一行書けば"テーブル名"を返す定数クエリが出来上がる
あと、Letの前行に
(path as text, table_name as text, column_name as text)=>
とか追加すれば、path とtable_nameとcolumn_nameという三つのtext型の引数をダイアログ入力でクエリに渡せるようになるので、クエリ式の側をソース=Csv.Document(File.Contents(path))みたいに書けば良い。
どうしてもVBAからPower Queryをいじりたいなら
Workbook.Queries(Index).Formulaでクエリの式が読み書きできるので、Replaceを使うなりして好きにいじったらいいんじゃないの
テーブルとしての構造化参照が不要なら別にテーブルにしなくても「空のクエリ」でリテラル定数を返す接続クエリを作るなり、パラメータを登録するなりすれば良い
詳細エディタに
= "テーブル名"
って一行書けば"テーブル名"を返す定数クエリが出来上がる
あと、Letの前行に
(path as text, table_name as text, column_name as text)=>
とか追加すれば、path とtable_nameとcolumn_nameという三つのtext型の引数をダイアログ入力でクエリに渡せるようになるので、クエリ式の側をソース=Csv.Document(File.Contents(path))みたいに書けば良い。
どうしてもVBAからPower Queryをいじりたいなら
Workbook.Queries(Index).Formulaでクエリの式が読み書きできるので、Replaceを使うなりして好きにいじったらいいんじゃないの
777デフォルトの名無しさん (アウアウカー Sa3b-QanA)
2020/05/02(土) 16:19:14.33ID:be7YjfFea778デフォルトの名無しさん (アウアウカー Sa3b-QanA)
2020/05/02(土) 17:01:28.47ID:be7YjfFea 何度もすみません
アドインを通常のマクロのように、図形などで作ったボタンに割り当てることはできないのでしょうか?
アドインを通常のマクロのように、図形などで作ったボタンに割り当てることはできないのでしょうか?
779デフォルトの名無しさん (ワッチョイ 677f-v3HX)
2020/05/02(土) 19:33:07.66ID:I/r+DzJx0 デバッグ中からリセットをかける際に特定の処理をさせるようなイベントプロシージャって無いでしょうか
780デフォルトの名無しさん (スッップ Sdff-x7Cl)
2020/05/02(土) 21:25:13.04ID:fjHWXn6td781デフォルトの名無しさん (スッップ Sdff-x7Cl)
2020/05/02(土) 21:28:27.20ID:fjHWXn6td >>778
アドインの場合、メインは別のブックになるわけだからアドインのシートとかは表示されないという基本は分かってる?
それが分かっていれば図形等で作ったボタンを配置する場所もないと分かる筈。
普通はメニュー(リボン)に作る。
アドインの場合、メインは別のブックになるわけだからアドインのシートとかは表示されないという基本は分かってる?
それが分かっていれば図形等で作ったボタンを配置する場所もないと分かる筈。
普通はメニュー(リボン)に作る。
782デフォルトの名無しさん (ワッチョイ a78f-h83k)
2020/05/02(土) 22:09:54.71ID:7uDOF2SH0783デフォルトの名無しさん (ワッチョイ 67ac-fZS3)
2020/05/02(土) 22:19:21.49ID:8I2uZvpu0 はあ、そうですか。しらんがな
784デフォルトの名無しさん (ワッチョイ 7fda-ts7H)
2020/05/02(土) 22:37:34.51ID:zUyEitTf0785デフォルトの名無しさん (ワッチョイ 7fda-ts7H)
2020/05/02(土) 22:45:55.01ID:zUyEitTf0 多分、
Readystateコンプしてるのにエラーでるな〜
↓こうしちゃえ
On Error Resume Next
Do
IEにカキコ
Sleep 1000
Loop While なんとか
On Error Goto 0
長くて面倒くせえなぁ〜
関数化しちゃえ
で、オブジェクトを関数に渡して嵌る罠なんだと思う。
Readystateコンプしてるのにエラーでるな〜
↓こうしちゃえ
On Error Resume Next
Do
IEにカキコ
Sleep 1000
Loop While なんとか
On Error Goto 0
長くて面倒くせえなぁ〜
関数化しちゃえ
で、オブジェクトを関数に渡して嵌る罠なんだと思う。
786デフォルトの名無しさん (アメ MM6b-p7s+)
2020/05/02(土) 23:09:24.77ID:FzDABaHmM >>782
それ、IEと関係なく、Excelの更新が原因でvba関係にエラー起きてるやつでは?
ファイル開くときに「エラーがあります、可能な範囲で修正しますか」みたいなアラートがでて、はいを押すとコードが全削除される。
それ、IEと関係なく、Excelの更新が原因でvba関係にエラー起きてるやつでは?
ファイル開くときに「エラーがあります、可能な範囲で修正しますか」みたいなアラートがでて、はいを押すとコードが全削除される。
787デフォルトの名無しさん (ワッチョイ dfb5-EVni)
2020/05/02(土) 23:36:58.40ID:qrZctUhv0 教えてくださいまし。。
画像のように日によって参加人数も競技した数も違うものを
受付した人と競技の範囲の値のみ
隣のシートに貼り付けるようにしたいですが
エクセル関数のエラーや未計算が都合上どうしても残ってしまい残ってうまく行かず…
https://i.imgur.com/Sd2Afas.jpg
https://i.imgur.com/MfnIQSU.jpg
https://i.imgur.com/lEQTEIe.jpg
受付した人の数字が空白になるまでは空白になるまで、競技も空白になるまで
その範囲のみをコピーというか可能でしょうか
画像のように日によって参加人数も競技した数も違うものを
受付した人と競技の範囲の値のみ
隣のシートに貼り付けるようにしたいですが
エクセル関数のエラーや未計算が都合上どうしても残ってしまい残ってうまく行かず…
https://i.imgur.com/Sd2Afas.jpg
https://i.imgur.com/MfnIQSU.jpg
https://i.imgur.com/lEQTEIe.jpg
受付した人の数字が空白になるまでは空白になるまで、競技も空白になるまで
その範囲のみをコピーというか可能でしょうか
788デフォルトの名無しさん (ワッチョイ dfb5-EVni)
2020/05/02(土) 23:39:12.79ID:qrZctUhv0 Sub 貼り付け()
Dim gy As Long
Dim re As Long Dim
Dim Tensu As String
Dim Kekka As String
Sheets(Tensu) = "点数"
Sheets() = "結果シート"
Sheets(Tensu).Select
With Range("C5")
gy = .End(xlDown).Row
If .Offset(1).Value = "" Then
gy = .Row re = .End(xlToRight).Column
If .Offset(, 1).Value = "" Then
re = .Column With .Resize(gy - .Row + 1, re - .Column + 1)
Sheets(Tensu).Select Range("H8").Resize(.Rows.Count, .Columns.Count).Value = .Value
End With End With
End Sub
これで作ってみたのですがやはり関数エラーが
邪魔してエラーになります
行も列も両方を空白までループして貼り付け
むずぃす
Dim gy As Long
Dim re As Long Dim
Dim Tensu As String
Dim Kekka As String
Sheets(Tensu) = "点数"
Sheets() = "結果シート"
Sheets(Tensu).Select
With Range("C5")
gy = .End(xlDown).Row
If .Offset(1).Value = "" Then
gy = .Row re = .End(xlToRight).Column
If .Offset(, 1).Value = "" Then
re = .Column With .Resize(gy - .Row + 1, re - .Column + 1)
Sheets(Tensu).Select Range("H8").Resize(.Rows.Count, .Columns.Count).Value = .Value
End With End With
End Sub
これで作ってみたのですがやはり関数エラーが
邪魔してエラーになります
行も列も両方を空白までループして貼り付け
むずぃす
789デフォルトの名無しさん (ワッチョイ 7fda-ts7H)
2020/05/02(土) 23:46:04.45ID:zUyEitTf0 画像から式を逆算するクイズみたいになっとる。
790デフォルトの名無しさん (ワッチョイ 878f-ts7H)
2020/05/02(土) 23:48:07.49ID:TR3WF5Jt0 人、それをデバッグと呼ぶ
791デフォルトの名無しさん (ワッチョイ 7fda-ts7H)
2020/05/02(土) 23:48:58.13ID:zUyEitTf0 エラーってそっちのエラーかい!
If IsError(セルの値) = False Then の時だけ実行とか。
If IsError(セルの値) = False Then の時だけ実行とか。
792デフォルトの名無しさん (ワッチョイ 7fda-ts7H)
2020/05/02(土) 23:51:07.35ID:zUyEitTf0 それか、ValueじゃなくてTextでエラー回避。
793デフォルトの名無しさん (ワッチョイ c7ce-ts7H)
2020/05/03(日) 00:01:44.09ID:fR4zqWYb0 >>788
全体的にめちゃくちゃで、それじゃ関数エラー以前にまったく動かないはずなんだけど、本当にそれで途中までは動いてるの?
スマホでポチポチ書き写すんじゃなくて、できるだけPCでそのままコピペしてくれない?
全体的にめちゃくちゃで、それじゃ関数エラー以前にまったく動かないはずなんだけど、本当にそれで途中までは動いてるの?
スマホでポチポチ書き写すんじゃなくて、できるだけPCでそのままコピペしてくれない?
794デフォルトの名無しさん (ワッチョイ dfb5-EVni)
2020/05/03(日) 00:26:05.49ID:EGR1WLcw0 >>793
Sub test()
Dim gy As Long, re As Long
With Range("C5") gy = .End(xlDown).Row
If .Offset(1).Value = "" Then gy = .Row
cl = .End(xlToRight).Column
If .Offset(, 1).Value = "" Then re = .Column With .Resize(gy - .Row + 1, re - .Column + 1) Range("AA5").Resize(.Rows.Count, .Columns.Count).Value = .Value
End With
End With
End Sub
元々作これで動いたのを確認しやしたが
無力過ぎて悔しいっす
そもそもエクセル関数の方のエラーが出ないようにif関数で空白の場合はセルも空白にしようかと思ったけどそもそも他部署の管轄
俺の圧倒的力の無さですわこりゃ
Sub test()
Dim gy As Long, re As Long
With Range("C5") gy = .End(xlDown).Row
If .Offset(1).Value = "" Then gy = .Row
cl = .End(xlToRight).Column
If .Offset(, 1).Value = "" Then re = .Column With .Resize(gy - .Row + 1, re - .Column + 1) Range("AA5").Resize(.Rows.Count, .Columns.Count).Value = .Value
End With
End With
End Sub
元々作これで動いたのを確認しやしたが
無力過ぎて悔しいっす
そもそもエクセル関数の方のエラーが出ないようにif関数で空白の場合はセルも空白にしようかと思ったけどそもそも他部署の管轄
俺の圧倒的力の無さですわこりゃ
795デフォルトの名無しさん (ワッチョイ dfb5-EVni)
2020/05/03(日) 00:31:44.93ID:EGR1WLcw0 というか完全に圧倒的勘違いでした
動いたと思っていざ使おうとしたら
他部署からのデータが画像のように
参加してない選手のところにセルにエラーがついてくる仕様なのに気付いて動かなかった
これが正解です
頭おかしくなってますわ
動いたと思っていざ使おうとしたら
他部署からのデータが画像のように
参加してない選手のところにセルにエラーがついてくる仕様なのに気付いて動かなかった
これが正解です
頭おかしくなってますわ
796デフォルトの名無しさん (ワッチョイ c7ce-ts7H)
2020/05/03(日) 00:38:44.40ID:fR4zqWYb0 >>794
ワークシートの数式を消しちゃっていいんなら、エラーの出てるセルを全部空白にするのは簡単
Sub エラー全部消す()
Dim c As Range
For Each c In ActiveSheet.UsedRange
If IsError(c.Value) Then c = ""
Next
End Sub
ワークシートの数式を消しちゃっていいんなら、エラーの出てるセルを全部空白にするのは簡単
Sub エラー全部消す()
Dim c As Range
For Each c In ActiveSheet.UsedRange
If IsError(c.Value) Then c = ""
Next
End Sub
797デフォルトの名無しさん (ワッチョイ c7ce-ts7H)
2020/05/03(日) 01:01:50.07ID:fR4zqWYb0798デフォルトの名無しさん (ワッチョイ c7ce-ts7H)
2020/05/03(日) 01:03:01.84ID:fR4zqWYb0 それとも選手名も必要?
799デフォルトの名無しさん (ワッチョイ dfb5-EVni)
2020/05/03(日) 01:37:52.66ID:EGR1WLcw0800デフォルトの名無しさん (ワッチョイ dfb5-EVni)
2020/05/03(日) 01:46:13.78ID:EGR1WLcw0 受付の行が空白のセルになるまでループしつつ
競技の列が空白になるまでループ??
んん?違うか
GWになのにExcel開いてずっとマクロで悩むとは…とんだステイホームですわ
競技の列が空白になるまでループ??
んん?違うか
GWになのにExcel開いてずっとマクロで悩むとは…とんだステイホームですわ
801デフォルトの名無しさん (ワッチョイ 877c-mIzA)
2020/05/03(日) 01:55:50.90ID:yO9oP2CW0 ここに書かずなぜ動かして試さない…
802デフォルトの名無しさん (ワッチョイ c7ce-ts7H)
2020/05/03(日) 02:10:58.89ID:fR4zqWYb0 >>799
はい、できたよ
Sub 数字だけコピー()
Dim rr As Long
Dim cc As Long
Dim dat As Variant
rr = Cells(Rows.Count, 3).End(xlUp).Row - 4 '高さを求める
cc = Cells(5, Columns.Count).End(xlToLeft).Column - 2 '幅を求める
dat = Range("C5").Resize(rr, cc).Value 'データを変数に入れる
Range("AA5").Resize(rr, cc).Value = dat 'コピーする
End Sub
はい、できたよ
Sub 数字だけコピー()
Dim rr As Long
Dim cc As Long
Dim dat As Variant
rr = Cells(Rows.Count, 3).End(xlUp).Row - 4 '高さを求める
cc = Cells(5, Columns.Count).End(xlToLeft).Column - 2 '幅を求める
dat = Range("C5").Resize(rr, cc).Value 'データを変数に入れる
Range("AA5").Resize(rr, cc).Value = dat 'コピーする
End Sub
803デフォルトの名無しさん (ワッチョイ c7ce-ts7H)
2020/05/03(日) 02:15:53.76ID:fR4zqWYb0 ごめん
ちょっとだけ修正させて
Sub 数字だけコピー()
Dim rr As Long
Dim cc As Long
Dim dat As Variant
rr = Range("C4").End(xlDown).Row - 4 '高さを求める
cc = Range("B5").End(xlToRight).Column - 2 '幅を求める
dat = Range("C5").Resize(rr, cc).Value 'データを変数に入れる
Range("AA5").Resize(rr, cc).Value = dat 'コピーする
End Sub
ちょっとだけ修正させて
Sub 数字だけコピー()
Dim rr As Long
Dim cc As Long
Dim dat As Variant
rr = Range("C4").End(xlDown).Row - 4 '高さを求める
cc = Range("B5").End(xlToRight).Column - 2 '幅を求める
dat = Range("C5").Resize(rr, cc).Value 'データを変数に入れる
Range("AA5").Resize(rr, cc).Value = dat 'コピーする
End Sub
804デフォルトの名無しさん (ワッチョイ df01-lZTE)
2020/05/03(日) 03:59:51.25ID:PK0PPm520 この程度のものを人に聞かなきゃできないようじゃ先が思いやられる
これで職場の50代批判できるのかと・・・・
しかも最初のこれ>>787
もう少し日本語の説明能力上げたほうがいいんじゃないか
君何度もここでいろんな質問してるよね?質問の仕方からして酷すぎる
説明の例1:
この画像で言えばC5からE13の範囲を別シートにコピーしたいです
https://i.imgur.com/Sd2Afas.jpg
コピーしたい範囲は変化します。例えばこの場合はC5からI9までをコピーしたいです
http://i.imgur.com/MfnIQSU.jpg
説明の例2:
こういう画像をペイントで作る
https://i.imgur.com/u9Vhnj1.jpg
はぁ・・・おれ深夜に何やってんだか・・・
これで職場の50代批判できるのかと・・・・
しかも最初のこれ>>787
もう少し日本語の説明能力上げたほうがいいんじゃないか
君何度もここでいろんな質問してるよね?質問の仕方からして酷すぎる
説明の例1:
この画像で言えばC5からE13の範囲を別シートにコピーしたいです
https://i.imgur.com/Sd2Afas.jpg
コピーしたい範囲は変化します。例えばこの場合はC5からI9までをコピーしたいです
http://i.imgur.com/MfnIQSU.jpg
説明の例2:
こういう画像をペイントで作る
https://i.imgur.com/u9Vhnj1.jpg
はぁ・・・おれ深夜に何やってんだか・・・
805デフォルトの名無しさん (ワッチョイ a7ad-ur4w)
2020/05/03(日) 09:15:39.22ID:iPr/hZRI0 >>776
ご助言ありがとうございます!
教えていたことの意味を調べながら勉強します。
ちなみにうちの職場では55歳のオバハンが独学で書いてるVBA
が一番「きれい」だそうで。教科書通りで、整理整頓されてる感じで
非エンジニアには優しいんです。(簡単なものしか作らない人ですけど。)
でも「リーダブルコード」とか「VBA実践のためのなんちゃら」とか
読んで勉強してるの見かけたので、心がけは見習いたいです。
ご助言ありがとうございます!
教えていたことの意味を調べながら勉強します。
ちなみにうちの職場では55歳のオバハンが独学で書いてるVBA
が一番「きれい」だそうで。教科書通りで、整理整頓されてる感じで
非エンジニアには優しいんです。(簡単なものしか作らない人ですけど。)
でも「リーダブルコード」とか「VBA実践のためのなんちゃら」とか
読んで勉強してるの見かけたので、心がけは見習いたいです。
806デフォルトの名無しさん (ワッチョイ 87e6-ts7H)
2020/05/03(日) 09:19:57.52ID:6v/wuiGx0 > Sheets(Tensu) = "点数"
> Sheets() = "結果シート"
きれいだとか汚いとかいう以前に読む気が失せるな
入門書買ったとか言ってなかったっけ?
> Sheets() = "結果シート"
きれいだとか汚いとかいう以前に読む気が失せるな
入門書買ったとか言ってなかったっけ?
807デフォルトの名無しさん (ワッチョイ e7ad-GPK9)
2020/05/03(日) 09:20:36.28ID:2hdRjZho0 >>805
>独学で書いてるVBAが一番「きれい」
>教科書通りで、整理整頓
それはあるかもな
プログラマだとなまじ他言語の知識があるために
トリッキーなことやりだす奴が一定数いるからな
効率が良い面もあるだろうが他人が理解しにくい
>独学で書いてるVBAが一番「きれい」
>教科書通りで、整理整頓
それはあるかもな
プログラマだとなまじ他言語の知識があるために
トリッキーなことやりだす奴が一定数いるからな
効率が良い面もあるだろうが他人が理解しにくい
808デフォルトの名無しさん (ワッチョイ 87e6-ts7H)
2020/05/03(日) 09:35:40.45ID:6v/wuiGx0 >>803
生血プログラマーなら1行にするべきである
生血プログラマーなら1行にするべきである
809デフォルトの名無しさん (ワッチョイ 7fda-ts7H)
2020/05/03(日) 10:26:05.54ID:9LS/Ekj10 ああ、
If a = True Then
a = False
ElseIf a = False Then
a = True
End If
みたいなやつか。
大っ嫌いだけどな。
If a = True Then
a = False
ElseIf a = False Then
a = True
End If
みたいなやつか。
大っ嫌いだけどな。
810デフォルトの名無しさん (ワッチョイ c7da-ts7H)
2020/05/03(日) 13:07:08.60ID:T/wh1/tE0 a = Not(a)
でいいんじゃね
でいいんじゃね
811デフォルトの名無しさん (ワッチョイ 67ac-fZS3)
2020/05/03(日) 13:43:00.43ID:AWBCl49n0 エスパースレと化してる
812デフォルトの名無しさん (ワッチョイ bf2f-WRor)
2020/05/03(日) 14:21:40.36ID:jHKSsTzt0813デフォルトの名無しさん (ワッチョイ a778-NLJ6)
2020/05/03(日) 16:23:21.84ID:7ZZm2K4r0 たしかにそうだ
814デフォルトの名無しさん (ワッチョイ 2791-x7Cl)
2020/05/03(日) 18:57:16.84ID:hVYH2JxT0815デフォルトの名無しさん (ドコグロ MM9f-4Orb)
2020/05/03(日) 20:02:39.59ID:GBCMW2mVM If a = True Then
の時点で嫌い
の時点で嫌い
816デフォルトの名無しさん (ワッチョイ a75f-rvxR)
2020/05/03(日) 20:33:25.77ID:INbjbW0w0 If a Then は気持ち悪いわ
817デフォルトの名無しさん (ワッチョイ 7fda-ts7H)
2020/05/03(日) 20:35:39.32ID:9LS/Ekj10818デフォルトの名無しさん (ワッチョイ bf2f-WRor)
2020/05/03(日) 20:41:41.89ID:jHKSsTzt0 俺はBooleanにたいして= Trueは大概は冗長に感じるけどな
VBAは型がゆるいからなぁ
If a Then は気持ち悪いが、これは変数名が悪い
VBAは型がゆるいからなぁ
If a Then は気持ち悪いが、これは変数名が悪い
819デフォルトの名無しさん (ワッチョイ 878f-ts7H)
2020/05/03(日) 22:08:11.47ID:dDcWYHiB0 >>807
perl で組んだテトリスだったかな。あれ見たときはぶったまげた。
元々ワンライナーをやりやすい言語とは言え、あれはもう
何が何やらわからない世界だった。どんだけ頭いいんだよと。
でも、「こんなの理解できないの?ふ〜ん(にやにや)」みたいな
のは生産性的には駄目だよね。
美しさをトリッキーさに見出すか可読性に見出すかは人それぞれ
だけど、自分よりスキルが下の他人に保守させるとか、未来の自
分が保守しないといけないかもとかなら冗長性持ってるほうがいい
かも。
いちばん大事なのは懇切丁寧なコメントだろうけど。
perl で組んだテトリスだったかな。あれ見たときはぶったまげた。
元々ワンライナーをやりやすい言語とは言え、あれはもう
何が何やらわからない世界だった。どんだけ頭いいんだよと。
でも、「こんなの理解できないの?ふ〜ん(にやにや)」みたいな
のは生産性的には駄目だよね。
美しさをトリッキーさに見出すか可読性に見出すかは人それぞれ
だけど、自分よりスキルが下の他人に保守させるとか、未来の自
分が保守しないといけないかもとかなら冗長性持ってるほうがいい
かも。
いちばん大事なのは懇切丁寧なコメントだろうけど。
820デフォルトの名無しさん (ワッチョイ 878f-ts7H)
2020/05/03(日) 22:21:26.63ID:dDcWYHiB0 >>805
> ちなみにうちの職場では55歳のオバハンが独学で書いてるVBA
> が一番「きれい」だそうで。教科書通りで、整理整頓されてる感じで
> 非エンジニアには優しいんです。(簡単なものしか作らない人ですけど。)
> でも「リーダブルコード」とか「VBA実践のためのなんちゃら」とか
> 読んで勉強してるの見かけたので、心がけは見習いたいです。
あえて長文引用させてもらったけど、あんた程度の人間がなんで
その55歳の女性を貶めてるの?
> ちなみにうちの職場では55歳のオバハンが独学で書いてるVBA
> が一番「きれい」だそうで。教科書通りで、整理整頓されてる感じで
> 非エンジニアには優しいんです。(簡単なものしか作らない人ですけど。)
> でも「リーダブルコード」とか「VBA実践のためのなんちゃら」とか
> 読んで勉強してるの見かけたので、心がけは見習いたいです。
あえて長文引用させてもらったけど、あんた程度の人間がなんで
その55歳の女性を貶めてるの?
821デフォルトの名無しさん (ワッチョイ 2791-x7Cl)
2020/05/03(日) 22:55:28.97ID:hVYH2JxT0822デフォルトの名無しさん (JP 0H8f-Ng5p)
2020/05/03(日) 22:57:44.37ID:8sSb2t20H まともなプログラマなら周りのレベルに合わせて読みやすいコードを書けるよ
VBAの仕事なんかやってる時点でその程度のレベルなんだから仕方ない
VBAの仕事なんかやってる時点でその程度のレベルなんだから仕方ない
823デフォルトの名無しさん (ワッチョイ 2791-x7Cl)
2020/05/03(日) 22:58:39.80ID:hVYH2JxT0 >>819
コメントもたくさんあれば良いというもんじゃない。
Dim blFlg AsBoolean 'フラグ
こんなコメントはアホ。
フラグかどうかは名前と型で分かってる。
残すべきはどういうフラグかだ。
コメントもたくさんあれば良いというもんじゃない。
Dim blFlg AsBoolean 'フラグ
こんなコメントはアホ。
フラグかどうかは名前と型で分かってる。
残すべきはどういうフラグかだ。
824デフォルトの名無しさん (ワッチョイ 878f-ts7H)
2020/05/03(日) 23:00:42.93ID:dDcWYHiB0 >>823
それは確かにコメントっつうより、「ノイズ」だなw
それは確かにコメントっつうより、「ノイズ」だなw
825デフォルトの名無しさん (ワッチョイ 2791-x7Cl)
2020/05/03(日) 23:03:28.37ID:hVYH2JxT0826デフォルトの名無しさん (アウアウエー Sa9f-z9G2)
2020/05/03(日) 23:06:45.24ID:oMB0K2Jka >>823
こんな奴いるのw
こんな奴いるのw
827デフォルトの名無しさん (ワッチョイ 2791-x7Cl)
2020/05/03(日) 23:07:47.50ID:hVYH2JxT0828デフォルトの名無しさん (ワッチョイ 878f-ts7H)
2020/05/03(日) 23:13:29.74ID:dDcWYHiB0 ただ、伝わりやすい変数名ってのが読む方の英語の素養に
大きく左右されちゃう不幸が。
TOEICで600くらい(英語の得意な高校生あたり)を想定するのが
いいかなあ。
大きく左右されちゃう不幸が。
TOEICで600くらい(英語の得意な高校生あたり)を想定するのが
いいかなあ。
829デフォルトの名無しさん (ワッチョイ 2791-x7Cl)
2020/05/03(日) 23:19:40.85ID:hVYH2JxT0 Cプログラミング診断室の第三章の中盤に出てくるフラグの所に似たようなのが出てくる。
言語は違うが読んどくと良い。
http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.3.7.html
言語は違うが読んどくと良い。
http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.3.7.html
830デフォルトの名無しさん (ワッチョイ df02-mIzA)
2020/05/04(月) 01:56:50.66ID:6MBl5GGH0 ここのスレ見てると、共同で保守してるのに細かい仕様書作ってない感じ
VBA使いって連携取るの苦手だろ
VBA使いって連携取るの苦手だろ
831デフォルトの名無しさん (スップ Sd7f-D935)
2020/05/04(月) 02:26:38.20ID:5comiU6qd 自分だけ楽するために片手間に作ったやつがいつのまにか広まって、ドキュメントなんかもちろん作ってなくて、最初に作った人は異動しちゃって、みたいなことVBAではよくある
832デフォルトの名無しさん (ワッチョイ e794-C/EQ)
2020/05/04(月) 04:29:56.94ID:eaaQNpcs0 VBAは事務員のオバさんが作る程度のオモチャ
仕様書とか本気で言ってんの?
キモいわ
仕様書とか本気で言ってんの?
キモいわ
833デフォルトの名無しさん (ワッチョイ bf12-h83k)
2020/05/04(月) 06:18:26.16ID:XD3JqXFe0 仕様書を書くような立場で仕事をしたことない人は黙ってな
834デフォルトの名無しさん (ワッチョイ c7da-ts7H)
2020/05/04(月) 08:36:53.65ID:NmZgEDtP0 会社のファイルで仕様書作ってあげてもいいんだけど今の職場では上司が理解できないからあえて作らないでいる
835デフォルトの名無しさん (ワッチョイ c7da-ts7H)
2020/05/04(月) 08:37:36.33ID:NmZgEDtP0 俺は832ではない
836デフォルトの名無しさん (ドコグロ MM9f-4Orb)
2020/05/04(月) 09:29:50.78ID:eyf9VoYQM 全社に配布するようなものは仕様書も作るしテストもやるけど、自分とか課内で使うようなツールだと作りっぱだな
別に他の言語でも変わらんと思うが
別に他の言語でも変わらんと思うが
837デフォルトの名無しさん (ワッチョイ a78e-MvRk)
2020/05/04(月) 09:55:22.79ID:oqIKeiQj0 最近よく来る馬鹿どもが仕様書作れると思うのか?
838デフォルトの名無しさん (ワッチョイ c7ce-ur4w)
2020/05/04(月) 10:02:07.63ID:cVQIuVcH0 共同開発やドキュメントが必要になるレベルのプロジェクトには別の言語を使うのが普通
VBAスレで仕様書の話題はスレ違い
VBAスレで仕様書の話題はスレ違い
839デフォルトの名無しさん (ワッチョイ 67ac-fZS3)
2020/05/04(月) 10:28:02.39ID:ESbXk+mE0 はいつぎの方
840デフォルトの名無しさん (ワッチョイ df01-lZTE)
2020/05/04(月) 10:39:56.70ID:EYE1xMNJ0 うちの職場じゃボタン押すことぐらいしか出来ないような連中ばかりだから
仕様書どころかマニュアル作っても1割ぐらいしか理解してもらえないだろうな
目の前で説明しても少し込み入った設定になると覚える気一切ないしな
俺がいなくなったら終わりと思ってる
コメントすら残してない
仕様書どころかマニュアル作っても1割ぐらいしか理解してもらえないだろうな
目の前で説明しても少し込み入った設定になると覚える気一切ないしな
俺がいなくなったら終わりと思ってる
コメントすら残してない
841デフォルトの名無しさん (ワッチョイ a7ad-ur4w)
2020/05/04(月) 11:03:15.13ID:mKy38ERH0842デフォルトの名無しさん (ワッチョイ a78e-MvRk)
2020/05/04(月) 11:58:39.88ID:oqIKeiQj0 >>841
死ね
死ね
843デフォルトの名無しさん (ワッチョイ 877c-mIzA)
2020/05/04(月) 11:59:42.54ID:zFV2kJYS0 ドキュメントが必要かどうかに言語は関係ない
プロジェクトの内容次第
プロジェクトの内容次第
844デフォルトの名無しさん (ワッチョイ c7da-ts7H)
2020/05/04(月) 12:35:48.74ID:NmZgEDtP0 >>841
例えばテレビのリモコンの電源ボタンとか消音ボタンのような使い方をするイメージ
例えばテレビのリモコンの電源ボタンとか消音ボタンのような使い方をするイメージ
845デフォルトの名無しさん (ドコグロ MM9f-4Orb)
2020/05/04(月) 12:43:46.28ID:RsDc9cGOM >>838
お前の所の普通が世間一般の普通じゃないだけが
お前の所の普通が世間一般の普通じゃないだけが
846デフォルトの名無しさん (ワッチョイ c7ce-ts7H)
2020/05/04(月) 12:48:54.23ID:cVQIuVcH0 >>841
誰も使わない悪い例を書いただけ
誰も使わない悪い例を書いただけ
847デフォルトの名無しさん (ブーイモ MM2b-ur4w)
2020/05/04(月) 13:16:33.95ID:c8yfA7Q3M848デフォルトの名無しさん (ワッチョイ a78f-h83k)
2020/05/04(月) 13:17:26.32ID:n6lRLUl70 If a = True Then
誰にでもわかる書き方でとても良いと思う
今VBAを勉強する人は本職プログラマではなく
別に仕事があって、その効率化の為に学んでる人が主でしょう
そしてそれを非プログラマ同士で共有するのなら
どの本にでも書いてある書き方の方が望ましい
匿名の名人様の言葉に右往左往する必要はないよ
誰にでもわかる書き方でとても良いと思う
今VBAを勉強する人は本職プログラマではなく
別に仕事があって、その効率化の為に学んでる人が主でしょう
そしてそれを非プログラマ同士で共有するのなら
どの本にでも書いてある書き方の方が望ましい
匿名の名人様の言葉に右往左往する必要はないよ
849デフォルトの名無しさん (ワッチョイ df01-4Orb)
2020/05/04(月) 13:43:10.72ID:/ITc8kQd0 >>847
自己紹介かよww
自己紹介かよww
850デフォルトの名無しさん (ワッチョイ 7fda-ts7H)
2020/05/04(月) 14:09:51.63ID:9S16/cFq0 Debug.Print xml.getElementsByTagName("タグ名").Item(0).Text
Microsoft XML, v3.0 参照 → OK
Microsoft XML, v6.0 参照 → エラー
何でやねん。
Microsoft XML, v3.0 参照 → OK
Microsoft XML, v6.0 参照 → エラー
何でやねん。
851デフォルトの名無しさん (ワッチョイ 2791-x7Cl)
2020/05/04(月) 14:14:20.30ID:r232eNWS0 >>841
卜グルボタンとかチェックボックスのようなオンオフするようなものを変数で管理しようとした時に、変数がTrueならFalseに設定し、FalseならTrueに設定する処理を書いている。
最初のIf文の方は英文が分かれば簡単に理解出来る。
Notを使う方はTrue/Falseだから変数を変数自身と反対にすることで実現してる。
卜グルボタンとかチェックボックスのようなオンオフするようなものを変数で管理しようとした時に、変数がTrueならFalseに設定し、FalseならTrueに設定する処理を書いている。
最初のIf文の方は英文が分かれば簡単に理解出来る。
Notを使う方はTrue/Falseだから変数を変数自身と反対にすることで実現してる。
852デフォルトの名無しさん (ワッチョイ 7fdd-ts7H)
2020/05/04(月) 14:35:44.64ID:m3H0OQVZ0 検索Dialogの検索場所(WithIn)をVBAから切り替えるアイデアをお持ちの方いたら教えていただけないでしょうか。
全シートから検索するのが目的ではなく、ブック全体検索後に何気に範囲指定置換を実施して引き起こされる惨状を回避したく。
(または別視点による工夫でもOKです)
詳しい方、よろしくお願いします。
全シートから検索するのが目的ではなく、ブック全体検索後に何気に範囲指定置換を実施して引き起こされる惨状を回避したく。
(または別視点による工夫でもOKです)
詳しい方、よろしくお願いします。
853デフォルトの名無しさん (ワッチョイ 67ac-fZS3)
2020/05/04(月) 15:43:06.15ID:ESbXk+mE0 >>852
意味不明な点が多すぎる。
>ブック全体検索後に何気に範囲指定置換を実施して
検索と置換ダイアログでは検索、置換は違うタブだから操作ミスは起きずらいが、
そこまでしなきゃならないのか
>引き起こされる惨状を回避したく。
惨状って具体的になにか
そもそも惨状とやらが起きるのは、GUIの話なのかVBAの話なのか
意味不明な点が多すぎる。
>ブック全体検索後に何気に範囲指定置換を実施して
検索と置換ダイアログでは検索、置換は違うタブだから操作ミスは起きずらいが、
そこまでしなきゃならないのか
>引き起こされる惨状を回避したく。
惨状って具体的になにか
そもそも惨状とやらが起きるのは、GUIの話なのかVBAの話なのか
854デフォルトの名無しさん (スップ Sd7f-C/EQ)
2020/05/04(月) 15:44:13.44ID:gO9XNStOd 今からVBAなんて覚える必要は全くない
855デフォルトの名無しさん (ワッチョイ a7ad-ur4w)
2020/05/04(月) 18:17:24.80ID:mKy38ERH0 841です。
丁寧な解説、みなさんありがとうございました。
勉強になりました。
丁寧な解説、みなさんありがとうございました。
勉強になりました。
856デフォルトの名無しさん (ワッチョイ 67f9-qVEi)
2020/05/04(月) 19:20:35.81ID:V2+TGFiQ0 >>855
アンカーも書けず全角で数字を書くよな馬鹿は死ね
アンカーも書けず全角で数字を書くよな馬鹿は死ね
857デフォルトの名無しさん (ワッチョイ 7fdd-ts7H)
2020/05/04(月) 19:40:04.11ID:m3H0OQVZ0 >>853
説明が不足していました。
検索と置換のタブはパラメータ設定の記憶が共通となっております。
ブック全体検索を行った後に範囲を選択して範囲内置換を実施しようとCtrl+Hを押します。
すると前回検索時の "検索場所=ブック"が活きている状態になっております。
気づかずに実施すると全シートの指定文字列が置換されてデータが破壊されてしまいます。
コロン ":" でも削除置換しようものなら全ての時刻書式が破壊されます。
お試しください。
これを防ぐには、ブック内検索を実施した際は引き続きシート内検索を実施して設定を戻しておく必要があります。
普段ブック内検索ってあまり使わないのでこんな時に限って忘れてしまいます。
VBAはどうなっているかというと、.Find .Replace共に、WithInパラメータが存在しないため引数指定できず、直前のUI操作依存となるわけです。
自動化された置換処理があったりすると、事故が起こるわけです。
本件、GGってよく捜してみたら同様の悩みに対するQAありました。
Range("A1").Find("*")
この1行を実施するだけで検索場所をシートに戻せるようです。
逆に検索場所をブックにする方法を探しているところです。
ご存じの方おられましたら教えてください。
説明が不足していました。
検索と置換のタブはパラメータ設定の記憶が共通となっております。
ブック全体検索を行った後に範囲を選択して範囲内置換を実施しようとCtrl+Hを押します。
すると前回検索時の "検索場所=ブック"が活きている状態になっております。
気づかずに実施すると全シートの指定文字列が置換されてデータが破壊されてしまいます。
コロン ":" でも削除置換しようものなら全ての時刻書式が破壊されます。
お試しください。
これを防ぐには、ブック内検索を実施した際は引き続きシート内検索を実施して設定を戻しておく必要があります。
普段ブック内検索ってあまり使わないのでこんな時に限って忘れてしまいます。
VBAはどうなっているかというと、.Find .Replace共に、WithInパラメータが存在しないため引数指定できず、直前のUI操作依存となるわけです。
自動化された置換処理があったりすると、事故が起こるわけです。
本件、GGってよく捜してみたら同様の悩みに対するQAありました。
Range("A1").Find("*")
この1行を実施するだけで検索場所をシートに戻せるようです。
逆に検索場所をブックにする方法を探しているところです。
ご存じの方おられましたら教えてください。
858デフォルトの名無しさん (ワッチョイ 6741-eET6)
2020/05/04(月) 20:21:19.69ID:2XIJsT+F0 .OpenTextで開いたテキストファイルを操作したいのですがやり方がわからなくて困っています。
拡張子CSVなら通常のエクセルワークシートと同様に扱えますが、テキストファイルは無理なのでしょうか?
Workbooks.Countは開いたテキストファイルの分増えているようですが…
ご教示お願いいたします。
拡張子CSVなら通常のエクセルワークシートと同様に扱えますが、テキストファイルは無理なのでしょうか?
Workbooks.Countは開いたテキストファイルの分増えているようですが…
ご教示お願いいたします。
859デフォルトの名無しさん (スフッ Sdff-rvxR)
2020/05/04(月) 20:24:42.58ID:mUlUr63md テキストファイルの中身はどのようなフォーマットで、どう操作したいのですか?
860デフォルトの名無しさん (ワッチョイ 87e6-aR2J)
2020/05/04(月) 20:40:40.91ID:c199Arvf0 1セルに1文字づつならExcelチックに楽しめそうだな
知らんけど
知らんけど
861デフォルトの名無しさん (ワッチョイ a78e-MvRk)
2020/05/04(月) 20:56:39.11ID:oqIKeiQj0 次から次へと馬鹿が来る
862853 (ワッチョイ 67ac-ts7H)
2020/05/04(月) 21:05:25.33ID:ESbXk+mE0 >>857
まず、問題としてる事象は提示している方法で解決するんだよね
そのブック開いたときとか操作したときに実行すればいい
>「ブック全体検索を行った後」に「範囲を選択」して「範囲内置換を実施」(ブック全体と指定しているオプションを開いたまま)
→ その悪意に満ちた行為のみを想定するの?
検索ダイアログのオプション設定は起動中のExcelアプリ(プロセス)に記憶されるから、
Excelアプリを開いたまま同じPCで同様の操作をしないと再現しないはず
>気づかずに実施すると全シートの指定文字列が置換されてデータが破壊されてしまいます。
→ さっきの操作をすると検索オプションは開いてるはずだけど、
それでも気付かずファイル保存するっていう悪意ry
GUI操作->GUI操作で出る問題なら、運用で禁止するか保護するか、影響に基づいて運用システム自体を見直す
>逆に検索場所をブックにする方法を探しているところです。
→ 問題としてる事象の解決は自分で提示しているようだけど、
逆に引き起こしたいってことは、単にやりたいから?
VBAで置換するなら別に全シートをReplace擦ればいいだけだし
GUIでブックにしたいならそう操作すればいいけど、何が必要なの
検索と置換ダイアログの操作はCommandBars.dialogsとかExecuteMsoとかで表示は出来る
ウィンドウ操作にしても他のダイアログ操作と似たようなもんだろう(APIが多分必要)
GUIとVBAをごっちゃに対応するから要らない悩みを抱える
運用やコストを考えない妄想の機能なら、それこそ趣味でアドインでも作ればいい
まず、問題としてる事象は提示している方法で解決するんだよね
そのブック開いたときとか操作したときに実行すればいい
>「ブック全体検索を行った後」に「範囲を選択」して「範囲内置換を実施」(ブック全体と指定しているオプションを開いたまま)
→ その悪意に満ちた行為のみを想定するの?
検索ダイアログのオプション設定は起動中のExcelアプリ(プロセス)に記憶されるから、
Excelアプリを開いたまま同じPCで同様の操作をしないと再現しないはず
>気づかずに実施すると全シートの指定文字列が置換されてデータが破壊されてしまいます。
→ さっきの操作をすると検索オプションは開いてるはずだけど、
それでも気付かずファイル保存するっていう悪意ry
GUI操作->GUI操作で出る問題なら、運用で禁止するか保護するか、影響に基づいて運用システム自体を見直す
>逆に検索場所をブックにする方法を探しているところです。
→ 問題としてる事象の解決は自分で提示しているようだけど、
逆に引き起こしたいってことは、単にやりたいから?
VBAで置換するなら別に全シートをReplace擦ればいいだけだし
GUIでブックにしたいならそう操作すればいいけど、何が必要なの
検索と置換ダイアログの操作はCommandBars.dialogsとかExecuteMsoとかで表示は出来る
ウィンドウ操作にしても他のダイアログ操作と似たようなもんだろう(APIが多分必要)
GUIとVBAをごっちゃに対応するから要らない悩みを抱える
運用やコストを考えない妄想の機能なら、それこそ趣味でアドインでも作ればいい
863デフォルトの名無しさん (ワッチョイ 6741-eET6)
2020/05/04(月) 21:24:09.39ID:2XIJsT+F0 説明足らずで申し訳ありません。
カンマ区切りのテキストファイルに対してOpenTextを使います。これでカンマごとにセルに値が分けらたエクセルブックが開きます。
このブックのシートを通常のエクセルシートと同様に、例えばRange("A1").Activateとしたいのですが、ブックをどうやって指定すればいいのでしょうか?
以下の方法を試しましたがうまくいきません。
元々開いているブックが一つのとき、テキストファイルはWorkbooks.CountWorkbook=2として開かれることを確認。このときWorkbooks(2)をVariant型の変数に代入しようとしました。
Set myBook = Workbooks(2)
ウォッチ式でmyBookの値を確認すると
型 Variant/Object
値 <変数なし>
となり値が取得できません。
テキストファイルの拡張子をCSVに変更すると問題なく値が取得できます。
すみませんがよろしくお願いいたします。
カンマ区切りのテキストファイルに対してOpenTextを使います。これでカンマごとにセルに値が分けらたエクセルブックが開きます。
このブックのシートを通常のエクセルシートと同様に、例えばRange("A1").Activateとしたいのですが、ブックをどうやって指定すればいいのでしょうか?
以下の方法を試しましたがうまくいきません。
元々開いているブックが一つのとき、テキストファイルはWorkbooks.CountWorkbook=2として開かれることを確認。このときWorkbooks(2)をVariant型の変数に代入しようとしました。
Set myBook = Workbooks(2)
ウォッチ式でmyBookの値を確認すると
型 Variant/Object
値 <変数なし>
となり値が取得できません。
テキストファイルの拡張子をCSVに変更すると問題なく値が取得できます。
すみませんがよろしくお願いいたします。
864デフォルトの名無しさん (ワッチョイ 7fdd-ts7H)
2020/05/04(月) 21:39:32.81ID:m3H0OQVZ0 >>862
ご回答ありがとうございます。
>オプションを開いたまま
これの意味がわからないですが、ダイアログを開いたままという意味なら、閉じても記憶は維持します。
全体検索実施と範囲選択実施は一連の動作じゃないです。
例えば複数のファイルを開いて作業していて、全体検索を実施したファイルは既に1時間前に閉じていたとしても設定は維持されます。
これを悪意と言われましても、、
まあ、この点は前述のコードをシートイベント等に挟むことで防げそうです。
(設置Bookに限られるかな?まあ、良い方法を考えてみます)
>それでも気づかずに
キーボード主体でマウスはほぼ使わない派なので、範囲選択→ダイアログ開く→検索語、置換語入力→Enterの動作は
一連の操作で、ガッ、ガガガッで感じでやっちゃうのでダイアログのパラメータいちいち確認しないんですよね。
ちょっと落ち着けよって話なんでしょうけど。
>問題としている事象の解決は自分で提示しているようだけど、
最初に掲げた命題が "VBAで検索場所(WithIn)を切り替えたい" だったので逆の操作もできれば知りたいという程度です。
破壊リスクは回避できそうですが、例えば範囲が”シート"の状態からVBAで"ブック"に変更して全置換も可能なのかな、という疑問です。
結論としては通常の方法では出来なそうですね。
Worksheets.Select: Cells.Select を実行すれば、シートをForで回さなくても
Selection.Replace できることもわかりましたのでこれで解決としたいと思います。
>GUIとVBAをごっちゃに対応するから要らない悩みを抱える
GUIの設定がVBA操作にも影響を与えてしまうから制御できないかなと思った次第です。
お付き合いいただきありがとうございます。
ご回答ありがとうございます。
>オプションを開いたまま
これの意味がわからないですが、ダイアログを開いたままという意味なら、閉じても記憶は維持します。
全体検索実施と範囲選択実施は一連の動作じゃないです。
例えば複数のファイルを開いて作業していて、全体検索を実施したファイルは既に1時間前に閉じていたとしても設定は維持されます。
これを悪意と言われましても、、
まあ、この点は前述のコードをシートイベント等に挟むことで防げそうです。
(設置Bookに限られるかな?まあ、良い方法を考えてみます)
>それでも気づかずに
キーボード主体でマウスはほぼ使わない派なので、範囲選択→ダイアログ開く→検索語、置換語入力→Enterの動作は
一連の操作で、ガッ、ガガガッで感じでやっちゃうのでダイアログのパラメータいちいち確認しないんですよね。
ちょっと落ち着けよって話なんでしょうけど。
>問題としている事象の解決は自分で提示しているようだけど、
最初に掲げた命題が "VBAで検索場所(WithIn)を切り替えたい" だったので逆の操作もできれば知りたいという程度です。
破壊リスクは回避できそうですが、例えば範囲が”シート"の状態からVBAで"ブック"に変更して全置換も可能なのかな、という疑問です。
結論としては通常の方法では出来なそうですね。
Worksheets.Select: Cells.Select を実行すれば、シートをForで回さなくても
Selection.Replace できることもわかりましたのでこれで解決としたいと思います。
>GUIとVBAをごっちゃに対応するから要らない悩みを抱える
GUIの設定がVBA操作にも影響を与えてしまうから制御できないかなと思った次第です。
お付き合いいただきありがとうございます。
865デフォルトの名無しさん (ワッチョイ df02-mIzA)
2020/05/04(月) 21:50:38.13ID:6MBl5GGH0 >>863
txtファイル開いた時点で何かしらのファイル名が付いてるでしょ
txtファイル開いた時点で何かしらのファイル名が付いてるでしょ
866デフォルトの名無しさん (ワッチョイ a764-7mTq)
2020/05/04(月) 22:13:52.11ID:HiZbEqQh0 特に目的があるわけではないけど、興味があってVBAを勉強しようと思ってます。
皆さんどんな勉強法しましたか?おすすめの本とか有りましたら知りたいです
皆さんどんな勉強法しましたか?おすすめの本とか有りましたら知りたいです
867853 (ワッチョイ 67ac-ts7H)
2020/05/04(月) 22:16:36.67ID:ESbXk+mE0 >>864
まあ終わってるからいいけど・・
>>オプションを開いたまま
>これの意味がわからないですが、ダイアログを開いたままという意味なら、閉じても記憶は維持します。
→これは、「検索と置換」ダイアログの
「検索場所」ドロップダウンはGUIだと「オプション>>」ボタンで開かれる拡張エリアにのみ表示されて、
「ブック全体を選択した」=「オプションを展開表示している」から、GUIなら気付かないわけがない。
ということ。
ダイアログ内の設定値同様、オプション展開状況もExcelプロセスで共有してるから、
他のファイルで展開してるなら違うブックでも展開されたままダイアログ表示される。
>GUIの設定がVBA操作にも影響を与えてしまうから制御できないかなと思った次第です。
VBAもGUIで行った設定の影響を受けないような、Rangeを指定する記述を普通は心掛けるべきだな
まあ終わってるからいいけど・・
>>オプションを開いたまま
>これの意味がわからないですが、ダイアログを開いたままという意味なら、閉じても記憶は維持します。
→これは、「検索と置換」ダイアログの
「検索場所」ドロップダウンはGUIだと「オプション>>」ボタンで開かれる拡張エリアにのみ表示されて、
「ブック全体を選択した」=「オプションを展開表示している」から、GUIなら気付かないわけがない。
ということ。
ダイアログ内の設定値同様、オプション展開状況もExcelプロセスで共有してるから、
他のファイルで展開してるなら違うブックでも展開されたままダイアログ表示される。
>GUIの設定がVBA操作にも影響を与えてしまうから制御できないかなと思った次第です。
VBAもGUIで行った設定の影響を受けないような、Rangeを指定する記述を普通は心掛けるべきだな
868デフォルトの名無しさん (ワッチョイ e709-ur4w)
2020/05/04(月) 23:21:11.46ID:igVQrW+K0 今までそーいうものだと思い込ませて放置していたことなのですが、
引数を使うのにカッコつけなきゃいけないメソッドと、使わなくてもいい
メソッドって、なにが違うんでしょうか?なにか理由があるのでしょうか。
Dim a As Range: Set a = Cells.Find(What:="test")
ThisWorkbook.ActiveSheet.PrintOut copies:=1
それに付け加えて、findした結果をcolllectionに格納する際、
カッコをつけるとdouble型、つけないとrange型となりました。
検索結果を格納するcollection.Add 検索range
検索結果を格納するcollection.Add (検索range)
ご教授何卒宜しくお願いいたします。
引数を使うのにカッコつけなきゃいけないメソッドと、使わなくてもいい
メソッドって、なにが違うんでしょうか?なにか理由があるのでしょうか。
Dim a As Range: Set a = Cells.Find(What:="test")
ThisWorkbook.ActiveSheet.PrintOut copies:=1
それに付け加えて、findした結果をcolllectionに格納する際、
カッコをつけるとdouble型、つけないとrange型となりました。
検索結果を格納するcollection.Add 検索range
検索結果を格納するcollection.Add (検索range)
ご教授何卒宜しくお願いいたします。
869デフォルトの名無しさん (ワッチョイ 7fdd-ts7H)
2020/05/04(月) 23:58:21.23ID:m3H0OQVZ0 >>867
オプションが開かれてるという意味でしたか。
なるほどですね。
呼吸レベルでキーコンビネーションで通り過ぎちゃうので、、しっかり見るべきだと。
>VBAもGUIで行った設定の影響を受けないような
ごもっともです。
普段は .Find系は滅多に使わないのですが、あるとき大被害にあって、、、
どちらかというとGUI操作のほうが悩ましかったので、、、
API制御の方法にも辿り着けて、各Controlの制御もわかりました。
一瞬表示されてしまうのが難点ですが。良い情報をいただきました。
ご助言感謝します。
オプションが開かれてるという意味でしたか。
なるほどですね。
呼吸レベルでキーコンビネーションで通り過ぎちゃうので、、しっかり見るべきだと。
>VBAもGUIで行った設定の影響を受けないような
ごもっともです。
普段は .Find系は滅多に使わないのですが、あるとき大被害にあって、、、
どちらかというとGUI操作のほうが悩ましかったので、、、
API制御の方法にも辿り着けて、各Controlの制御もわかりました。
一瞬表示されてしまうのが難点ですが。良い情報をいただきました。
ご助言感謝します。
870デフォルトの名無しさん (ワッチョイ 877c-mIzA)
2020/05/05(火) 01:19:15.50ID:nv2gdYIy0 >>868
とりあえず戻り値があるかないかの違いとでも思っとけばよい
とりあえず戻り値があるかないかの違いとでも思っとけばよい
871デフォルトの名無しさん (ワッチョイ e7ad-HyhH)
2020/05/05(火) 03:17:48.98ID:SDhPW+o/0 12121212111211121112みたいな数列で、
1212..と続くものにはA、
11121112..と続くものにはBと置き換え、
AABBBのような文字列を作成することはできますか?
1212..と続くものにはA、
11121112..と続くものにはBと置き換え、
AABBBのような文字列を作成することはできますか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★4 [Hitzeschleier★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- ボーナスで何買うか迷っている
- 刃牙でチンコでかそうなキャラといえば
- コウメ太夫のネタ考えたから評価してくれ
- トランプ、G7に代わるcore 5を発表 [805596214]
- こんな時間に起きてvip見てるやつって何者?
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
