!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に変えてしまえば通るけど、治すの大変だ・・・
56デフォルトの名無しさん (ワッチョイ 6bb2-PZTw)
2017/05/19(金) 12:26:18.38ID:Hh88K1uA0 関連してそうな情報を発見
https://blogs.msdn.microsoft.com/office_client_development_support_blog/2017/05/17/
とうとう本気で.xls形式を殺しに来たか
https://blogs.msdn.microsoft.com/office_client_development_support_blog/2017/05/17/
とうとう本気で.xls形式を殺しに来たか
57デフォルトの名無しさん (ワッチョイ 7f0a-3/HR)
2017/05/19(金) 12:27:06.53ID:OupscBB+0 >>55
なんていうか、まあ頑張れ
なんていうか、まあ頑張れ
58デフォルトの名無しさん (ワッチョイ 6b44-7DzV)
2017/05/19(金) 12:49:41.54ID:P+QgsC3b059デフォルトの名無しさん (ワッチョイ 6bb2-PZTw)
2017/05/19(金) 13:13:31.21ID:Hh88K1uA0 >>58
すまない。新規ブックでは検証していなかった。
問題無いことを確認
14.0.718.5000
16.0.7927.1024
コンパイルエラーを確認
15.0.4927.1002
16.0.8067.2115
なので、>>58の環境でも発生すると思う。
新規ブックで、
Module1に
Function ProcName(cel As Range) As Double
ProcName = cel.Value
End Function
Sub btn_Click()
MsgBox "click"
End Sub
を書いて、ブック上のシェイプのマクロにbtn_Click()を割り当てるとファイルを開いた瞬間にだけコンパイルエラーが起こるよ
上記URLによれば、モジュール範囲の定義なら起こるらしいので
Private 変数 As Workbook
Sub btn_Click()
MsgBox "click"
End Sub
でもダメぽ
解決策はAs Objectとするか、モジュールを切り分けるしかない。
すまない。新規ブックでは検証していなかった。
問題無いことを確認
14.0.718.5000
16.0.7927.1024
コンパイルエラーを確認
15.0.4927.1002
16.0.8067.2115
なので、>>58の環境でも発生すると思う。
新規ブックで、
Module1に
Function ProcName(cel As Range) As Double
ProcName = cel.Value
End Function
Sub btn_Click()
MsgBox "click"
End Sub
を書いて、ブック上のシェイプのマクロにbtn_Click()を割り当てるとファイルを開いた瞬間にだけコンパイルエラーが起こるよ
上記URLによれば、モジュール範囲の定義なら起こるらしいので
Private 変数 As Workbook
Sub btn_Click()
MsgBox "click"
End Sub
でもダメぽ
解決策はAs Objectとするか、モジュールを切り分けるしかない。
60デフォルトの名無しさん (ワッチョイ 6b44-7DzV)
2017/05/19(金) 13:33:37.37ID:P+QgsC3b061デフォルトの名無しさん (ワッチョイ 6bb2-PZTw)
2017/05/19(金) 13:52:53.66ID:Hh88K1uA0 >>60
全くもって仰る通り。
以前から.xlsmへの切り替えを勧めているが、なかなか全てを切り替えられなくてね。
各個人に持たせているファイルを差し替えろって言ってもメール無視されるし。
あと単純に.xlsmに変えてしまうと
・他のシステムが対応していないせいでxlsしか使えない。
・表の最大値が大きくなったお陰で、既存のマクロだと末端の列列まで処理するループが混ざっていて永久に処理が終わらない。
(そのくらいマクロ直せよ・・)
・ブックのリンクが貼ってあるせいで過去のエクセルファイル全てのリンクを修復しないといけない。
(作ったやつ誰だよ・・)
・データサイズの大きい「共有ブック」をxlsmに変えるととてつもなく重くなる。
(データとマクロ分離しろよ・・)
とか様々な理由があって切り替えが終わってない。
ツッコミどころ満載やで。
全くもって仰る通り。
以前から.xlsmへの切り替えを勧めているが、なかなか全てを切り替えられなくてね。
各個人に持たせているファイルを差し替えろって言ってもメール無視されるし。
あと単純に.xlsmに変えてしまうと
・他のシステムが対応していないせいでxlsしか使えない。
・表の最大値が大きくなったお陰で、既存のマクロだと末端の列列まで処理するループが混ざっていて永久に処理が終わらない。
(そのくらいマクロ直せよ・・)
・ブックのリンクが貼ってあるせいで過去のエクセルファイル全てのリンクを修復しないといけない。
(作ったやつ誰だよ・・)
・データサイズの大きい「共有ブック」をxlsmに変えるととてつもなく重くなる。
(データとマクロ分離しろよ・・)
とか様々な理由があって切り替えが終わってない。
ツッコミどころ満載やで。
62デフォルトの名無しさん (ワッチョイ 6b44-7DzV)
2017/05/19(金) 13:56:26.64ID:P+QgsC3b0 いい 切り替えの機会じゃん
xlsは もうまともに 使えません(キリッ
・・・・と言えたらいいねw
xlsは もうまともに 使えません(キリッ
・・・・と言えたらいいねw
63デフォルトの名無しさん (ワッチョイ 4a92-wIp5)
2017/05/19(金) 22:44:50.72ID:ELP3hVnQ0 変数宣言を一番上に書くと、
確認する時、スクロールで戻るのが面倒なんですが、
Excelなのに、上の方の画面を固定出来るという発想は無かったのでしょうか。
Excelなのに。
確認する時、スクロールで戻るのが面倒なんですが、
Excelなのに、上の方の画面を固定出来るという発想は無かったのでしょうか。
Excelなのに。
64デフォルトの名無しさん (ワッチョイ 46a5-88zL)
2017/05/19(金) 23:07:15.86ID:HsQ+il8a0 そんなことより行番号表示かと。
65デフォルトの名無しさん (ワッチョイ 068e-cZSU)
2017/05/19(金) 23:10:43.79ID:1s7BLiGf0 グローバルで別のモジュールに書いてウィンドウを並べるとか
66デフォルトの名無しさん (アークセー Sx03-sIut)
2017/05/19(金) 23:27:00.50ID:vYjNISl1x Excel VBAしかやったことない人が何だか勘違いしてるようだがそもそもVBEはExcelの機能ではないぞ
67デフォルトの名無しさん (ワッチョイ ca3c-J3Da)
2017/05/19(金) 23:34:30.47ID:vnM/uOfn068デフォルトの名無しさん (ワッチョイ 0bcd-icqO)
2017/05/19(金) 23:42:30.09ID:FnbaGtrQ069デフォルトの名無しさん (ワッチョイ 4a92-wIp5)
2017/05/19(金) 23:49:13.07ID:ELP3hVnQ070デフォルトの名無しさん (ワッチョイ 0bcd-icqO)
2017/05/19(金) 23:52:43.48ID:FnbaGtrQ0 >>69
何の変数ってのがよく分からんのだけど、
Dim Example As Long: Example = 1
みたいに宣言と代入を上の方でしてるって話?
ローカルウインドウとかその他機能でなんとかならんの?
何の変数ってのがよく分からんのだけど、
Dim Example As Long: Example = 1
みたいに宣言と代入を上の方でしてるって話?
ローカルウインドウとかその他機能でなんとかならんの?
71デフォルトの名無しさん (ワッチョイ 068e-xJM8)
2017/05/19(金) 23:54:11.19ID:1s7BLiGf0 中身のわからない変数名を付けるからそんなアホな事をせにゃならんようになるんだ
似たような変数名が多すぎてややこしいならfunctionに分ける等、予め余計な手間が発生しないようにするんだ
似たような変数名が多すぎてややこしいならfunctionに分ける等、予め余計な手間が発生しないようにするんだ
72デフォルトの名無しさん (アークセー Sx03-JCxV)
2017/05/19(金) 23:59:18.39ID:dZkjjWfrx >>63
書かなきゃよい
書かなきゃよい
73デフォルトの名無しさん (ワッチョイ fa61-iXcy)
2017/05/20(土) 00:21:30.52ID:foz/Iffu074デフォルトの名無しさん (ワッチョイ caa6-kvD5)
2017/05/20(土) 08:57:37.77ID:k9L+DwNA0 >>63は赤の他人が書いたクソ長いコードを解析させられている気の毒な人だ
と好意的に解釈しておこう
と好意的に解釈しておこう
75デフォルトの名無しさん (ワッチョイ 6731-N4F7)
2017/05/20(土) 09:20:18.91ID:5sPtJFYn0 hoge param1:=xxx, param2:=yyy みたいな書き方に慣れないんですが
dummy = hoge(xxx, yyy) とかではダメな理由ってあるんでしょうか?
dummy = hoge(xxx, yyy) とかではダメな理由ってあるんでしょうか?
76デフォルトの名無しさん (ワッチョイ 068e-6Kgr)
2017/05/20(土) 09:33:47.65ID:TX7Bd0Me0 >>75
別にどっちでもいい。好み
ファイルの保存なんかもこの方が見やすいと思う
例えば保存時で比べる
ファイル形式を定数で打つと分かり辛い
Thisworkbook.SaveAs("C:\foo",43)
こう書けばフォーマットなんだな、ということが見てすぐにわかると思う
Thisworkbook.SaveAs Filename:="C:\foo",FileFormat:="43"
本当はこの方が良いけどね
Thisworkbook.SaveAs Filename:="C:\foo",FileFormat:="xlExcel9795"
他にも引数が大量にあるときやパラメータが複雑な時にわかりやすい。以下は見辛い
dummy = hoge(xxx, , , yyy, , ,zzz)
逆にsum()を
sum arg1:=xxx, arg2:=yyy
なんてすると読みづらいだけになる
と言ってる俺も保存の時ぐらいにしか使わないけどね
別にどっちでもいい。好み
ファイルの保存なんかもこの方が見やすいと思う
例えば保存時で比べる
ファイル形式を定数で打つと分かり辛い
Thisworkbook.SaveAs("C:\foo",43)
こう書けばフォーマットなんだな、ということが見てすぐにわかると思う
Thisworkbook.SaveAs Filename:="C:\foo",FileFormat:="43"
本当はこの方が良いけどね
Thisworkbook.SaveAs Filename:="C:\foo",FileFormat:="xlExcel9795"
他にも引数が大量にあるときやパラメータが複雑な時にわかりやすい。以下は見辛い
dummy = hoge(xxx, , , yyy, , ,zzz)
逆にsum()を
sum arg1:=xxx, arg2:=yyy
なんてすると読みづらいだけになる
と言ってる俺も保存の時ぐらいにしか使わないけどね
77デフォルトの名無しさん (ワッチョイ 6731-N4F7)
2017/05/20(土) 09:53:58.83ID:5sPtJFYn0 ありがとうございます
事務仕事でExcelVBAをいじる必要があったんだけど
大昔の非構造化BASICやFORTRAN、Cなどの印象しかないので最近の言語は抽象的すぎて分かりにくい
事務仕事でExcelVBAをいじる必要があったんだけど
大昔の非構造化BASICやFORTRAN、Cなどの印象しかないので最近の言語は抽象的すぎて分かりにくい
78デフォルトの名無しさん (ワッチョイ ca3c-J3Da)
2017/05/20(土) 10:13:55.47ID:I6OViHCS0 >>75
その名前じゃあまりメリットないけど引数の名前をちゃんとつけてたら分かりやすい
あと引数がたくさんある場合に後ろの方の引数を指定したい時とか
Workbook.Open FileName:="test.xlsx", AddToMru:=True
その名前じゃあまりメリットないけど引数の名前をちゃんとつけてたら分かりやすい
あと引数がたくさんある場合に後ろの方の引数を指定したい時とか
Workbook.Open FileName:="test.xlsx", AddToMru:=True
79デフォルトの名無しさん (スッップ Sdea-9e5p)
2017/05/20(土) 10:29:20.36ID:0mLljkpvd >>77
大昔のCって関数と最初の { の間に変数宣言するようなやつ?
大昔のCって関数と最初の { の間に変数宣言するようなやつ?
80デフォルトの名無しさん (ワッチョイ 6731-N4F7)
2017/05/20(土) 10:44:25.75ID:5sPtJFYn0 >>79
そんなやつ、カーニハンとリッチーの第1版、白いカバーの表紙のやつ
そんなやつ、カーニハンとリッチーの第1版、白いカバーの表紙のやつ
81デフォルトの名無しさん (ワッチョイ 6731-N4F7)
2017/05/20(土) 10:50:27.63ID:5sPtJFYn0 変数を宣言しただけでは領域が確保されず
値を代入しただけでプログラムが暴走するんだけど原因に思い当たらず3日間悩んだ挙句に挫折した
値を代入しただけでプログラムが暴走するんだけど原因に思い当たらず3日間悩んだ挙句に挫折した
82デフォルトの名無しさん (ワッチョイ 068e-kvD5)
2017/05/20(土) 10:54:07.27ID:TX7Bd0Me0 >>81
上で見たけど、vbaは内部的にかなり変な挙動をしている
newの時点ではメモリ領域は確保されず、初めてプロパティやメソッドにアクセスした段階でメモリ領域が確保される
また、
set foo = thisworkbook
set bar = thisworkbook
は、foo == barに「ならない」
fooとbarは常に違う参照が生成されるので、別扱いとなる
そのコードを教えてくれれば問題解決できると思う
というか後学のためにも見てみたい
上で見たけど、vbaは内部的にかなり変な挙動をしている
newの時点ではメモリ領域は確保されず、初めてプロパティやメソッドにアクセスした段階でメモリ領域が確保される
また、
set foo = thisworkbook
set bar = thisworkbook
は、foo == barに「ならない」
fooとbarは常に違う参照が生成されるので、別扱いとなる
そのコードを教えてくれれば問題解決できると思う
というか後学のためにも見てみたい
83デフォルトの名無しさん (ワッチョイ 068e-kvD5)
2017/05/20(土) 10:54:21.25ID:TX7Bd0Me0 newじゃないや、setか
84デフォルトの名無しさん (ワッチョイ cad4-PCQh)
2017/05/20(土) 11:19:48.33ID:nyexelOB0 日本語も変数として使えるからわかりやすい名前つければいい
85デフォルトの名無しさん (ササクッテロレ Sp03-qMse)
2017/05/20(土) 11:57:41.20ID:w41RCx9Yp 日本語は好き嫌い分かれるからなあ
俺は日本語が見易いけどさ
俺は日本語が見易いけどさ
86デフォルトの名無しさん (ワッチョイ 068e-6Kgr)
2017/05/20(土) 11:59:34.10ID:TX7Bd0Me0 google翻訳しながら英語変数使うぐらいなら、日本語使ったほうが絶対に良い
87デフォルトの名無しさん (ワッチョイ 4692-cm4/)
2017/05/20(土) 13:11:22.41ID:DWQm6waj0 Visual Basic Edtor って、単体じゃ入手できないよな?
しかもExcelのバージョン違えば使い物にならんヶ所出てくるし
ThisWorkbook だって、どの?に成るだろうし
Microsoft Script Editer じゃあるまいし、どう考えてもExcelの付属品っつー立ち位置だろ
Excelの「おまけ」機能に決定
Word とか Outlook とかバリエーションは在るにしても
しかもExcelのバージョン違えば使い物にならんヶ所出てくるし
ThisWorkbook だって、どの?に成るだろうし
Microsoft Script Editer じゃあるまいし、どう考えてもExcelの付属品っつー立ち位置だろ
Excelの「おまけ」機能に決定
Word とか Outlook とかバリエーションは在るにしても
88デフォルトの名無しさん (オイコラミネオ MM56-3/HR)
2017/05/20(土) 13:21:20.46ID:9VI8goCbM 根本的に勘違いしててワロタw
89デフォルトの名無しさん (ワッチョイ 6bd5-PZTw)
2017/05/20(土) 15:37:38.60ID:VKPh1Lah090デフォルトの名無しさん (オッペケ Sr03-sIut)
2017/05/20(土) 18:04:39.38ID:yKxdvQKVr 無知って凄いね
感心した
感心した
91デフォルトの名無しさん (ワッチョイ c6c8-TsZx)
2017/05/20(土) 18:24:24.01ID:KHEwJCpd092デフォルトの名無しさん (ワッチョイ 8a3c-86Y8)
2017/05/20(土) 18:58:10.02ID:E4Y2PkRr0 Excel VBA で Access と連携する業務システムって、ここの人達的にざっくりどう思いますか。社内システムの改良にアサインされてしまった。
93デフォルトの名無しさん (ワッチョイ c6c8-TsZx)
2017/05/20(土) 19:08:49.87ID:KHEwJCpd094デフォルトの名無しさん (ワッチョイ 8a3c-86Y8)
2017/05/20(土) 19:16:24.30ID:E4Y2PkRr095デフォルトの名無しさん (ササクッテロレ Sp03-PCQh)
2017/05/20(土) 19:18:51.52ID:bcgPDffLp >>92
良いんじゃね
良いんじゃね
96デフォルトの名無しさん (ワッチョイ 4aa8-PZTw)
2017/05/20(土) 19:51:15.58ID:nuBqrdCz0 苦労するかどうか、VBA以外にもSQL知っておかないといけないような気もするけど…
97デフォルトの名無しさん (ワッチョイ 0bc8-3/HR)
2017/05/20(土) 20:11:15.06ID:SOOWfvsE0 なんでVBAでSQLが鬼門なのか、理由とかあるの?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性には共通点が [Hitzeschleier★]
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- 中国軍機がレーダー照射 小泉防衛大臣の説明に「矛盾している」中国外務省報道官が批判 [♪♪♪★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 ★2 [Hitzeschleier★]
- 【DAZN】フォーミュラGP【F1 2 3 SF P】Lap1828
- 競輪実況★1625
- とらせん
- 【F1TVPro】フォーミュラGP【F1 2 3 SF P】Lap1828
- 【D専】
- こいせん 全レス転載禁止
- 【実況】博衣こよりのえちえちスーパーダンガンロンパ7🧪
- 【乞食速報】プロクオリティ ビーフカレー 96食 4262円 [268244553]
- ド田舎に一軒だけあるコンビニ←これめちゃくちゃ面白コンテンツだよな
- 年末のvip芋煮会って何日だっけ?
- 【速報】福島原発でキセノン135が検出されてる模様、再臨界か [668970678]
- 【速報】テレビ朝日本社から20代〜30代の男性が飛び降り自殺して死亡 東京・六本木 [597533159]
