Excel VBA 質問スレ Part45 [無断転載禁止]©5ch.io
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん
2017/01/03(火) 02:51:16.56ID:9Y8iTik6コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part44
http://echo.2ch.net/test/read.cgi/tech/1479421482/
※関連スレ
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/
0810デフォルトの名無しさん
2017/02/16(木) 11:33:37.99ID:+lEx52V9なんでそんなややこしいこと考えるかな
単に関数の戻り値の型を配列にするだけでしょ
VBA 配列を返す関数
でググれよ
0811デフォルトの名無しさん
2017/02/16(木) 11:41:36.19ID:fAEKNUKMだって>>802が「配列を型とせよ」って言うからさ。
Variantは配列専用ではないし、明示的な配列型を作れって意味に捉えた。
0812デフォルトの名無しさん
2017/02/16(木) 12:18:13.14ID:7EemdXzw俺のせいにされても困る
言いたいことは810の通りだよ
0813デフォルトの名無しさん
2017/02/16(木) 12:25:37.98ID:INRkCvNU議論の前提条件が食い違ってるんだけどさ、
肝心なのはいじれるいじれないの問題じゃなくていじって良いか悪いかっていう所であって
俺の想定している相手なら「結果がどうなるかわからないものはいじらない」のよ。
それがマクロであれ入力規則であれ。
もちろん、分かっててやるなら入力規則だろうがマクロだろうが好きにすればいいけど、
結果も分からずにいじっちゃうのはただのバカでしょ。
数値を要求するセルに誤って文字列を入れちゃうような人は不注意な人だけど、
故意ではないだろうから
そういう人の為に入力規則で間違った型の値を入れられないようにしておく
っていう所までが俺の言っている想定の範囲。
でもその入力規則を書き換えちゃうっていうのは不注意じゃなくて故意だから
そのレベルの相手が結果を考慮せずにやってるとしたらこっちがどんな対策したっていみないよね、っていってるの。
そこに相手のスキルレベルの差なんて大した問題ではないと思うんだ。
実際、俺の職場じゃvbeでの編集ぐらいは誰でも出来るけど、
他人の書いたコードなんて不用意にいじらないし、それは入力規則でも同様。
0814デフォルトの名無しさん
2017/02/16(木) 12:26:10.91ID:DbYeWqRP自分用に使うなら最終的に動けば良い、ただし他人の作ったマクロの引継だけは勘弁
0815デフォルトの名無しさん
2017/02/16(木) 12:26:14.76ID:zFIbZFKZ2ちゃんの恥は書き捨てw
0816デフォルトの名無しさん
2017/02/16(木) 12:36:03.92ID:QDmfNxD1普通にDoubleで返しちゃあかん理由あるの
0817デフォルトの名無しさん
2017/02/16(木) 12:40:07.65ID:b6l+qNT8それを確定するんが設計ちゃうんか?(´・ω・`)
0818デフォルトの名無しさん
2017/02/16(木) 12:40:09.54ID:W0y5+uWSこの例はまさか整数と実数とかいうわけ?
説明して
0819デフォルトの名無しさん
2017/02/16(木) 12:40:30.66ID:fAEKNUKMああ、「配列を型とせよ」ってのは単に「配列型とせよ」って意味か!悪い悪いw
0820デフォルトの名無しさん
2017/02/16(木) 12:43:18.64ID:+lEx52V9だから戻り値の型を配列にすればいいだろ
Function A() As Integer()
...
End Function
ってやるだけだぞ
0821デフォルトの名無しさん
2017/02/16(木) 12:46:11.45ID:QDmfNxD10822デフォルトの名無しさん
2017/02/16(木) 12:46:17.95ID:fAEKNUKM正しく設計するならGenericとかが必要になる。
3種類の型に対応する関数を3通り同じ名前で作れれば解決するけど、VBAではVariantになっちゃう。
0823デフォルトの名無しさん
2017/02/16(木) 12:47:22.08ID:fAEKNUKM>>819
0824デフォルトの名無しさん
2017/02/16(木) 12:49:23.78ID:+lEx52V9実際にやってみればわかる
>>791 みたいなのはわりと普通にいるけど VBE でコード改編する奴なんて見たことない
0825デフォルトの名無しさん
2017/02/16(木) 12:50:48.75ID:7EemdXzw単純なことを複雑に考えても良いこと無いよ
0826デフォルトの名無しさん
2017/02/16(木) 13:00:41.88ID:fAEKNUKMじゃあ引数 x が
・スカラー
・1次元配列
・2次元配列
で処理を分岐する関数をどう書く?
ByRef x As Variant とするしかないでしょ。
0827デフォルトの名無しさん
2017/02/16(木) 13:07:57.39ID:QDmfNxD1ひとつの関数にまとめてるのに無理があるんじゃね?
そこが設計なんじゃね?
0828デフォルトの名無しさん
2017/02/16(木) 13:15:59.12ID:fAEKNUKM内部で分岐した先の処理をPrivateな下請け関数3つに分けるのは正しいと思う。
でもユーザー(関数をライブラリとして呼び出すプログラマ)向けのPublic関数としてはひとつであって欲しいよね。
0829デフォルトの名無しさん
2017/02/16(木) 13:20:17.99ID:QDmfNxD1そういう要望というか、仕様としてそういうもの作れってことならそうなるね
でも苦肉の策であることは間違いないと思うが
返り値が違う→用途が違う、だろ?
0830デフォルトの名無しさん
2017/02/16(木) 13:22:32.18ID:gZtBZE12ど素人はそもそも変数定義せんのちゃう?
# 宣言無し許容がデフォルトやし
0831デフォルトの名無しさん
2017/02/16(木) 13:22:32.42ID:INRkCvNU君の周りの事なんて一般的な前提には出来ないっていうか、
俺だったらvbeでも改変する(勿論、全部分かった上でなら、というのが前提条件だけど。)し、
わからないのなら下手にいじらない。
0832デフォルトの名無しさん
2017/02/16(木) 13:37:58.16ID:ha+qjoA8???
ユーザー定義型配列とか普通によくあるだろ。
0833デフォルトの名無しさん
2017/02/16(木) 13:41:53.03ID:squjHSRZなんの説明を求められているのかわからない。
それはともかく、ExcelのビルトインオブジェクトのプロパティがVariantだらけだから、
そもそもが、Variantを排除しようというのが無理筋。
むしろ、Variantがデフォルトで、型を明示しないと動かないようなときだけそうする
という流派もあってもいい。
0834デフォルトの名無しさん
2017/02/16(木) 13:42:48.05ID:ha+qjoA8それを含めて工ラ一処理作るだろ。
ただし、それはそのマクロの使用環境を考える。
広く一般的に使われることを想定するならきちんとエラー処理を作る。
でも俺の場合は殆どの場合、入力規則が無い前提でしかもVariantを使わないように作るね。
0835デフォルトの名無しさん
2017/02/16(木) 13:45:06.19ID:+lEx52V9> 君の周りの事なんて一般的な前提には出来ないっていうか、
そのまま返すよ
そもそも改変して何をするつもりなんだよ w
0836デフォルトの名無しさん
2017/02/16(木) 13:58:35.66ID:INRkCvNUだからこそその辺を論点にはしていない。
最初から言ってるように、
結果も把握できない改変を伴うような事をしでかす連中相手には
何をやっても無駄だと言っている。
0837デフォルトの名無しさん
2017/02/16(木) 15:02:37.01ID:fAEKNUKM???
ユーザー定義型配列を受け入れる関数なんてあらかじめ作っておくことはできないから
そんなもん対応範囲外だろ。
0838デフォルトの名無しさん
2017/02/16(木) 16:46:11.40ID:ha+qjoA8あのさあ、何言ってんの?
ユーザー定義型をググって来い。
Cとかで言われる構造体だよ。
話にならん。
0839デフォルトの名無しさん
2017/02/16(木) 16:58:09.82ID:fAEKNUKMユーザー定義型と>>826の問題にいったい何の関係があるのかと
頭大丈夫?
0840デフォルトの名無しさん
2017/02/16(木) 17:05:09.07ID:squjHSRZいいかげん、お前の「正しい設計論」は聞き飽きた
そろそろ黙ってくれる?
0841デフォルトの名無しさん
2017/02/16(木) 17:36:38.86ID:ha+qjoA8ああ、そもそもの>>826が意味不明だった。
ようやっと意味が分かった。
単純に引数×は配列でOKなのにできないようなこと言うからこんがらがる
Function Hoge(strFuga() As String) As String()
End Function
入れるものが配列でない場合は呼び出し側で1個の配列にする。
Dim strHoge(0) As String
Dim strRet() As String
strHoge(0)="hogehoge"
strRet=Hoge(strHoge)
だったかな。
スマホからだから少し違ってるかもしれんが、こんなん、普通にできるだろ。
0842デフォルトの名無しさん
2017/02/16(木) 17:47:04.29ID:6YRpUZ/n元はといえば全部Variantでやれないやつはプログラム組むのが下手とかよくわからんこと言うやつがいたのが発端だし論点ずれてきてるね
0843デフォルトの名無しさん
2017/02/16(木) 18:31:43.04ID:SiA9A9XV馬鹿は何でもかんでもVaruant
0844デフォルトの名無しさん
2017/02/16(木) 18:41:29.77ID:7EemdXzw0845デフォルトの名無しさん
2017/02/16(木) 19:06:06.30ID:eA7r2zui元の検索キーワード: Varuant
グーグル先生すげえw
0846デフォルトの名無しさん
2017/02/16(木) 19:15:18.59ID:C8BNWAf7ポリモーフェィックな動作が要求されているならインターフェースを使う
Variantを強要するAPIを使うときにVariantから型付きに変換(あるいはラップ)するときにのみVariantを使う
常識的な職業プログラマならこれが正解
品質を要求されないアマチュアならどうだっていいよ
ただし本職とは極力関わらないでくれ
0847デフォルトの名無しさん
2017/02/16(木) 19:16:41.76ID:eA7r2zui>ループ用の変数はループに入る時点でロックされて型が決定
どこ情報で、ロックってどういう事をいってるんだ
Sub test()
Dim i As Variant
For i = CInt(1) To 3
Debug.Print VarType(i), i
i = CLng(i)
Debug.Print VarType(i), i
i = CStr(i)
Debug.Print VarType(i), i
Next
End Sub
0848デフォルトの名無しさん
2017/02/16(木) 19:17:03.10ID:+lEx52V9なるほど >>790 の提案はお馬鹿だと言いたいのか w
0849デフォルトの名無しさん
2017/02/16(木) 19:19:22.42ID:+lEx52V9俺が言うのもなんだが相手するなよ...
0850デフォルトの名無しさん
2017/02/16(木) 19:22:37.22ID:K21kVzL8むしろお前以外に誰が言うんだよw
0851デフォルトの名無しさん
2017/02/16(木) 19:31:36.39ID:eA7r2zui職業プログラマ名乗るなら言語の特性も考慮してから発言してくれ
0852デフォルトの名無しさん
2017/02/16(木) 19:32:28.92ID:INRkCvNU何を言ってるのか論旨が不明なんだけど、既に>>813で書いた通りだよ
入力規則にせよユーザーフォームにせよ、不注意によるエラーを抑止するのが目的であって
それを意図的に改変されるような事にまで対処する気はないし必要も感じない。
だって、改変までするってことは過失じゃなくて故意だから。
まさか悪気もなく自分の行動の結果にも思い至ることがなく
ヤラカスんだったらもう救いようがないじゃん。
0853デフォルトの名無しさん
2017/02/16(木) 19:39:30.06ID:C8BNWAf7顧慮した上での結論だろ
VBAは割と簡単に型安全性を維持できる言語なのだからあえて型安全を破る理由はない
静的型付けがそもそも存在しないVBスクリプトとかなら仕方がないがそうじゃない
0854デフォルトの名無しさん
2017/02/16(木) 19:41:25.77ID:fAEKNUKMそうね。
典型的で単純な例は配列からのサーチかな
ある人は Long( )から数値を探す。べつの人は String( )から文字列を探す。次元も様々
Function searchFromAr(ByRef arr() As Variant, ByRef target As Variant) As Variant
って関数になると思うんだが。
返り値はarrが1次元なら最初に見つかった番号だから Long 値でいいけど、2次元の場合は(i, j)って形の配列返しになる。
どうしたって Variant だね。
プログラムの何割かはこういう汎用アルゴリズムが必要になるでしょ?
0855デフォルトの名無しさん
2017/02/16(木) 19:42:01.60ID:+lEx52V9お前がどう言おうと入力規則を解除する奴はいるし
コードまで改編する奴は見たことない
それなりの規模の会社で実務をやってりゃ普通に経験する
0856デフォルトの名無しさん
2017/02/16(木) 19:45:20.46ID:+lEx52V9> ある人は Long( )から数値を探す。べつの人は String( )から文字列を探す。
別々の関数にすればいいだけ
あと配列の次元って取得できるんだっけ?
0857デフォルトの名無しさん
2017/02/16(木) 19:45:54.20ID:eA7r2zui>普通に型付きで問題ないなら型付きを使う
これには同意するけど
それ以外を本気で言ってるならVBA使うのやめた方がいいよ
Dim x As Integer
x = x + "2"
Debug.Print x
VBAの型安全なんてこんなもんだよ
0858デフォルトの名無しさん
2017/02/16(木) 19:50:00.85ID:MMs4mAvCだね。コードなんかさっぱりわからんってのが大多数だから。
たまに気まぐれでメンドくせえ事を手入力で延々やってる同僚に
「これに入力してこのボタンを押すとすぐ終わるぞ、試してみろ」と作ってやる事があるが
まず間違いなく礼より「どこで拾ったの?」という反応が返ってくるw
実務で即使えるようなコードがネットで拾えるわけねえだろタコと思いながらも「あぁ、2ちゃんねるで」と答えてる。
0859デフォルトの名無しさん
2017/02/16(木) 19:50:09.27ID:C8BNWAf7その程度の認識かよ
クラス使ったことないのか?
0860デフォルトの名無しさん
2017/02/16(木) 19:51:51.28ID:fAEKNUKMそれは絶対に我慢ならない。(ユーザーが)
その手の関数ぜんぶ組み込み型のバリエーション実装するなんてやってられない。
0861デフォルトの名無しさん
2017/02/16(木) 19:55:01.54ID:fAEKNUKM職業プログラマが、なんて悪い冗談はやめてくれ
0862デフォルトの名無しさん
2017/02/16(木) 19:55:27.26ID:C8BNWAf7コード生成すりゃいいじゃん
まあジェネリックがあれば何もしなくても解決する話だけどな
マイクロソフト仕事しろ
0863デフォルトの名無しさん
2017/02/16(木) 19:57:00.26ID:mpwwbLVV0864デフォルトの名無しさん
2017/02/16(木) 20:00:46.97ID:eA7r2zuiVBAはオブジェクト指向言語としては非常に不完全で、型安全も非常に弱い
クラス使おうがどうしようが変わらんよ
まあ、俺のVBAの認識がその程度だって言うならそれでいいけど
>ポリモーフェィックな動作が要求されているならインターフェースを使う
>Variantを強要するAPIを使うときにVariantから型付きに変換(あるいはラップ)するときにのみVariantを使う
>VBAは割と簡単に型安全性を維持できる
なんて主張するお前のVBAに対する認識の方が俺には疑問だわ
まあ、議論しても分かりあえなさそうだからレス要らないよ
0865デフォルトの名無しさん
2017/02/16(木) 20:09:28.70ID:6YRpUZ/nそれに議論の余地はねえよ
引数と返り値がvariantでも関数の内部まで全部variantで処理するのかって言うね
>Dim x As Integer
>x = x + "2"
>Debug.Print x
>VBAの型安全なんてこんなもんだよ
これなんかは、「こういうコードを書かない」って言うのが大事なんであって書けるからオーケーってのは美意識無さすぎだろう
例え変数がvariantでも足し算するならキャストするだろ
0866デフォルトの名無しさん
2017/02/16(木) 20:10:59.51ID:+lEx52V9そもそも普通の人は開発タブの存在も知らんだろうし
まあ >>792 の職場はパスワード保護も突破されるようなスーパーハッカーだらけなんだろう w
0867デフォルトの名無しさん
2017/02/16(木) 20:11:24.07ID:INRkCvNU君がどう言おうがって、俺は改変する人がいないなんて一言も言ってないよ。
ただし、コードを改変する人が居ないとも思わないけど。
そして、それは論点ではない、ということならもう何度か言ってるんだが。
0868デフォルトの名無しさん
2017/02/16(木) 20:16:07.54ID:eA7r2zui別人?
そう言うコードを書いてOKだとは言ってないよ
とうぜんそう言うコードは書くべきではなくて、ちゃんとキャストすべきだけど
それはVBAが比較的型に安全だっていう発言への反論だからな
そういうコードをチェック出来るのが型に安全だって事じゃないのかと
0869デフォルトの名無しさん
2017/02/16(木) 20:16:28.83ID:+lEx52V9> それは絶対に我慢ならない。(ユーザーが)
> その手の関数ぜんぶ組み込み型のバリエーション実装するなんてやってられない。
必要分だけ実装すりゃいいだろ
Currency 型なんて一生使わない奴の方が多いだろうし
わがまなユーザーなら型云々より文字型だけど数値として検索してくれ("123" で検索したら "0123" もヒットする)って言うような要望の方が多い気がする
0870デフォルトの名無しさん
2017/02/16(木) 20:19:06.26ID:+lEx52V9> そして、それは論点ではない、ということならもう何度か言ってるんだが。
論点でないと言うならレスしなきゃいいんじゃね?
俺は論点をお前に合わせる気はないし義務もないから
0871デフォルトの名無しさん
2017/02/16(木) 20:21:29.95ID:7EemdXzw0872デフォルトの名無しさん
2017/02/16(木) 20:22:44.58ID:+lEx52V9完全じゃないってだけでしょ
程度問題なだけで他の言語にも似たような自動変換はあるし
0873デフォルトの名無しさん
2017/02/16(木) 20:29:25.58ID:6YRpUZ/nなんか横やりすまんな
型が安全じゃないからしっかり指定すべきってことが言いたい?
0874デフォルトの名無しさん
2017/02/16(木) 20:30:36.77ID:eA7r2zui完全じゃないのは当然
程度問題だけど、比較的安全か比較的危険かって話
暗黙の変換、それも縮小変換を実行前にチェックも禁止もできない以上、比較的危険だろって言うのが俺の主張だってだけ
0875デフォルトの名無しさん
2017/02/16(木) 20:34:37.84ID:/2/7lRCGもっとゆるゆるの言語もたくさんあるからそこに噛みついてもそれこそ不毛なだけだね
0876デフォルトの名無しさん
2017/02/16(木) 20:37:09.91ID:GoZ0ZsyN周りに理解者のいない一人社内SEとかやってると本当に色んなヤツに遭遇する。
まじで「余地があれば絶対にやる」ってレベルで問題が起きるし、設計・開発・保守・拡張を一人で回すからコードの一つ一つに拘ってられない。
「とにかくデータをぶち込めば動いてくれる」という関数がないと追っつかない状況も生まれる。
ワークシートに挿入する際にVariant型以外だと表示形式が変わるなど余計な作用を生んだり、関数が文字列で入るなんて事もある。
だからマクロを濫造する上で、Variant型のままで運用し、それが及ぼす影響を理解しておく方が有利という環境もある事を覚えておいてほしい。
0877デフォルトの名無しさん
2017/02/16(木) 20:42:31.73ID:/b6gNV/R0878デフォルトの名無しさん
2017/02/16(木) 20:50:13.72ID:6YRpUZ/n気の毒やね
0879デフォルトの名無しさん
2017/02/16(木) 20:51:15.05ID:eA7r2zui指定すべきがどうかは上で散々やってるけど、俺の意見としてはスタイルの問題でどっちでもいい
俺自身は俺の作るVBAプログラムで型を指定してないのは、手抜きだな
(Variant使うなって話じゃないよ。つかうなら原則As Variantで明示する)
ただ、意識して型指定するのはいいけど
指定したからといって言語側が型チェックをちゃんとやってくれると思うなよって話
0880デフォルトの名無しさん
2017/02/16(木) 20:53:55.17ID:7EemdXzw0881デフォルトの名無しさん
2017/02/16(木) 20:54:30.77ID:INRkCvNUいや、改変云々を論点にしたいならそれでもいいけどさ、
それでどうなるの?
マクロなら改変されなくて入力規則は改変されるっていうのは
個人の感想に過ぎないから証明のしようは無いよ。
このスレでアンケートでも取る?
ほぼ全員がVBA使ってるこのスレじゃ意味無いと思うけど。
0882デフォルトの名無しさん
2017/02/16(木) 21:00:36.04ID:6YRpUZ/nおっしゃる通りである
しかしまあ、変数に入れる値の型が明らかな場合はちゃんと指定すべきだと思うけどね
スタイルの差と言われたらそれまでだけども
>>880
保守が全くいらなければその通り
0883デフォルトの名無しさん
2017/02/16(木) 21:04:42.50ID:GoZ0ZsyN俺はマクロまで改変(というかデバッグボタンポチーからの黄色い行削除)された経験あるわ。
だから出来るだけ何も分からないユーザーの目の前に、マクロの挙動を左右する何かを差し出さない方がいい。
なので全ての入力はVariant型で受け取ってマクロ内で型チェックしてMsgboxで処理出来ない旨のメッセージを発行する。
間違っても実行時エラーのメッセージボックスとかそのまま表示させちゃダメ。
あと全員が全員やるってわけじゃないから作業者を限定するとかマクロ外での対処も有効。
0884デフォルトの名無しさん
2017/02/16(木) 21:07:45.31ID:MMs4mAvC>設計・開発・保守・拡張を一人で回すからコードの一つ一つに拘ってられない。
発狂しそうな環境ですねw
前に見たブログで「キナコ」と名乗っている自称事務系OLさんが書いているコードがもう、ありとあらゆるエラーを想定した
ものだったんだが、現場で実用になるコードってのはこういうもんか、俺にはちょっと無理だなと思ってしまった。
「非常用、押すな」と書いてあるボタンを押したがるバカでも安心して使える設計とか母性が無けりゃ無理なんじゃねえかなw
0885デフォルトの名無しさん
2017/02/16(木) 21:16:50.35ID:eA7r2zui思いついた俺が型指定したいのにVariant使う状況ちょろっと書いとくわ
For Eachで使うループ変数
Nullが必要な場合(DB連携なんか)
こいつらはどうしようもない
後はStatic変数とかで初期化チェックにNothing使うときとかも使うか
>>883
>デバッグボタンポチーからの黄色い行削除
あるねぇ
完璧な実行時エラー排除はなかなか難しい
ACCESSならmde(accde)で配布するからまだマシなんだけどねぇ
EXCELにVBAコンパイルしてコード除去するオプションとかないよな?
0886デフォルトの名無しさん
2017/02/16(木) 21:19:33.55ID:W0y5+uWSなにを主張したいコードなのか説明して
0887デフォルトの名無しさん
2017/02/16(木) 21:39:42.51ID:YyV7ugT9まあ設計に無理があるかミスしてるかだねえ
今作ってるツールでテキストボックスの名前で入力するのを指定してるんだが、命名ミスって仕方なく数値と文字受け入れるようにしてるわ
まあ別にVariant全否定するつもりはないから
「仕方ないとき」はあるからね
0888デフォルトの名無しさん
2017/02/16(木) 21:42:12.62ID:YyV7ugT9受け入れ緩くするのもありだが関数ごとにきっちりエラー処理するのが理想じゃね?
0889デフォルトの名無しさん
2017/02/16(木) 22:14:54.98ID:W0y5+uWSでおとしどこは?
0890デフォルトの名無しさん
2017/02/16(木) 22:29:25.87ID:C8BNWAf7それってさ雑な仕事してるから炎上するんだよね
手抜きのクソコードを書くとそのコードのせいでさらにクソコードを書くはめになる
クソコードはクソコードを呼ぶので加速度的にクソコードが増えていき生産性がガタ落ちになる
ようするに技術的負債ってやつだよ
借金は雪だるま式だ
0891デフォルトの名無しさん
2017/02/16(木) 22:42:46.83ID:XCVAoIB6全角入れないでね、とか言って渡せばいいんだよ。
変なエラー回避に時間かけてるから、
貴方の仕事は遅いのです。
0892デフォルトの名無しさん
2017/02/16(木) 22:53:40.42ID:2OM8+5/j0893デフォルトの名無しさん
2017/02/16(木) 22:56:48.57ID:K21kVzL80894デフォルトの名無しさん
2017/02/16(木) 22:57:04.52ID:GoZ0ZsyN別に炎上したなんて話してないし、むしろVariant型の挙動を利用して生産性第一で作業してるって話なんだけど。
なんかアンカー先間違えてないか。
0895デフォルトの名無しさん
2017/02/16(木) 23:00:55.40ID:3jDFm3bn程度問題ってだけの話
まあお前さんのところはスーパーハッカーの集団みたいだけど w
0896デフォルトの名無しさん
2017/02/16(木) 23:02:47.89ID:3jDFm3bnセルからデータ受けるときは基本 Variant で受けて型判定してるな
0897デフォルトの名無しさん
2017/02/16(木) 23:03:10.14ID:YyV7ugT9on error goto でエラートラップ
そんなに不安なら関数全部につけりゃ良い
チェックするのなんて入力の値だけで良いんだからそんな手間でもないだろ
0898デフォルトの名無しさん
2017/02/16(木) 23:04:12.76ID:YyV7ugT9VBAのスレである以上避けられないから新しい話題くれよ
0899デフォルトの名無しさん
2017/02/16(木) 23:26:38.52ID:qi3MJmNLexcelのカメラ機能(図のリンク貼り付け)を使用している場合VBAを実行した際に明らかに速度が遅くなる現象の原因が分かる方っていらっしゃいますか?
またカメラ機能を使わない以外で上記の現象を回避されてる方はいますか?
0900デフォルトの名無しさん
2017/02/16(木) 23:39:12.04ID:C8BNWAf7でもそれって生産性あげたつもりになってるだけだよ
局所的に見て楽になったような気がするのかもしれないけど実際には問題を増やしてしまっている
こういう雑な積み重ねが保守不能なコードに化ける
Variantから脱却すれば今より仕事が早くなるから考えてみたら
0901デフォルトの名無しさん
2017/02/16(木) 23:41:26.65ID:2OM8+5/j0902デフォルトの名無しさん
2017/02/16(木) 23:56:50.03ID:relaIxlmいいんだよ
Variantで満足してる人は型を求めていない
求めていないものを押し付けても押し返されるだけだよ
さくっとしたマクロとしてもがっつりしたツールとしても使えるんだから用途に応じて使い分ければいい
同様に使う人も多様であっていいんだよ
0903デフォルトの名無しさん
2017/02/17(金) 00:03:22.12ID:Egl82kKQ全部の処理が終わってからカメラ機能を使う
0904デフォルトの名無しさん
2017/02/17(金) 00:24:00.15ID:x+j5W1y3なるほど、ありがとうございます。
ちなみに他ブックを同時に開いている場合に
その他ブックがカメラ機能を使用している場合の対処法は何かありますか?
0905デフォルトの名無しさん
2017/02/17(金) 00:25:05.32ID:LNGtkd31利用側はそうかもしれんけど作る側は潔癖であるべきじゃね?
なかなかできないけど
0906デフォルトの名無しさん
2017/02/17(金) 00:35:35.78ID:ZUGFk9a/0907デフォルトの名無しさん
2017/02/17(金) 01:02:04.84ID:Yk2QF6YV0908デフォルトの名無しさん
2017/02/17(金) 02:14:58.21ID:0Mgboldtこれどうしたら良いの…?
0909デフォルトの名無しさん
2017/02/17(金) 02:28:45.78ID:iYHKBeW3xlPasteAllを指定する
レス数が900を超えています。1000を超えると表示できなくなるよ。