トップページtech
1002コメント374KB

Excel VBA 質問スレ Part45 [無断転載禁止]©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2017/01/03(火) 02:51:16.56ID:9Y8iTik6
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼も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/
0685デフォルトの名無しさん2017/02/13(月) 13:04:24.32ID:FQScQiCC
サヨクからしてみれば
今回は効きすぎだろ ww
0686デフォルトの名無しさん2017/02/13(月) 13:07:44.96ID:FQScQiCC
>>685
ごめんなさい
投下場所間違えました
0687デフォルトの名無しさん2017/02/13(月) 13:26:07.32ID:d9vpZ2GC
>>683
その通りだが、既に与えられてるデータがそうなってて他社とやり取りされてたから仕方ない。
まあ、そこの会社もそれは分かってたみたいでその後普通のバイナリに移行してたな。
0688デフォルトの名無しさん2017/02/13(月) 20:00:37.76ID:d/USi4s0
>>684
"0" ⇒ &H30, "1" ⇒ &H31 だから Asc( ) でコードにしてそのまま And/Or できるって言いたいんだろ
もとのコードがどんなもんか知らんけど俺は文字のまま処理するって言うのも別におかしくないと思う
0689デフォルトの名無しさん2017/02/13(月) 20:18:34.49ID:1gaAmlEB
たぶんVBAの内部処理は
Val("0") Or Val("1")
みたいな状態になってるからすごく効率悪い
0690デフォルトの名無しさん2017/02/13(月) 21:49:13.40ID:s/tywzZZ
どこから Val( ) が出てくるんだろう...
0691デフォルトの名無しさん2017/02/13(月) 22:24:31.70ID:01I2Ha4W
たいていのことはRelaxTools Addinのソースを見れば書いてある
0692デフォルトの名無しさん2017/02/14(火) 00:40:54.47ID:ClQJHzh+
>>688
スピードで100倍以上違うよ。
0693デフォルトの名無しさん2017/02/14(火) 01:22:00.98ID:DOjYefWL
100倍程度じゃ可読性犠牲にできんわ
0694デフォルトの名無しさん2017/02/14(火) 09:29:24.02ID:1O/6AsKp
和暦問題どーしてます?

レジストとか外に制御テーブル持っててくれれば良いけど、エクセルは内部で抱えてるみたいだし。

日本だけの独自文化だし、ある意味買い替えの特需だからマイクロソフトも対応するとも思えない。

マイクロソフトを信じて待つのが正しい?
0695デフォルトの名無しさん2017/02/14(火) 09:36:36.27ID:ES7A40w+
可読性?
この程度で可読性無くなってると思うんじゃ話にならない。
100倍程度とか簡単に言うのもどうなんだろね。

この論理演算を1回とか2回とか実施して終わるとか思ってるんだろうな。
実際のこの関数を呼び出す大元のマクロでそれまで6時間とかかかってたんだがね。
0、1のテキストファイルのサイズにもよるんだろうけど300Mbyteのファイルの時はそんなだったな。
0696デフォルトの名無しさん2017/02/14(火) 09:47:37.20ID:he6YB8dM
>>694
待つのが正しい
ただし対応しました!といってから2ヶ月くらい待つのが正しい
0697デフォルトの名無しさん2017/02/14(火) 09:59:06.01ID:1O/6AsKp
>>696
デイリーで処理してるから
速攻でバレるんよ。
もしマイクロソフトが対応してくれないと。
0698デフォルトの名無しさん2017/02/14(火) 10:18:16.37ID:XQOX6frc
>>694
和暦なんて最終的な表示部分だけでしょ?
アドホックな対応でごまかしながら待つしかないんじゃないかなあ。
0699デフォルトの名無しさん2017/02/14(火) 10:20:17.77ID:1O/6AsKp
やはりそれかな?
処理が終わったところでイベント発生禁止にして上書き、んでイベント復活しかない?
0700デフォルトの名無しさん2017/02/14(火) 21:19:12.87ID:zSFmfMPu
平成のときは人海戦術でフィールディング以外の部門まで狩り出して一週間ぐらいでやっつけたな
昭和のときは三ヶ月掛かったけど

消費税もそうだけど、日付と名称(消費税なら率)が判明したらそこだけだもの、今回は瞬殺だろ
0701デフォルトの名無しさん2017/02/14(火) 23:14:00.51ID:erEJytj9
今回というか次の元号については
平成31年1月1日に生前退位が行われ新元号になるってのが決まってるんだから
その時まで不測の事態が起こらない限り事前の準備時間はある…?のかな
0702デフォルトの名無しさん2017/02/14(火) 23:24:09.61ID:ev1pSY1G
>>672
俺ならオブジェクト指原ってボケる。

>>701
既に次の年号が組み込まれていたら笑う。
0703デフォルトの名無しさん2017/02/14(火) 23:27:43.38ID:UB3JXf9t
不測の事態が起こりうるならいつか必ず起きるので生前退位は無いよ
0704デフォルトの名無しさん2017/02/14(火) 23:52:21.37ID:fgjpd/Zj
使用を取りやめる、という選択
0705デフォルトの名無しさん2017/02/15(水) 00:12:27.99ID:urFAvqLF
不測の事態なら、時間がなかったんですぅ〜という言い訳ができるけど
そうでない場合は漏れが許されないんだぞ
0706デフォルトの名無しさん2017/02/15(水) 03:50:35.87ID:vC8DQIA4
>>701
1月1日では他の宮中行事とカブってワチャワチャするからズラすとか言ってなかった?
まぁ事前にわかる事に変わりはないか。
0707デフォルトの名無しさん2017/02/15(水) 08:20:59.18ID:uIQboeV9
>>694
まじか…OSが持ってると思ってたよ…
会社のOfficeはそろそろ新しいのに買い換えないとな
0708デフォルトの名無しさん2017/02/15(水) 12:27:48.68ID:wBM76KMm
うちの会社最近MSからライセンス買えって言われてoffice365を何台か入れたんだけど他にも2013、2010、2007、2003があるんだよなぁ…
VBAとかで作ってる社内資料は殆ど和暦表示だから、今から考えると恐ろしいわ…
0709デフォルトの名無しさん2017/02/15(水) 13:37:00.48ID:HgaCZlv6
むしろ西暦に統一するチャンスと
0710デフォルトの名無しさん2017/02/15(水) 13:47:11.11ID:6F4521pz
MSはよく言われるようにOSじゃなくてOfficeで金儲けしてるから
0711デフォルトの名無しさん2017/02/15(水) 14:58:51.71ID:5igOyxsI
シートのA列に日付、B列に時刻、C列はアイテム名称、D〜L列は属性データで、1行目は項目名を入れた表を作りました

日付、時刻は上から下へと、時系列に並んでいます
日付・時刻・アイテム名の同時重複ありです

やりたいこと=「表示したい”行数を入力”して、その行数をシートの左上にして表示する」

Sub Lookup_Row()

' 使用済みの最終セルの選択
 Dim MaxRow As Integer
 With Range("A1").SpecialCells(xlLastCell)
  MaxRow = .Row  '最終セルの行
 End With

' 表示したい行数を入力
 Dim NumRow As Integer
 NumRow = InputBox("表示したい行数を入力", Title:="行数入力", Default:=buf)
  If NumRow > 0 And NumRow <= MaxRow Then
   ActiveWindow.ScrollRow = NumRow
  Else
   MsgBox "行数が許容範囲を超えています =" & NumRow
  End If

End Sub

入力ミスがあった場合
入力で-100 → If文でチェック → MsgBox "行数が許容範囲を超えています =" & NumRow
入力で1000000 → 実行時エラー オーバーフローしました。
入力でAAA → 実行時エラー オーバーフローしました。
となります、入力が整数型で1〜MaxRowなら実行、それ以外はMsgBoxでエラー表示させたいのですが
0712デフォルトの名無しさん2017/02/15(水) 15:37:06.29ID:xVeThrOd
>>
On Error使うか
Dim NumRow As Variant にして後で数値か? 許容範囲か? チェックしる
0713デフォルトの名無しさん2017/02/15(水) 15:41:53.42ID:6lReDbAz
>>711
そうなんですか。
ご苦労が多そうですが
養生なさってください。
0714デフォルトの名無しさん2017/02/15(水) 17:50:36.24ID:uggMbaXG
変数の型とかわかってない奴はVBAなんか使うなよ
0715デフォルトの名無しさん2017/02/15(水) 18:10:31.64ID:khJPh7n1
inputboxじゃなくてフォームでっち上げた方が入力チェックは楽じゃねえか
0716デフォルトの名無しさん2017/02/15(水) 18:19:40.04ID:LgUU6dFz
>>714
面倒なので迷ったらVariantですごめんなさい
0717デフォルトの名無しさん2017/02/15(水) 18:58:10.50ID:MestFhjv
使い方を限定するのはプロジェクト単位でいいと思う
この場ではどんな使い方だとしても目的を果たせればいい
メンテナンス性を考えるならできあがってから考えても遅くないし
0718デフォルトの名無しさん2017/02/15(水) 19:35:12.52ID:8P5JIAcq
>>714
Variant 以外はあまり使いませんな。カウンタに Long を使うくらいか。
0719デフォルトの名無しさん2017/02/15(水) 19:49:51.07ID:yaVm0IDe
variantはクソなんかじゃない
variantを使えない奴がクソ呼ばわりしてるだけだ
0720デフォルトの名無しさん2017/02/15(水) 20:00:12.56ID:F/aHSwB0
型が決まる時はvariantにしちゃダメだろ。
基本使うべきじゃない。

Rangeを配列で受ける時とか、特別な理由があるなら分かるけど。
0721デフォルトの名無しさん2017/02/15(水) 20:15:18.98ID:8QtzDjS+
シート2枚のブック(シート1にデータ、シート2にグラフが20個ほど)がありまして、
揮発性関数を一切使ってないのに(マクロも外部データの参照も使っていません)
ブックを開いてすぐ閉じても変更を保存するか確認するダイアログボックスが出てきて困っています。
なんでこんな事になったのか心当たりが有りません。
揮発性関数以外にブックの保存を促す要素って何か有るのでしょうか?
0722デフォルトの名無しさん2017/02/15(水) 20:34:50.87ID:khJPh7n1
VariantはRangeを配列に突っ込むか関数の引数の型が確定しないときにしか使わんわ
型が確定してないのとかチンポジずれてるみたいで気持ち悪い
0723デフォルトの名無しさん2017/02/15(水) 20:46:48.47ID:wfPvVi6q
変数宣言時の型推論、Return文、ラムダ式、ジェネリックが足りない
マイクロソフトは早く拡張しろ
0724デフォルトの名無しさん2017/02/15(水) 20:52:37.92ID:UwBeD5Zq
Excel C#Aはよ
0725デフォルトの名無しさん2017/02/15(水) 20:52:53.63ID:je/ZAYb+
>>720,722
ほとんどの場合引数の型が確定しないので結局Variantだらけになる
0726デフォルトの名無しさん2017/02/15(水) 21:05:02.59ID:khJPh7n1
>>725
でもあとからキャストするでしょ
0727デフォルトの名無しさん2017/02/15(水) 21:09:13.63ID:F/aHSwB0
>>725
はあ?
確定しないことなんて殆ど無いわ。
設計が悪いんだろう。
0728デフォルトの名無しさん2017/02/15(水) 21:20:08.65ID:yaVm0IDe
ド素人の事務のねえちゃんでも全部variantで書けるのに
お前らどんだけプログラミングが下手なんだよ
0729デフォルトの名無しさん2017/02/15(水) 21:21:34.66ID:OJCj5dj4
>>725
馬鹿
0730デフォルトの名無しさん2017/02/15(水) 21:22:18.43ID:khJPh7n1
型が確定しない関数は入ってくる値をゴニョゴニョして任意の値に変換したいときとかに、日付だったり数値だったり文字列だったりで分岐させてリターンを変化させるときとかかな
他になんか必要な場面あるかね
0731デフォルトの名無しさん2017/02/15(水) 21:23:23.84ID:MestFhjv
ど素人だからこそvariantを多用するんだよ
0732デフォルトの名無しさん2017/02/15(水) 21:23:56.89ID:khJPh7n1
>>728
variantで書けるから偉いのか?
全部variantで書いて処理速度が問題ない程度のプログラムしか書かないならそれでも良いんじゃない
0733デフォルトの名無しさん2017/02/15(水) 21:25:00.63ID:yaVm0IDe
>>732
は?なんでそうなるんだよ

variantで書けないから下手なんだよ
0734デフォルトの名無しさん2017/02/15(水) 21:27:54.70ID:UwBeD5Zq
>>733
そんなにvariantが好きならjsをオススメする
0735デフォルトの名無しさん2017/02/15(水) 21:28:00.36ID:xVeThrOd
Dim a(10) As Long
Dim b As Variant
For Each b In a

Next
とか
0736デフォルトの名無しさん2017/02/15(水) 21:31:10.86ID:F/aHSwB0
いろんな言語のコーディングの本でも読んだら。
VB系のプログラマーが他から糞呼ばわりされるのが良く分かる。

俺に言わせればVBが糞なんじゃなく、そのプログラマーが糞なんだが、確かにVBAには糞コード書く奴が多いよな。
0737デフォルトの名無しさん2017/02/15(水) 21:33:07.33ID:khJPh7n1
>>733
いやね、variantで書けと言われれば書けるよ
書く必要がないし気持ち悪いし大抵遅くなるからやらないだけで
>>735
その書き方あんま見たことないけど普通のforに比べて速かったりするの?
0738デフォルトの名無しさん2017/02/15(水) 21:35:18.88ID:vaCBxgQg
>>721
コードはって
0739デフォルトの名無しさん2017/02/15(水) 21:38:36.03ID:A9woeCde
>>738
>マクロも外部データの参照も使っていません
って言ってるのに
>コードはって
とか言ってもな
0740デフォルトの名無しさん2017/02/15(水) 21:38:42.30ID:yaVm0IDe
>>737
variantの遅さなんてアルゴリズムの遅さに比べれば誤差にも届かんのだよ
つまり遅いのはvariantのせいではない
0741デフォルトの名無しさん2017/02/15(水) 21:46:30.70ID:F/aHSwB0
>>740
そういう問題じゃ無い。
そして、実際に遅い時点で糞コード。
メリットが無い安易な逃げだな。
技術力の無さを埋めるための。

まったく、動けば良いと思ってる奴が多すぎる。
0742デフォルトの名無しさん2017/02/15(水) 21:49:04.70ID:khJPh7n1
>>740
この人のプログラムは変数名もきっと適当であとから見たら何が何だかわからないだろうね
0743デフォルトの名無しさん2017/02/15(水) 21:49:26.25ID:yaVm0IDe
>>741
つまりお前がクソコード書いてるって事じゃないかw
何言ってんのお前w
0744デフォルトの名無しさん2017/02/15(水) 21:50:42.27ID:UwBeD5Zq
>>743
日本語でおk
0745デフォルトの名無しさん2017/02/15(水) 22:05:34.61ID:je/ZAYb+
>>727
確定しないことがほとんどさ
0746デフォルトの名無しさん2017/02/15(水) 22:13:59.52ID:YhLDJr+c
確定しないと言うか型の制御をexcelに委ねちゃって
コードに表れないことばっかになると読む方が辛い
0747デフォルトの名無しさん2017/02/15(水) 22:14:54.77ID:yaVm0IDe
最後にマジレス
variantを使って分かりにくくなるのは型をコントロール出来ていないコードだから
重要なのは変数の型ではなく値の型
値の型が一貫してコントロール下にあるコードは全てvariantでも読みやすくバグも出にくい
本当に気を使うべきは値の型
0748デフォルトの名無しさん2017/02/15(水) 22:15:25.45ID:je/ZAYb+
まあ定量的にいうと、手元にある大きめのbasファイルで As xxx を数えてみたら

As Variant 282個
As その他 102個

だった。
「ほとんど」というのは言い過ぎだったかも。
0749デフォルトの名無しさん2017/02/15(水) 22:19:05.17ID:je/ZAYb+
別のbasファイルでは
 As Variant 238個
 As その他 17個
だった。こっちは「ほとんど」と言える。
0750デフォルトの名無しさん2017/02/15(水) 22:28:33.65ID:wfPvVi6q
>>747
タイプセーフにすれば動作する前に型をコントロールできていることがはっきりする
0751デフォルトの名無しさん2017/02/15(水) 22:31:45.05ID:m87qnWVq
Excel VBAのみでgzファイルを解凍したいのですが可能でしょうか?
別途DLL、EXE、その他一切のファイルの使用は出来ません
Webサーバを立ててそっちにPOSTして解凍したファイルを送り返してもらう、
という案もだめでした(ネットワークに繋がっていなくても動ける必要アリ)

ZIPならApplication.Shellを使うという定番技があるんですが、gzファイルでも
同じように解凍出来ませんでしょうか?
.NETの System.IO.compressionが使えたりしないか試してみましたらCOMでは
ないようで駄目でした
0752デフォルトの名無しさん2017/02/15(水) 22:37:18.33ID:khJPh7n1
>>747
いや、最後にすんなやw
型をvariantにする必要性が全く見えてこない
少なくともVBAはコード側で型付けする言語だと思ってるんですが
.NETだったら全部Objectで処理するのか…?
0753デフォルトの名無しさん2017/02/15(水) 22:38:45.19ID:F/aHSwB0
>>747
だからそういう問題じゃない。
絶対にLong以外有り得ないのにVariantにするのはクソだ。
そして決まらないのは設計がクソだからだ。
というより設計して無いんじゃないか?
取りあえず動くようにしてるだけで。

「Variantでも」と言ってる時点で糞。
同等ではメリットになっていない。
そして実際にはデメリットに気付いて無いだけ。
0754デフォルトの名無しさん2017/02/15(水) 22:46:22.73ID:je/ZAYb+
>>747
値の型って何?
Variant変数に格納された値自体の型ってことなら、コントロールは難しいと思うよ。
0755デフォルトの名無しさん2017/02/15(水) 22:46:54.44ID:J6VHa6KY
これは数量だからロングにしよう、とか思ってもですねぇ、
ウチの会社のエクセルは、神エクセルですから、
セルに「1/3個」とか平気で書いちゃうんですね。
だから、バリアントじゃないとエローになっちゃうんですね。
0756デフォルトの名無しさん2017/02/15(水) 22:50:51.92ID:khJPh7n1
>>755
バカかな?
0757デフォルトの名無しさん2017/02/15(水) 22:51:02.74ID:BBx5ZcB8
Variant型を積極的に使用するかどうかなんて状況によるだろ。
とりあえず動けばいいマクロを書く場面だって社内SEならよくあるだろうし、
逆に型指定しておく事でバグが発生しにくくなるとかマクロが使いやすくなるっていうなら積極的に型指定すべきだし。

いついかなる場合においてもVariant型は極力避けるべきであるって論調なら、ただ頭が固すぎる。
0758デフォルトの名無しさん2017/02/15(水) 22:52:39.74ID:tPmatHBd
セルの書式で
0"個"
にしてあるのに「3個」って入力されて集計から漏れるのは防ぎようがない
VBA使っていいんなら勝手に「個」を消して、全角の数字も半角にして、オーをゼロに置換してやるんだけど
0759デフォルトの名無しさん2017/02/15(水) 22:53:31.89ID:yaVm0IDe
>>752,753
じゃあもう一回w

お前らプログラミングがヘタクソだから
variantでキレイなコードを書けるように練習しなよ

俺が言ってるのそういう事w
お前らの興味が向いている様な初心者のおまじないみたいな話は
ハナから問題にしてないw
0760デフォルトの名無しさん2017/02/15(水) 23:06:54.66ID:khJPh7n1
>>759
極論言えばだな
お前はループ用の変数までvariantで書くのか?
という話なんだよ
0761デフォルトの名無しさん2017/02/15(水) 23:09:58.33ID:F/aHSwB0
>>759
完全にアホ過ぎる。
Variantで書いても既にキレイなの。
分かる?
でもそれはきちんと型指定してもキレイなの。
0762デフォルトの名無しさん2017/02/15(水) 23:13:41.64ID:BBx5ZcB8
>>760
ループ用の変数はループに入る時点でロックされて型が決定するから、
Variant型でやろうがLong型でやろうが大して差は開かなかったはず。

ただ変数型の違いよる処理時間はVariant = Long > Integer > Byteの順になってたはずだから、
ループ回数の上限が分かっているならIntegerやByteを使うのは有効。
0763デフォルトの名無しさん2017/02/15(水) 23:15:19.21ID:F/aHSwB0
設計思想が無いんだろうな。
キレイに書くのは当たり前。

>>757
取りあえずってのはそいつのコーディングスタイルというか、癖みたいなもんもあるからあり得るだろうな。
俺だってコメント全く無しで書くこともある。
その時だけのマクロとか。

でもそれをOKとは言わないだろ。
0764デフォルトの名無しさん2017/02/15(水) 23:15:24.29ID:khJPh7n1
型の指定が初心者のおまじないとか何を言ってるのかわからないよ
まあその程度のプログラムしか書いてないんだよ
worksheetとかrangeとかを全部objectで指定してるのと一緒だぞ
0765デフォルトの名無しさん2017/02/15(水) 23:16:47.40ID:aYEzhSy+
基本的に変数はdoubleなりなんなりで宣言する派だが
ループ用の変数なんてどうでもいいから宣言もしてないな
結果variantになってるなw
0766デフォルトの名無しさん2017/02/15(水) 23:17:28.43ID:je/ZAYb+
>>755
それはエラーになるのが正解
というか自ら進んでエラーを出して止まるべき

俺のプログラムがほとんど As Variant だと言ったけど、それはVariantであるべきプログラムだから。
0767デフォルトの名無しさん2017/02/15(水) 23:18:17.50ID:pcB8Xi3u
型わかってるのにVariant型じゃないと入れられないのとかあるじゃん
0768デフォルトの名無しさん2017/02/15(水) 23:19:42.16ID:khJPh7n1
>>762
でもループ変数をvariantで書くやつなんかほとんどいない
なぜなら意味がないから
longで書くことには意味があるから
variantにすることに意味があるならする
処理速度的に意味がなくても明示的にこの変数はこの型ですよ、ってしてあげることで可読性は上がる
0769デフォルトの名無しさん2017/02/15(水) 23:20:13.95ID:je/ZAYb+
>>762
普通に考えると
Long <= Integer = Byte < Variant の順だと思う
0770デフォルトの名無しさん2017/02/15(水) 23:24:33.53ID:F/aHSwB0
>>758
いや、ここVBAのスレだろ。
で、"3個"をそのまま受け取るような処理を何も考えずに書くから糞なんだよ。

まず第1にそのまま受け取る処理が良いのかどうかを考えるべきだろ。
そして、そのまま受け取るのが良いと決まってから文字列で受け取るかVariantで受け取るかどちらが良いのかとかを考える。
その結果、Variantが良いとなるならVariantを使っても良いんだよ。

で、そういう考え方で設計してたら必然的にVariantは殆ど無くなるんだ。
0771デフォルトの名無しさん2017/02/15(水) 23:27:25.23ID:khJPh7n1
>>770
そもそもこの場合だってその可能性があるならまずstringで受け取ってから処理すりゃ良いだけのことだしな
variantである意味がほとんどない
0772デフォルトの名無しさん2017/02/15(水) 23:28:28.84ID:F/aHSwB0
>>768
そう、意味を考える。
一緒に速度も考える。
で、意味的に型決まってても速度のメリットを取ってVariantというのが配列をぶち込む定番の処理だろ。
0773デフォルトの名無しさん2017/02/15(水) 23:30:58.50ID:je/ZAYb+
>>770
よく考えて必然的に Variant が殆どになる場合もあるけどね
0774デフォルトの名無しさん2017/02/15(水) 23:41:14.47ID:khJPh7n1
>>772
セルをそのまま配列にぶちこむときはそうなるな
>>773
どういう場合だ?
あんまり経験ないんだがな
目的の処理をする場合処理したい対象の型は大抵決まってるし、返したい値も決まってるだろ
0775デフォルトの名無しさん2017/02/15(水) 23:45:21.19ID:je/ZAYb+
>>774
複数のユーザーが決める違う型の値を受け取る共通ライブラリを作る時。
0776デフォルトの名無しさん2017/02/15(水) 23:50:27.16ID:khJPh7n1
>>775
その手の処理をしたことないんだけど、受け取ったあとに型を確定はできないのか?
どういう結果を返すんだそりゃ
0777デフォルトの名無しさん2017/02/15(水) 23:58:29.83ID:je/ZAYb+
>>776
VarType で型を判別して分岐〜、なんてやってたら引数が複数の時は
組み合わせが爆発してしまうのでそれは(積極的には)やらない。

関数の単一目的性を守ってれば「処理できない型の値を入れたらエラーになる」という方針で破綻しないよ。
0778デフォルトの名無しさん2017/02/16(木) 00:01:00.36ID:W0y5+uWS
>>739
だからどうしたよ?
あーだコーダいうなら頭使えよ?
スレ名を大きな声で復唱してみなさい。
0779デフォルトの名無しさん2017/02/16(木) 00:17:58.70ID:SiA9A9XV
馬鹿はメンテに困るコードを書く
そういう馬鹿に限ってvariantを多用する
こういうことだよな
0780デフォルトの名無しさん2017/02/16(木) 00:32:38.95ID:vlXKqRPM
>>777
いやさ、variantで受け取ってvariantで返すのか?その関数
そもそもそんなたくさんの型不定の引数を受けとるような関数は欠陥じゃないのか?

どんな環境なのか想像できんわ
あんまりそれが一般的と思わぬよう
0781デフォルトの名無しさん2017/02/16(木) 00:45:35.60ID:XCVAoIB6
AT車に乗って、コンピューターが3速だと判断したのに、
う〜ん、そこは3速じゃねえんだよなぁとかブツブツ言いながら、
自分で2速に入れてる感じ。
キモイのでやめましょう。
0782デフォルトの名無しさん2017/02/16(木) 00:47:14.79ID:NIevlqDH
まったく例えになってない
0783デフォルトの名無しさん2017/02/16(木) 00:55:11.61ID:l4RhA8QW
まだやってたのか・・・この人ら
0784デフォルトの名無しさん2017/02/16(木) 00:57:14.89ID:XCVAoIB6
分かったよ。
あんたが使ってるのは、型指定しないと動かない変なExcel。(パチモン?)
俺が使ってるのは、型指定しなくても動くExcel。
これでいいだろ。
■ このスレッドは過去ログ倉庫に格納されています