[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/26 17:48 / Filesize : 310 KB / Number-of Response : 1035
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part48



1 名前:デフォルトの名無しさん [2017/05/16(火) 08:24:45.78 ID:iIGA/64l0.net]
!extend:checked:vvvvv:1000:512

スレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい

ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK

※前スレ
Excel VBA 質問スレ Part47 [無断転載禁止]©2ch.net
echo.2ch.net/test/read.cgi/tech/1489557874/

※関連スレ
VBAなんでも質問スレ Part2
echo.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
echo.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 125
echo.2ch.net/test/read.cgi/bsoft/1481369538/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

710 名前:デフォルトの名無しさん (アウアウカー Sae1-cb7n) mailto:sage [2017/06/11(日) 14:55:51.72 ID:Rohm8Nl3a.net]
>>681
つまりPrint文は関係無いんだよ。

>代入時点で区別する必要はなくて Print 時点で判断すればいいだけ

は間違い。
代入時点で区別はついてる。

711 名前:デフォルトの名無しさん (ドコグロ MM13-W6lL) mailto:sage [2017/06/11(日) 16:32:41.31 ID:TSTIJwyzM.net]
>>682
まあそのケースがまずいのはわかってるがそんなクラスを作る必要がどんだけあるんだ?
って話だな

712 名前:デフォルトの名無しさん (ドコグロ MM13-W6lL) mailto:sage [2017/06/11(日) 16:40:50.47 ID:TSTIJwyzM.net]
>>686
> 代入時点で区別はついてる。
だから区別なんてしない
両方ともに参照を入れとくだけ
って書いてあるんだが...
どうやったらそんなアホな考え方になるのか不思議だよ
まあ引っ込みつかなくなってるんだろうな w

713 名前:デフォルトの名無しさん (ワッチョイ db6d-MPbE) mailto:sage [2017/06/11(日) 16:45:50.31 ID:46pYjw9V0.net]
>>687
わかってるならその反論はおかしいだろう
言語仕様としておかしくなる

デフォルトプロパティがあるなら、setはどうして

714 名前:熹ュ生すると思う []
[ここ壊れてます]

715 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/11(日) 17:19:36.49 ID:q49UmmFG0.net]
>>689
別にそのケースなら参照を返すようにしてディフォルトプロパティは明示する(つまりディフォルトプロパティの意味がなくなる)ようにすればいいだけ
特殊なケースで使えないからと言って全部ダメって言う話ではないでしょ

716 名前:デフォルトの名無しさん (アウアウカー Sae1-cb7n) mailto:sage [2017/06/11(日) 17:25:11.30 ID:CaL9CXkoa.net]
>>688
引っ込みも何も、今だに何言ってるのか分からん。
とレスしようとしたけど今分かった。


>代入時点で区別する必要はなくて Print 時点で判断すればいいだけ



「代入時点では参照が代入され、Print時点でデフォルトプロパティが返される」といいたいのだとしたら上の文章の日本語が悪いよ。

717 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/11(日) 17:36:51.51 ID:q49UmmFG0.net]
>>691
> 「代入時点では参照が代入され、Print時点でデフォルトプロパティが返される」といいたいのだとしたら上の文章の日本語が悪いよ。

ほとんどそのまま書いてあるだろ
これはさすがに恥ずかしすぎる w

>>648
>> var1=Range("A1")
> の時点では var1 はセルA1への参照の代入として

>> Debug.Print var1
> の時点でディフォルトプロパティを取得して表示すればいいだけ

718 名前:デフォルトの名無しさん (アウアウカー Sae1-cb7n) mailto:sage [2017/06/11(日) 17:37:06.07 ID:CaL9CXkoa.net]
fooClassとする
fooClassのデフォルトメンバはfoo。fooのclassは自身と別のhogeClass
class fooClass{
'この書き方は適当
default public Property foo as hogeClass;
}

現在の仕様なら
Dim var1 As Varient
Set var1=New fooClass()
Debug.Print Typename(var1)
'->fooClass

Dim var1 As Varient
var1=New fooClass()
Debug.Print Typename(var1)
'->hogeClass

Set無しの仕様なら
Dim var1 As Varient
var1=New fooClass()
Debug.Print Typename(var1)
->?

こういう問題?



719 名前:デフォルトの名無しさん (アウアウカー Sae1-cb7n) mailto:sage [2017/06/11(日) 17:43:49.85 ID:CaL9CXkoa.net]
>>692
俺は>>661の段階で真ん中も参照と気付いたわけ。
その後に>>663が書かれているのは日本語が悪いと言ってる。

720 名前:デフォルトの名無しさん (ワッチョイ db6d-RrxM) mailto:sage [2017/06/11(日) 17:47:03.90 ID:46pYjw9V0.net]
>>690
自身のclassがメンバに〜は普通にある。特殊ではない

721 名前:デフォルトの名無しさん (ワッチョイ db6d-RrxM) mailto:sage [2017/06/11(日) 17:48:52.10 ID:46pYjw9V0.net]
話はずれるが、「エクセルvaが特殊」は事実
20年以上前から生き残っている、大衆に使われ続けているスクリプト言語なんてエクセルvbaだけ
次点でjsだろう

デフォルトプロパティだろうがなんだろうが、実装すればデファクトスタンダードになる
ある意味、王様である
好きなようにあすれば良いんじゃないかな

722 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/11(日) 17:51:02.18 ID:q49UmmFG0.net]
>>694
> その後に>>663が書かれているのは日本語が悪いと言ってる。
>>663>>648 へのアンカー打ってあるのに何を言ってるんだよ w
恥の上塗りにしかなってないぞ

723 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/11(日) 17:53:41.74 ID:q49UmmFG0.net]
>>695
自身のクラスオブジェクトを返すディフォルトプロパティを持つクラスが特殊じゃないって?
例えば何よ?

724 名前:デフォルトの名無しさん (アウアウカー Sae1-cb7n) mailto:sage [2017/06/11(日) 18:07:00.10 ID:CaL9CXkoa.net]
>>697
アンカー打ってあっても日本語が悪いのは変わらんぞ。

>>648>>663の文章とどう関係するのか分からん書き方になってるんだから。

725 名前:デフォルトの名無しさん (ワッチョイ db6d-RrxM) mailto:sage [2017/06/11(日) 18:18:57.69 ID:46pYjw9V0.net]
>>698
特殊かどうかは言ってないね
存在すると整合性が保てなくなると言っている
それがExcelの中にあるかどうかなんて知らん

726 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/11(日) 18:39:15.05 ID:q49UmmFG0.net]
>>699
そもそも >>663 の日本語もおかしくないだろ
前提をいくつかはしょってるのは話の流れで省略してもわかるはずって言う考えで書いてる
それでも横入りで絡んでくるアホがいるから念のために
> >>648 を理解できてないなら絡んでくるなよ
とまで書いてある
ここまで書いてあって理解できない奴の面倒までは見れんよ w

727 名前:デフォルトの名無しさん (ワッチョイ db6d-RrxM) mailto:sage [2017/06/11(日) 18:41:48.44 ID:46pYjw9V0.net]
>701
代入時点で評価の必要があります

728 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/11(日) 18:42:38.69 ID:q49UmmFG0.net]
>>700
> 特殊かどうかは言ってないね
頭大丈夫?
> 特殊ではない
ってはっきり書いてますけど? w
> 存在すると整合性が保てなくなると言っている
お前さんの考える整合性とやらがどんなもんか知らんけど >>690 でなんの問題もないけどね



729 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/11(日) 18:43:10.17 ID:q49UmmFG0.net]
>>702
理由は?

730 名前:デフォルトの名無しさん (ワッチョイ 7d3d-OlK+) mailto:sage [2017/06/11(日) 18:45:21.77 ID:Tl5W6+aa0.net]
Set無しVBA言語作るって流れになったら面白いんだけどなぁ。

731 名前:デフォルトの名無しさん (ワッチョイ db6d-RrxM) mailto:sage [2017/06/11(日) 18:56:04.59 ID:46pYjw9V0.net]
>>703
デフォルトプロパティは毎回明示するのか?
A1セルのvalueを知りたい場合は
cells(1,1).value
と書けば良いのか、なるほどな

cells(1,1)
だけならエラーを変えした方がいいな

732 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/11(日) 19:01:02.23 ID:P5Uv9Xu70.net]
型を意識する・させることで皆が幸せになる

...そんなふうに思っていた時期が自分にもありました

733 名前:デフォルトの名無しさん (アウアウカー Sae1-cb7n) mailto:sage [2017/06/11(日) 19:05:21.58 ID:UNIZBcCUa.net]
>>701
>代入時点で区別する必要はなくて
ってのは>>639の"十分区別できると思うけど"の区別のことだよな。

だったら「代入時点で区別できる」とか、俺の>>603の"できない"を受けるなら「代入時点で区別できないということはない」とすべきだ。
"必要"とか何が必要?
という話になる。

>Print 時点で判断すればいい
も、何言ってるのか分かりにくい。

734 名前:デフォルトの名無しさん (アウアウカー Sae1-cb7n) mailto:sage [2017/06/11(日) 19:08:29.30 ID:UNIZBcCUa.net]
>>706
それ、デフォルトなの?
デフォルトって何なの?

って言いたいってこと?

735 名前:デフォルトの名無しさん (アウアウカー Sae1-cb7n) mailto:sage [2017/06/11(日) 19:12:53.44 ID:UNIZBcCUa.net]
まあ、実際には自分はSetに違和感全く感じないし、Variantで宣言することも殆ど無いし、デフォルトプロパティの省略も殆どしないんだけどね。

736 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/11(日) 19:20:07.39 ID:q49UmmFG0.net]
>>706
> デフォルトプロパティは毎回明示するのか?
>>682 のケースだけね
実際にあるのかどうかは知らんけど w

> cells(1,1)
> だけならエラーを変えした方がいいな
そう言うオプションはあってもいいと思う

737 名前:デフォルトの名無しさん (ワッチョイ db6d-RrxM) mailto:sage [2017/06/11(日) 19:21:24.90 ID:46pYjw9V0.net]
>709
いやもう言語仕様を考える時って最初によっぽど不具合がなければそれでいいよねってこと
vbaは非常に変則液だけど、まぁエクセル・アクセルのためなら仕方ないんじゃないの

738 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/11(日) 19:27:31.75 ID:q49UmmFG0.net]
>>708
> "必要"とか何が必要?
> という話になる。
はあ?
「区別する」必要がないって書いてあるだろ

>> Print 時点で判断すればいい
> も、何言ってるのか分かりにくい。
お前の理解力がないだけ
何度も書くけど理解できないなら >>648 見ろって書いてあるのになぜか見ずに文句だけは一人前 w



739 名前:デフォルトの名無しさん (アウアウカー Sae1-cb7n) mailto:sage [2017/06/11(日) 19:42:43.65 ID:UNIZBcCUa.net]
>>713
いや、だから
>「区別する」必要がない
が変なんだって。
代入時点で区別はついてるのになんで必要とかの話になるの?と受けとられるだろ。

> Print 時点で判断すればいい
も、誰が何を判断するんだ?と受け取られる。

740 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/11(日) 19:42:52.34 ID:P5Uv9Xu70.net]
型を意識しようよ

型を意識するというのは型によって構文(式の形)を変えることじゃないよ。
式の形は同じでも型によって意味が違うとかコンパイルエラーになったりすると認識することだ。

デフォルトプロパティが適用されるべきかどうかは等式の左右の型を見れば基本わかる。
わからないような式は曖昧なんだからコンパイルエラーにすべきだ。

741 名前:デフォルトの名無しさん (アウアウカー Sae1-cb7n) mailto:sage [2017/06/11(日) 19:49:48.15 ID:UNIZBcCUa.net]
>>715
う〜ん。
むしろSet使ってクラスとリテラルを意識したいけどなあ。

あと、真ん中はやっぱりデフォルトプロパティの代入の方がしっくり来ると思うんだ。
だからこそ、あっさりデフォルトプロパティの代入を捨て去ると思えなかったから>>645書いたんだぜ。

742 名前:デフォルトの名無しさん (ワッチョイ db6d-qkek) mailto:sage [2017/06/11(日) 20:02:29.23 ID:46pYjw9V0.net]
>>715
application内の型を意識しなくていいための、弱い動的型付けなんだよ
この設計思想は街ぃがってないと思う

743 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/11(日) 20:12:03.18 ID:q49UmmFG0.net]
>>714
> 代入時点で区別はついてる
それはお前が勝手に言ってるだけの話だろ
俺は初めから必要ないって書いてるから
> なんで必要とかの話になるの?と受けとられるだろ。
なんて受けとるアホはいないと思うぞ、お前以外は w

>> Print 時点で判断すればいい
> も、誰が何を判断するんだ?と受け取られる。
マジでオブジェクト指向の勉強しなよ...
そんなのを疑問に思うなんて相当レベル低いから

744 名前:デフォルトの名無しさん (ワッチョイ db6d-qkek) mailto:sage [2017/06/11(日) 20:17:12.06 ID:46pYjw9V0.net]
>>682
はだめかなぁ
徹底的に論破してほしいんだけどなぁ

745 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/11(日) 20:19:33.09 ID:P5Uv9Xu70.net]
しかし冷静に考えると斬新かもな。
単一の文だけ見て解釈するんじゃなく、複数の文を見て意味を解釈するプログラミング言語。

746 名前:デフォルトの名無しさん (アウアウカー Sae1-cb7n) mailto:sage [2017/06/11(日) 20:25:38.17 ID:UNIZBcCUa.net]
>>718
>それはお前が勝手に言ってるだけの話だろ

俺が勝手に言ってるとかの話じゃなくて、代入時点で参照であると区別がついてるのが実態だろ。

>「区別」する必要ない
>Print 時点で判断すればいい

を省略せずにきちんと書いてみなよ。

747 名前:デフォルトの名無しさん (ワッチョイ 7de4-yugn) mailto:sage [2017/06/11(日) 20:26:28.99 ID:tRESVVuh0.net]
俺の考えた最強の言語仕様の話はよそでやってくれ

748 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/11(日) 21:00:46.39 ID:q49UmmFG0.net]
>>72



749 名前:1
> 代入時点で参照であると区別がついてるのが実態だろ。
お前はまず「区別」の意味を調べてから出直してこい
A か B かの区別がつくと言う言い方はあるけど A と区別がつくとは言わん

> を省略せずにきちんと書いてみなよ。
>>648 で十分だろ
それで不十分と言うならほぼ同じこと書いてる >>691 も不十分と言うことだ w
[]
[ここ壊れてます]

750 名前:デフォルトの名無しさん (ワッチョイ 2306-OlK+) mailto:sage [2017/06/11(日) 21:12:26.64 ID:VtUxFQZs0.net]
いつまでくっだらねーーーーーーーー話を続けるつもり?別スレでも立ててそこでやれよ

751 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/11(日) 21:17:53.56 ID:P5Uv9Xu70.net]
もはやどこが起点かわからない

752 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/11(日) 21:31:09.13 ID:P5Uv9Xu70.net]
だれかQiitaにまとめてくれ

753 名前:デフォルトの名無しさん (アウアウカー Sae1-cb7n) mailto:sage [2017/06/11(日) 21:46:23.06 ID:UNIZBcCUa.net]
>>723
お前な、自分は省略してるのに俺の省略は認めないのか?

代入時点で参照であるとデフォルトプロパティとは区別がついてるのが実態だろ。

>>691は省略しても分かるだろ。
>>663は省略されてると分からんのだよ。
というより省略しなかった時に正しい日本語になるように思えないからやってみろと言ったんだよ。

754 名前:デフォルトの名無しさん (ワッチョイ e511-Z3xB) [2017/06/11(日) 21:54:15.52 ID:7YVvLMef0.net]
以下のエクセルファイルについてなんですが
https://kouseikyoku.mhlw.go.jp/tohoku/gyomu/gyomu/hoken_kikan/documents/zen_sitei_ika_h2905.zip


エクセルを開いたあと何もせず閉じようとすると
必ず保存するかどうかを聞かれてしまうのですが
なぜでしょうか?
また、そのまま「保存する」を選択すると
ファイルサイズが半分くらい減ってしまうのも気になります

些細なことで申し訳ありませんが
どなたか原因わかる方教えてください。

755 名前:デフォルトの名無しさん (ワッチョイ db6d-RrxM) mailto:sage [2017/06/11(日) 21:56:59.58 ID:46pYjw9V0.net]
>728
凄まじい個人情報でてる気もするけど、まぁいいか
・保存するかどうかを聞かれ
2010では聞かれない

揮発性関数とか混じってるのかもな

バージョンを教えてほしい

756 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/11(日) 22:06:15.50 ID:P5Uv9Xu70.net]
>>728
保存するかどうかなんて聞かれないな
数式もないようだ

757 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/11(日) 22:10:07.67 ID:q49UmmFG0.net]
>>727
> 代入時点で参照であるとデフォルトプロパティとは区別がついてるのが実態だろ。
だからそれはお前が勝手に言ってる話
そもそも区別がつくとか言ってるが勝手につく訳じゃなくて処理系が何らかの判断をしてるんだからそんな判断は「必要ない」って書く方が適切だろ

> >>663は省略されてると分からんのだよ。
話の流れ見てたらわかるし、わからん奴のためにアンカーまで書いてるだろ
何回ループするんだよ

758 名前:デフォルトの名無しさん (ワッチョイ 236f-xcYX) mailto:sage [2017/06/11(日) 22:46:10.07 ID:KFvNUsfN0.net]
>ファイルサイズが半分くらい減ってしまうのも気になります

減った状態が正しいファイルサイズなんじゃないの。



759 名前:デフォルトの名無しさん (ワッチョイ 2311-OlK+) mailto:sage [2017/06/11(日) 23:33:20.89 ID:49bQJmPP0.net]
なんか、何時何分何秒地球が何回回った時ですかあ?と同レベルのやりとりだな

760 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/12(月) 00:17:03.07 ID:y5ZQ52Yx0.net]
>>731
やっぱり日本語の問題なんだ。
今をもってしても分かりにくい。

俺が「区別がつく」とか「区別がついてる」というのは「自動的に区別がついてしまっている」ということだ。
「区別がつく」自体に"自動的に"というニュアンスを含んでいる。
だから"勝手に"などという言葉は繋がらない。
"自動的に"というニュアンスを含んでいない場合、例えば意思をもって違いを定義する場合は「区別をつける」となるだろう。

一方、君の言う「判断する」というのは厳密に言えば「意思をもって判断する」ということだ。
「判断する」自体に"自動的ではない"というニュアンスを含んでいる。
君は処理系に対して擬人化を行っているから意思をもってではなく、自動的なニュアンスを含んでいるつもりだろうが、そうであるなら主語である"処理系"を省いてしまってはわかりにくくなるだろう。

これまでの経緯を無視した上で余計な補完をして

処理系が何らかの判断をしてるんだからそんな"俺の"判断は「必要ない」

としても日本語としておかしな文とはならないということは、「処理系が何らかの判断をしてるんだからそんな判断は必要ない」という文章はそれ単体では上記の受け取り方をされても仕方の無い文章だということだ。

今だに分からんのは>>663の判断するのは誰かって話。
処理系なら判断すれば"いい"などとはならないと思うし。
Print時点で決まっているんだから判断とかいう話にはならない筈だろ。

761 名前:デフォルトの名無しさん (ワッチョイ 2306-OlK+) mailto:sage [2017/06/12(月) 00:24:47.55 ID:Ch/XnpW30.net]
┐(´д`)┌ヤレヤレ

762 名前:デフォルトの名無しさん (ワッチョイ 2332-Ell8) mailto:hage [2017/06/12(月) 01:25:41.57 ID:YlzHeDxH0.net]
>>682
foo君久しぶりじゃんwww


つかお前らhgだからって不毛な争いしてんじゃねえ
よそでやれクズ共

763 名前:デフォルトの名無しさん (ワッチョイ 2332-Ell8) mailto:sage [2017/06/12(月) 01:28:29.93 ID:YlzHeDxH0.net]
>>728
ワッチョイ e511-
臭う

764 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/12(月) 05:44:51.02 ID:RhdpYx9V0.net]
長文君はなぜか自分の日本語能力を疑わない w

765 名前:デフォルトの名無しさん (アークセー Sx71-sCoW) mailto:sage [2017/06/12(月) 08:46:55.31 ID:ZaZcTWz8x.net]
>>736
承認するよ

766 名前:デフォルトの名無しさん (ワッチョイ e511-yTT2) [2017/06/12(月) 19:32:27.05 ID:5L3xq22d0.net]
%%%MC+7,8%%%

}

000-"M","LES","TUV=0.13325&/0\7&%&",

001-"23","1","0","2","7.14",[\b%7/1444*%812%2.3%7&6111\end\\]{%3%12%\br

767 名前:デフォルトの名無しさん (ワッチョイ db6d-PV39) mailto:sage [2017/06/12(月) 20:31:46.57 ID:ysyGP+YI0.net]
>>740
マジで?

768 名前:デフォルトの名無しさん (ワッチョイ eb4c-irun) [2017/06/13(火) 10:48:41.12 ID:UX2HAupn0.net]
マクロは記録をいじるぐらいの初心者です

AとBファイル開く
Aのマクロ作動ボタンを押す
BでAで作ったマクロが動き、データが整形される
Aファイルが閉じる

というのを作れるものなら作りたいけど、可能ですか?
Bファイルは毎日新しいのが来ます
出来るとしたら検索ワードが悪いらしく、見つけられないので
なんという動作なのか教えてください



769 名前:デフォルトの名無しさん (スッップ Sd43-3C0K) mailto:sage [2017/06/13(火) 11:35:01.49 ID:P4se3SJtd.net]
>>742
Aは自分の手元にあるブックでBは他所から届くのか。

「BでAで作ったマクロが動き、」の意味がよくわからない。
なんとなく簡単ぽいけど

770 名前:デフォルトの名無しさん (ワッチョイ 9d73-2i+1) mailto:sage [2017/06/13(火) 11:35:40.67 ID:mycfBP+w0.net]
workbook.open
記録ではできない

771 名前:デフォルトの名無しさん (ワッチョイ eb4c-irun) [2017/06/13(火) 12:08:11.62 ID:UX2HAupn0.net]
>>743
Aは自分のパソコンに作ったもので、Bは毎日他所からきます。
Bを開いてそこからAで作ったマクロを動かすしかダメですか?

>>743
記録ではムリなので、見本となるのがあればいじれないかなと思って聞いてみました

772 名前:デフォルトの名無しさん (ワッチョイ 2306-OlK+) mailto:sage [2017/06/13(火) 12:14:45.05 ID:rPkjB82P0.net]
>>742
Aのブックにマクロを記述
 ファイル名が固定でないなら GetOpenFilenameでファイルを選択
 ごちゃごちゃなんか知らんけど開いたブックBに対して処理をする
 Aを閉じる(ついでにExcelそのものも終了させる)

だろ?

773 名前:デフォルトの名無しさん (ワッチョイ eb4c-irun) [2017/06/13(火) 12:31:59.08 ID:UX2HAupn0.net]
>>746
そうです

マクロのボタンの作り方とか調べても、同じファイル内で
動くものしか出てこないので、ボタン一押しで動かせないのかと
そういう話です

774 名前:デフォルトの名無しさん (アウアウウー Sa99-pGgJ) [2017/06/13(火) 12:32:20.96 ID:5pkXRrDKa.net]
星くん vbaでググって
第2章読めば似たようなことが書いてあるよ

775 名前:デフォルトの名無しさん (ワッチョイ 5b23-3GzE) mailto:sage [2017/06/13(火) 13:52:35.48 ID:TodKlzHt0.net]
>>742
普通はアドインにする。
Aファイルは開く必要が無い。
アドインならExcel開いたらAファイルも開いてる。
ブックは非表示だから開いてるようには見えないけどメニューにボタンを追加すればマクロは動作する。

776 名前:デフォルトの名無しさん (JP 0H6b-yTT2) mailto:sage [2017/06/13(火) 14:48:02.77 ID:3KAtKhUpH.net]
>>749
君の中では普通かもな

777 名前:デフォルトの名無しさん (ワッチョイ e511-yTT2) mailto:sage [2017/06/13(火) 14:50:25.60 ID:B6CxFrBV0.net]
@@@EMO@@@
}
000-"E=0.133348213376128"
001-"4","1.6","2","3","13","3","81","47","0","1","2","85",
002-"813-1>>>1%$1.3Q!@!$%81.3!$%B,61.2,"13.2"21.7[[%$EMOLA\%/7#/OBLA[%!\2.3=0!&#%<<<Q,S,L,7P,%41%-%2]]%End\]{

778 名前:デフォルトの名無しさん (ワッチョイ eb4c-irun) [2017/06/13(火) 14:52:38.21 ID:UX2HAupn0.net]
アドインで出来きました
すごい

星君も読みつつあったのですが、とりあえず
アドインが上手くいったのでこれで進めます
相談に乗ってくださった方々、ありがとうございました



779 名前:デフォルトの名無しさん (ワッチョイ 7d3d-OlK+) mailto:sage [2017/06/13(火) 15:04:10.26 ID:y6bvTk4c0.net]
>>742
Sub foo()
Dim WB As Workbook

With Application.FileDialog(msoFileDialogFilePicker)
If .Show Then src = .SelectedItems(1)
End With

If IsEmpty(src) Then Exit Sub

Set WB = Workbooks.Open(src, 0, 1)

Process WB

If Not WB Is Nothing Then WB.Close: Set WB = Nothing
End Sub

Sub Process(WB As Workbook)
'行いたい処理
End Sub

fooをボタンに登録すれば好きなファイルを指定して開くことが出来る。
ファイルBの処理はProcess内に書く。

780 名前:デフォルトの名無しさん (ワッチョイ 7d3d-OlK+) mailto:sage [2017/06/13(火) 15:07:40.67 ID:y6bvTk4c0.net]
既に解決している悲しみ

781 名前:デフォルトの名無しさん (ワッチョイ 9d73-2i+1) mailto:sage [2017/06/13(火) 15:25:46.39 ID:mycfBP+w0.net]
そして求められていない汎用性のために冗長なコード

782 名前:デフォルトの名無しさん (ワッチョイ a3b3-YGYj) [2017/06/13(火) 18:18:21.99 ID:Te/HyupM0.net]
事務職向けマクロなんだから冗長でも何でも良いと思うけどね。オブジェクト指向バカとか
業務妨害以外の何者でもないと思うしw

783 名前:デフォルトの名無しさん (JP 0H6b-yTT2) mailto:sage [2017/06/13(火) 18:24:08.96 ID:3KAtKhUpH.net]
という思考停止

784 名前:デフォルトの名無しさん (ワッチョイ 2b32-Ell8) mailto:hage [2017/06/13(火) 18:43:27.69 ID:kYQNn7N60.net]
上げでちょっと変わった質問する人と
foo君がセットで登場するのはたまたまだから
ほんとに偶然だから

785 名前:デフォルトの名無しさん (JP 0H6b-yTT2) mailto:sage [2017/06/13(火) 18:47:56.47 ID:3KAtKhUpH.net]
>>758
お前がfoo君と呼んでるのは一人ではない

786 名前:デフォルトの名無しさん (エーイモ SEe9-yTT2) mailto:sage [2017/06/13(火) 18:58:03.59 ID:SvV5ll3TE.net]
( ´_ゝ`)フーン

787 名前:デフォルトの名無しさん (ワッチョイ db6d-D9zB) mailto:sage [2017/06/13(火) 19:10:28.45 ID:YXJzvR0D0.net]
>>756
エクセルがモロにオブジェクトだから、自然とみんなオブジェクト指向バカになるんだな、これが


>>760
そこ

788 名前:はfoonじゃないかな?かな? []
[ここ壊れてます]



789 名前:デフォルトの名無しさん (ワッチョイ a3b3-YGYj) [2017/06/13(火) 19:18:04.89 ID:Te/HyupM0.net]
>>761
ははは、オブジェ馬鹿降臨w

790 名前:デフォルトの名無しさん (ワッチョイ db6d-wxle) mailto:sage [2017/06/13(火) 20:06:15.93 ID:YXJzvR0D0.net]
>>762
LISP、Haskell、Schemeは本当に使いこなせなかった
君の指摘は正しいよ

791 名前:デフォルトの名無しさん (ワッチョイ 0539-vKbL) mailto:sage [2017/06/14(水) 16:29:22.88 ID:Gr+r/r4M0.net]
初心者です

1 処理A
2 処理B
3 処理C
  :
  :

こういう流れのVBAで、処理Aと処理Bそれぞれからスタートさせたいときは、どうやるのが一般的ですか。

sub A
 処理 A
sub B
 処理 B
end sub
end sub

これではだめですよね。

792 名前:デフォルトの名無しさん (ワッチョイ 7d3d-OlK+) mailto:sage [2017/06/1 ]
[ここ壊れてます]

793 名前:4(水) 16:40:22.05 ID:M/IwJ83O0.net mailto: >>764
いまいち何やりたいのか分からないけど、処理 Aを飛ばしたい場合とそうでない場合があるって事なら

Sub Foo(b As Boolean)
If b Then 処理 A
処理 B
処理 C
...
End Sub
[]
[ここ壊れてます]

794 名前:デフォルトの名無しさん (アウアウカー Sae1-cb7n) mailto:sage [2017/06/14(水) 17:02:48.98 ID:bVPmX3VEa.net]
処理というのがどのレベルなのか分からない。

Sub A()
処理A
B
End Sub

'処理B(Bプロシージャ自体が処理B)
Sub B()
'処理Bの内容
End Sub

とする場合もあれば、
全部の処理をそれぞれ別のプロシージャとして作り、メインとなるプロシージャでそれぞれをよび出す場合もある。
この場合はAからよび出すメインプロシージャやBからよび出すメインプロシージャを作ることになる。

795 名前:デフォルトの名無しさん (ドコグロ MM43-W6lL) mailto:sage [2017/06/14(水) 18:56:34.83 ID:e2eXjlywM.net]
>>764
1 処理A
2 処理B
3 処理C
  :
  :
のパターンと
1 処理B
2 処理C
  :
  :
のパターンがあるってこと?
それなら >>765 みたいにするか
Sub ABC_()
 処理A
 Call BC_
End Sub
Sub BC_
 処理B
 処理C
  :
  :
End Sub
ってやるとか

796 名前:デフォルトの名無しさん (ワッチョイ 0539-vKbL) mailto:sage [2017/06/14(水) 22:27:07.82 ID:Gr+r/r4M0.net]
ありがとうございました

自分なりに考えたのは、どこかのセルにフラグを置いといて、
処理中に分岐させるというものでした

767さんがわかりやすいですが、>>765のやり方を勉強してみます

797 名前:デフォルトの名無しさん (ワッチョイ ba52-2WTa) [2017/06/16(金) 11:40:46.40 ID:uw1+X6cJ0.net]
拡張For文とも言われる
For Each (オブジェクト変数) in (そのオブジェクトのコレクション)
の構文で、ときどきその(オブジェクト変数)の処理によってFor Each文でまわすコレクションのオブジェクトの順番や数が変わってしまい困っています。

例えば
For Each iCell in Activesheet.UsedRange
である条件のiCellのときにその直下に新しい行を追加したり
For Each iFile in TargetFolder.Files
でiFileのファイル名を変えようとした場合に(FileSystemObjectを使ってる)
発生しました。

こんなときは処理結果が意図したものと違ってぐちゃぐちゃになって困っています。
最初にFor Eachの行をマクロが通過したときに処理すべきオブジェクトは固定されないんですか?

798 名前:デフォルトの名無しさん (ワッチョイ 87e4-IXCZ) mailto:sage [2017/06/16(金) 12:07:15.60 ID:Qtgdul+t0.net]
For Eachで列挙される順番は、実装依存で保障はされてないはずだけど
普通は同じコレクションに対しては同じ順で帰ってくるよ

For Eachで列挙中にそのコレクションに対して変更した場合は、その列挙はどうなるか分からん
なので要素を増減させるような処理はFor Eachの中でやっちゃ駄目



799 名前:デフォルトの名無しさん (ワッチョイ 1773-sPwl) mailto:sage [2017/06/16(金) 12:11:25.66 ID:BvP/dFhV0.net]
ループ処理中に処理対象を変更したら当然おかしくなると思うが…

800 名前:デフォルトの名無しさん (ワッチョイ ba52-2WTa) [2017/06/16(金) 12:30:40.42 ID:uw1+X6cJ0.net]
>>770-771
そんなことはアホなオレでもわかっとりますわ。

その上でそれを回避するような定番な方法や定石的手順の方法を知りたいのですが。

801 名前:デフォルトの名無しさん (ワッチョイ 873d-VgqF) mailto:sage [2017/06/16(金) 12:33:46.29 ID:pJSV/jBP0.net]
>>772
ループ内で対象を記録しておいて後で書き換えるとか
一時保管場所を作って蓄積してから元の場所へ戻すとか

802 名前:デフォルトの名無しさん (ワッチョイ ba52-2WTa) [2017/06/16(金) 12:39:06.98 ID:uw1+X6cJ0.net]
>>773
しかしそれでも記憶させておくものは参照のメモリアドレスには変わりないと思うから
対処によってこの参照先が変わってしまい同じような意図しないぐちゃぐちゃな結果になったりしませんかね?

あとわからないのがFileSystemObjectでファイル名を変えただけで対象が変わってしまうのが不思議。
これは別に要素の増減でもなんでもないのに。

803 名前:デフォルトの名無しさん (ワッチョイ 873d-VgqF) mailto:sage [2017/06/16(金) 13:09:33.45 ID:pJSV/jBP0.net]
>>774
しませんかね? と質問する前に

804 名前:ゥ分でテスト環境作ってやってみるべき。 []
[ここ壊れてます]

805 名前:デフォルトの名無しさん (ワッチョイ 87e4-IXCZ) mailto:sage [2017/06/16(金) 13:14:04.57 ID:Qtgdul+t0.net]
>>772
>その上でそれを回避するような定番な方法や定石的手順の方法を知りたいのですが。
For Eachを使わない
単純に減るだけならFor Nextで逆順に回すのが定番

あとはループ用に別の列挙(コピー)を用意するか

>>774
FSOがどんな管理になってるかしらんが、名前の変更ってことは
古い名前の削除+新しい名前の追加 だと考えれば不思議はない

806 名前:デフォルトの名無しさん (アウアウエー Saf2-CZIA) mailto:sage [2017/06/16(金) 13:24:05.09 ID:LikhkzB3a.net]
そもそもActivesheet.UsedRangeなんだからシートに処理加えたら要素の数が変わるのは当たり前だろ
一回変数に入れたら困るわけ?
多分fsoのfilesも変数に入れたら固定されるんじゃねえの

807 名前:デフォルトの名無しさん (ワッチョイ 9aec-VgqF) mailto:sage [2017/06/16(金) 15:36:15.71 ID:OvmXQ03X0.net]
ユーザーフォームのボタンをクリックしたとき、ある条件を満たせばボタンの背景色を変えてます。
CommandButton1.BackColor = "&HFF00FF"

ボタンの色を元に(ボタンのデフォルトの色に)戻すのに↓だとエラー(型が一致しません)。どうすればいいんでしょうか?
CommandButton1.BackColor = "&H8000000F&"

808 名前:デフォルトの名無しさん (ワッチョイ 5623-8P7O) mailto:sage [2017/06/16(金) 16:08:49.37 ID:0rZ836RR0.net]
>>778
Debug.Print Typename("&HFF00FF")
Debug.Print Typename("&H8000000F&")

なんで""で括ってるの?



809 名前:デフォルトの名無しさん (ワッチョイ 9aec-VgqF) mailto:sage [2017/06/16(金) 16:34:33.26 ID:OvmXQ03X0.net]
>>779
""は不要でしたか。たぶんどこかのサイトにそのような記述があったんだと思います。
↓でエラーなく色変わりますが""なくてもよかったのか。
CommandButton1.BackColor = "&HFF00FF"

debug.printの結果はstringでした。そりゃそうか。

810 名前:デフォルトの名無しさん (ワッチョイ 9aec-VgqF) mailto:sage [2017/06/16(金) 16:41:13.41 ID:OvmXQ03X0.net]
>>779
あ、書くの忘れてました。
↓これの""を取ったらエラー出ず色がもとに戻りました。ありがとうございました。
CommandButton1.BackColor = "&H8000000F&"






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<310KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef