!extend:checked:vvvvv:1000:512
スレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part47 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1489557874/
※関連スレ
VBAなんでも質問スレ Part2
http://echo.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
http://echo.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 125
http://echo.2ch.net/test/read.cgi/bsoft/1481369538/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
Excel VBA 質問スレ Part48 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 6f8e-Fc1g)
2017/05/16(火) 08:24:45.78ID:iIGA/64l02デフォルトの名無しさん (アウアウカー Sa67-vcg+)
2017/05/16(火) 10:48:12.64ID:Gxqu5M/Va 前スレでScreenUpdating=Falseしない派いる?ってのがあったけど、コード書いてる時は基本しない。
あれで速くなったっていうのは基本コードが悪いだろ。
あれで速くなったっていうのは基本コードが悪いだろ。
3デフォルトの名無しさん (スップ Sd9f-F59I)
2017/05/16(火) 11:05:20.21ID:J7MMoyEGd4デフォルトの名無しさん (スップ Sd9f-F59I)
2017/05/16(火) 11:06:03.77ID:J7MMoyEGd 連続typo失礼
5デフォルトの名無しさん (ワッチョイ 934c-8ulf)
2017/05/16(火) 11:08:01.35ID:l+zZTb7Y0 ScreenUpdatingの有無で速度が左右されるのは、セルに値を入れる等して描画に影響する操作をする場合だけだから、
結果を吐き出す際に一度だけしかセルにアクセスしないとかなら要らないね。
結果を吐き出す際に一度だけしかセルにアクセスしないとかなら要らないね。
6デフォルトの名無しさん (オッペケ Sr27-fj9k)
2017/05/16(火) 12:41:08.19ID:6Q26Nvh7r >>5
表示の更新してんなら要るわ
あとエクセルでセルに値を書き込むことを「吐き出す」と言うのは
素人が玄人の真似して訳もわからずそれっぽい言葉使ってみました感が強すぎる
分かる人が見ればコイツ馬鹿だなってバレバレだからやめた方がいいぞ
表示の更新してんなら要るわ
あとエクセルでセルに値を書き込むことを「吐き出す」と言うのは
素人が玄人の真似して訳もわからずそれっぽい言葉使ってみました感が強すぎる
分かる人が見ればコイツ馬鹿だなってバレバレだからやめた方がいいぞ
7デフォルトの名無しさん (ドコグロ MM5f-FKuM)
2017/05/16(火) 12:57:55.01ID:fevd2QwgM 自称玄人 w
8デフォルトの名無しさん (スップ Sd9f-F59I)
2017/05/16(火) 13:01:13.42ID:J7MMoyEGd つまり量によるわけだな。
9デフォルトの名無しさん (スップ Sd9f-F59I)
2017/05/16(火) 13:03:31.49ID:J7MMoyEGd つまり量によるわけだな。
ScreenUpdating = False しないと辛くなってきたら、それは
ワークシートで管理するデータや式が多くなりすぎたという警告とみなすスタイルが成り立つ。
ScreenUpdating = False しないと辛くなってきたら、それは
ワークシートで管理するデータや式が多くなりすぎたという警告とみなすスタイルが成り立つ。
10デフォルトの名無しさん (アウアウカー Sa67-vcg+)
2017/05/16(火) 14:23:33.68ID:Gxqu5M/Va11デフォルトの名無しさん (スップ Sd9f-F59I)
2017/05/16(火) 14:27:59.56ID:J7MMoyEGd12デフォルトの名無しさん (JP 0Hff-+8ye)
2017/05/16(火) 14:53:18.62ID:Ilchk1CoH 不毛
13デフォルトの名無しさん (ワッチョイ 934c-8ulf)
2017/05/16(火) 14:57:07.86ID:l+zZTb7Y0 >>9
ワークシートから値を取り込んだり、値をワークシートに書き出したりっていう処理は、
Rangeを使えば一括して行うことが出来るので、データ量はそこまで問題にならない。
どちらかというと罫線、色、数式みたいな一括処理しづらいものが問題で、
ScreenUpdating次第で処理に大きく差が出る。
こういったものは保守も面倒なので手作業で代替出来ないかとか考えるといいかもね。
ワークシートから値を取り込んだり、値をワークシートに書き出したりっていう処理は、
Rangeを使えば一括して行うことが出来るので、データ量はそこまで問題にならない。
どちらかというと罫線、色、数式みたいな一括処理しづらいものが問題で、
ScreenUpdating次第で処理に大きく差が出る。
こういったものは保守も面倒なので手作業で代替出来ないかとか考えるといいかもね。
14デフォルトの名無しさん (ワッチョイ d30a-8Y85)
2017/05/16(火) 15:11:19.05ID:tw+4NZDm0 オートフィルタかけた後のデータの、特定の1列だけを配列に格納したいのですが、何かいい方法はないでしょうか
15デフォルトの名無しさん (ワッチョイ 934c-8ulf)
2017/05/16(火) 16:37:32.48ID:l+zZTb7Y0 >>14
SpecialCells(xlCellTypeVisible)で可視状態にあるセルだけを取り出せる。
SpecialCells(xlCellTypeVisible)で可視状態にあるセルだけを取り出せる。
16デフォルトの名無しさん (ワッチョイ 6f8e-SU9n)
2017/05/16(火) 19:14:29.63ID:iIGA/64l0 クラスモジュールって使いますか?
大抵のことはfornext、foreachで済んでしまうのですが、vbaでクラスを使ったほうが便利なのでしょうか
大抵のことはfornext、foreachで済んでしまうのですが、vbaでクラスを使ったほうが便利なのでしょうか
17デフォルトの名無しさん (ササクッテロレ Sp27-EjkN)
2017/05/16(火) 19:31:35.09ID:qhacRso4p >>16
必要かどうかってことなら必要ない
でも大がかりなの作るなら使って整理したほうがやりやすいんじゃないのかな
for文と比較する感覚がいまいち伝わってないから的はずれならごめんなさい
関数とか配列とかと比較するならわからなくもないんだけれど
必要かどうかってことなら必要ない
でも大がかりなの作るなら使って整理したほうがやりやすいんじゃないのかな
for文と比較する感覚がいまいち伝わってないから的はずれならごめんなさい
関数とか配列とかと比較するならわからなくもないんだけれど
18デフォルトの名無しさん (ワッチョイ 6f8e-yN95)
2017/05/16(火) 19:45:30.76ID:iIGA/64l019デフォルトの名無しさん (ワッチョイ 53c7-00IQ)
2017/05/16(火) 19:48:36.06ID:YL1OfOAE0 >>10
悪いけど素人しか使わんわそんな恥ずかしい言い方w
悪いけど素人しか使わんわそんな恥ずかしい言い方w
20デフォルトの名無しさん (ワキゲー MM5f-cKkg)
2017/05/16(火) 19:53:23.03ID:Y/+V2TLHM 言い方はどーだっていいんだよ
伝われば
伝われば
21デフォルトの名無しさん (アウアウカー Sa67-vcg+)
2017/05/16(火) 20:28:49.31ID:rEbfD8DUa22デフォルトの名無しさん (ワッチョイ 7f92-igRy)
2017/05/16(火) 21:04:28.77ID:ORpNRMoi0 Dim スコーン As New Class
↑このスコーン自体を引数に使うことは出来ますか?
スコーン.Name =
↑このスコーン自体を引数に使うことは出来ますか?
スコーン.Name =
23デフォルトの名無しさん (ワッチョイ 7f92-igRy)
2017/05/16(火) 21:05:07.95ID:ORpNRMoi0 スコーン.Name = "スコーン" とか書きたんくないですんけど。
24デフォルトの名無しさん (アークセー Sx27-YrL9)
2017/05/16(火) 21:12:00.81ID:qp8pXuJpx25デフォルトの名無しさん (ワッチョイ 7f92-igRy)
2017/05/16(火) 21:38:51.33ID:ORpNRMoi026デフォルトの名無しさん (アークセー Sx27-YrL9)
2017/05/16(火) 21:44:47.11ID:FLRqiZ6lx27デフォルトの名無しさん (ワッチョイ 6f8e-yN95)
2017/05/16(火) 21:48:13.03ID:iIGA/64l0 PHPならget_class()なんてそのまんまなものがあるんだけどね
vbaには無いっぽいな
vbaには無いっぽいな
28デフォルトの名無しさん (ワッチョイ 53c7-00IQ)
2017/05/16(火) 21:54:30.99ID:YL1OfOAE029デフォルトの名無しさん (ワッチョイ 7fa6-SU9n)
2017/05/16(火) 21:59:56.08ID:wnIq1TKW0 そんな法則は聞かないな
30デフォルトの名無しさん (アークセー Sx27-YrL9)
2017/05/16(火) 22:19:15.46ID:FLRqiZ6lx31デフォルトの名無しさん (ワッチョイ c3d5-8ulf)
2017/05/16(火) 22:30:24.74ID:H5+sVhHM0 なんで目的を聞くやつにレスを返してはいけないの?
質問の意図を汲もうとしているかもよ?
質問の意図を汲もうとしているかもよ?
32デフォルトの名無しさん (アークセー Sx27-YrL9)
2017/05/16(火) 22:33:38.25ID:FLRqiZ6lx33デフォルトの名無しさん (ワッチョイ 6f8e-sSiL)
2017/05/16(火) 22:35:06.66ID:iIGA/64l034デフォルトの名無しさん (ワッチョイ 53c7-00IQ)
2017/05/16(火) 22:44:02.80ID:YL1OfOAE035デフォルトの名無しさん (アークセー Sx27-YrL9)
2017/05/16(火) 22:49:11.64ID:FLRqiZ6lx36デフォルトの名無しさん (ワッチョイ 7fa6-SU9n)
2017/05/17(水) 00:01:38.90ID:qRwApybV0 >>33
制御の向きが逆だよなあ
制御の向きが逆だよなあ
37デフォルトの名無しさん (アークセー Sx27-Zgtb)
2017/05/17(水) 00:23:20.25ID:sfPoWe8nx TypeName関数で自作クラス名って取り出せないんだっけ?
38デフォルトの名無しさん (ワッチョイ 6f8e-nvoP)
2017/05/17(水) 00:32:22.34ID:9uxtifvV0 >>37
それはできるけど、Meがない
Meがあればなんとでもできる
標準モジュール
Sub foo()
Set c = New Class1
'これはできる
Debug.Print TypeName(c)
End Sub
'クラスモジュール
Private Sub Class_Initialize()
'これができない
Debug.Print Me.TypeName
End Sub
それはできるけど、Meがない
Meがあればなんとでもできる
標準モジュール
Sub foo()
Set c = New Class1
'これはできる
Debug.Print TypeName(c)
End Sub
'クラスモジュール
Private Sub Class_Initialize()
'これができない
Debug.Print Me.TypeName
End Sub
39デフォルトの名無しさん (ワッチョイ 8344-irHX)
2017/05/17(水) 00:39:06.93ID:dws00LGS0 クラス内部で つかうんなら
これじゃいかんのか?
Debug.Print TypeName(Me)
これじゃいかんのか?
Debug.Print TypeName(Me)
40デフォルトの名無しさん (ワッチョイ 6f8e-nvoP)
2017/05/17(水) 00:45:43.01ID:9uxtifvV0 >>39
すまん、いけた
解決!
標準モジュール
Sub foo()
Set bar = New Class1
Debug.Print bar.get_name()
End Sub
'クラスモジュール
Public name
Private Sub Class_Initialize()
name = TypeName(Me)
End Sub
Function get_name()
Debug.Print Me.name
End Function
すまん、いけた
解決!
標準モジュール
Sub foo()
Set bar = New Class1
Debug.Print bar.get_name()
End Sub
'クラスモジュール
Public name
Private Sub Class_Initialize()
name = TypeName(Me)
End Sub
Function get_name()
Debug.Print Me.name
End Function
41デフォルトの名無しさん (アークセー Sx27-Zgtb)
2017/05/17(水) 00:51:22.92ID:sfPoWe8nx 解決やな
42デフォルトの名無しさん (ワッチョイ 7f92-igRy)
2017/05/17(水) 17:27:48.02ID:mwqvXh9q043デフォルトの名無しさん (JP 0Hff-+8ye)
2017/05/17(水) 17:53:56.84ID:GJ9WSlKVH44デフォルトの名無しさん (ワッチョイ 53c7-00IQ)
2017/05/17(水) 20:29:29.04ID:G7cUCqPy0 俺は今重要な判断を下した
お前らは事務のねーちゃんよりスキルが低い
少なくともうちの事務のねーちゃんより低い事は確実だ
お前らは事務のねーちゃんよりスキルが低い
少なくともうちの事務のねーちゃんより低い事は確実だ
45デフォルトの名無しさん (ワッチョイ 6f8e-yN95)
2017/05/17(水) 21:05:07.82ID:9uxtifvV046デフォルトの名無しさん (ワッチョイ aaa6-kvD5)
2017/05/18(木) 06:43:55.44ID:PgOUGGac0 24歳
女
マイクロソフトジャパン勤務
女
マイクロソフトジャパン勤務
47デフォルトの名無しさん (アークセー Sx13-JCxV)
2017/05/18(木) 08:36:51.83ID:7Fv0UmYNx48デフォルトの名無しさん (ワッチョイ eef3-8cHL)
2017/05/18(木) 14:52:51.70ID:5nCvEgDF0 Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Address
Case "$A$1"
If Not IsNumeric(Target.Value) Or Target.Value = "" Then
Exit Sub
Range("B1:B9").Copy Range("B2")
Range("B1").Value = Range("A1").Value
Target.Select
End Select
End Sub
このコードの意味教えてくださいー
Select Case Target.Address
Case "$A$1"
If Not IsNumeric(Target.Value) Or Target.Value = "" Then
Exit Sub
Range("B1:B9").Copy Range("B2")
Range("B1").Value = Range("A1").Value
Target.Select
End Select
End Sub
このコードの意味教えてくださいー
49デフォルトの名無しさん (ワッチョイ 7f0a-3/HR)
2017/05/18(木) 15:34:33.70ID:ZtOQ2Qac0 まずは実行してみたらどうだ
50デフォルトの名無しさん (ワッチョイ 7e75-hgKb)
2017/05/18(木) 17:11:10.34ID:d+oDyp660 Private Sub Worksheet_Change(ByVal Target As Range)
ここに、Subの処理を定義する
End Sub
Select Case Target.Address
ここに、Caseの処理を定義する
End Select
Select Case Target.Address
// Target.Address が、"$A$1"なら
Case "$A$1"
// Target.Value が数値ではない、または、空文字列なら、Subを抜ける
If Not IsNumeric(Target.Value) Or Target.Value = "" Then
Exit Sub
// copy
Range("B1:B9").Copy Range("B2")
// 代入
Range("B1").Value = Range("A1").Value
// 選択?
Target.Select
End Select
ここに、Subの処理を定義する
End Sub
Select Case Target.Address
ここに、Caseの処理を定義する
End Select
Select Case Target.Address
// Target.Address が、"$A$1"なら
Case "$A$1"
// Target.Value が数値ではない、または、空文字列なら、Subを抜ける
If Not IsNumeric(Target.Value) Or Target.Value = "" Then
Exit Sub
// copy
Range("B1:B9").Copy Range("B2")
// 代入
Range("B1").Value = Range("A1").Value
// 選択?
Target.Select
End Select
51デフォルトの名無しさん (ワッチョイ 268e-kvD5)
2017/05/18(木) 19:06:48.56ID:hKe3x/Mw052デフォルトの名無しさん (オッペケ Sr13-sIut)
2017/05/18(木) 19:21:07.71ID:f5T5khCgr53デフォルトの名無しさん (オイコラミネオ MM76-88zL)
2017/05/18(木) 22:27:14.87ID:EwzTzSyyM マウスポインターの移動量かマウスのスクロール量を検知って出来ますか?
54デフォルトの名無しさん (ワッチョイ da61-iXcy)
2017/05/18(木) 23:31:41.56ID:fbyfCIXE0 form上の話ならMouseMoveイベント使えばなんとかなるんじゃね?
form以外でならwin32api(GetCursorPosとか)を駆使すれば
form以外でならwin32api(GetCursorPosとか)を駆使すれば
55デフォルトの名無しさん (ワッチョイ 6bb2-PZTw)
2017/05/19(金) 12:10:12.11ID:Hh88K1uA0 最新版のExcelで、ファイルを開いた直後にだけコンパイルエラーが出るようになったから絶対更新しないほうがいいぞ
エラーが出るのは
Function ProcName(cel As Range) As Double
とか、パラメータにAs Rangeを持つところみたいで
一応As Objectに変えてしまえば通るけど、治すの大変だ・・・
エラーが出るのは
Function ProcName(cel As Range) As Double
とか、パラメータにAs Rangeを持つところみたいで
一応As Objectに変えてしまえば通るけど、治すの大変だ・・・
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- 【山形】クマ駆除で誤射した猟友会隊員に町が1663万円請求へ...弾当たり男性大けが2023年 小国町 [nita★]
- トランプ、G7に代わるcore 5を発表 [805596214]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 【悲報】日本共産党、ツイッター速報にブチギレ法的措置WWWWWWWWWWWWWWWWWWWWWWWWWWWW [935793931]
- 木曜日のんなっしょい❗(・o・🍬)仕放題スレ🏡
- 性欲強すぎてほぼ毎日会社のオフィスでシコってるんやけど、これって病気なん?
- 【悲報】麻生太郎さん、オムツをしていた。晋さん…ここにいたんだね… [731544683]
