Excel VBA 質問スレ Part48 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 6f8e-Fc1g)
垢版 |
2017/05/16(火) 08:24:45.78ID:iIGA/64l0
!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
2017/06/11(日) 11:05:46.55ID:P5Uv9Xu70
念のため言っておくけど自分は>>639だよ
655デフォルトの名無しさん (ワッチョイ dd8b-Loth)
垢版 |
2017/06/11(日) 11:08:37.85ID:ED3vqoUB0
キミらはvbaの仕様策定委員にでもなったつもりなのかね?
既に過去のものになりつつあるマクロ言語の
2017/06/11(日) 11:12:48.87ID:P5Uv9Xu70
>>655
その点は>>649の言う通りだけどそういう議論(遊び)だからいいんだよw
657デフォルトの名無しさん (ワッチョイ dd8b-Loth)
垢版 |
2017/06/11(日) 11:15:00.15ID:ED3vqoUB0
>>656
いつから議論をしていると勘違いしていた?
2017/06/11(日) 11:15:11.60ID:eCVTs9al0
>>653
よく分からんな。
>>639>>603の真ん中の例形になっていると思うんだが違うのかい?
2017/06/11(日) 11:18:50.23ID:q49UmmFG0
>>651
「今のVBA」の話と「Set を無くしたVBA」の話の区別もつかないなら話に入ってくるなよ
2017/06/11(日) 11:22:02.96ID:eCVTs9al0
>>659
だからSetを無くしたVBAでは今は動作してない最後の例も認めることになるだろ。

真ん中の例はデフォルトプロパティ、最後の例はオブジェクトだ。
区別つかないんじゃね?って話なんだが。
2017/06/11(日) 11:26:05.68ID:eCVTs9al0
それともSetを無くしたVBAでは真ん中の例も今動いてる状態と違ってオブジェクトへの参照を代入する仕様になる?
2017/06/11(日) 11:28:30.89ID:P5Uv9Xu70
>>658

>>603の真ん中
=代入文は参照、Printの引数は文字列なのでデフォルトプロパティ

>>603の下
=代入文は参照、Print文はプロパティを明示しているから曖昧さはない
2017/06/11(日) 11:32:11.23ID:q49UmmFG0
>>660
代入時点で区別する必要はなくて Print 時点で判断すればいいだけって話
>>648 を理解できてないなら絡んでくるなよ
2017/06/11(日) 11:38:19.86ID:P5Uv9Xu70
>>661
Yesだ
>>639はそう書いている
2017/06/11(日) 11:47:41.80ID:eCVTs9al0
>>662
ということは、今動いてる状態とは違う仕様になるということだな。

そうすると、
Dim var1 As Variant
var1=Range("A1")+1
はエラーとなる?
2017/06/11(日) 11:52:36.50ID:eCVTs9al0
>>663
それは間違い。
代入時点で決まらなければ区別がついていないことと同じ。
次の文まで不定なら言語仕様が滅茶苦茶になる。
2017/06/11(日) 11:58:44.94ID:eCVTs9al0
Dim var1 As Variant
var1=Range("A1")+1
では先にRange("A1")+1が評価されるからその時点でデフォルトプロパティに+1された値がvar1に代入されてうだな。

う〜ん。
2017/06/11(日) 12:02:43.42ID:P5Uv9Xu70
>>667
そりゃそうだろ。
式の両辺の型によって挙動が決まるんだから。
2017/06/11(日) 12:02:50.72ID:46pYjw9V0
他のオフィススイートについてるスクリプトには、デフォルトプロパティってあるの?
2017/06/11(日) 12:06:35.73ID:q49UmmFG0
>>666
お前の能力だと滅茶苦茶になるだけだろ w
滅茶苦茶になる例のひとつでも書いてみろよ
2017/06/11(日) 12:08:58.69ID:46pYjw9V0
そもそもなんでデフォルトプロパティなんて面白い物を作ったんだ
入門の敷居をできるだけ下げるために、.value・.valeu2・text、などを考えなくていいようにしたんだろうか
2017/06/11(日) 12:12:28.05ID:eCVTs9al0
>>670
デバックでステップ実行してみろ。
1行1行解釈実行されるのが基本。
後の文により前の文の解釈が変わる言語なんて滅茶苦茶だぞ。
構文エラーはプログラム全体を評価するまで決まらないことになる。
2017/06/11(日) 12:18:03.12ID:eCVTs9al0
>>668
君の仕様では式の両辺の型で挙動が決まらない。
var1=Range("A1")ではオブジェクト
var1=Range("A1")+1ではデフォルトプロパティとなるけど、今んとこ辻褄は合っているようにも見えるから、う〜んと考えている。
2017/06/11(日) 12:22:52.52ID:46pYjw9V0
Range("A1") = Range("A1")
2017/06/11(日) 12:52:35.79ID:q49UmmFG0
>>672
> 後の文により前の文の解釈が変わる言語なんて滅茶苦茶だぞ。

バカなの?
理解力ないのに無理すんなよ w
> var1=Range("A1")
の解釈変わってないぞ
2017/06/11(日) 13:30:16.95ID:eCVTs9al0
>>675
日本語が変なんじゃね?

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

代入時点で区別する必要ないということはどういうこと?
代入時点で確定してるなら区別もできてる筈だし。
2017/06/11(日) 13:32:39.14ID:eCVTs9al0
>>675
君の説明では
var1=Range("A1")
の段階では型が決まるのか、それとも決まらないのかどっち?
2017/06/11(日) 13:42:39.50ID:P5Uv9Xu70
>>674
変数への代入の話題なのでそれは関係ないよ。
その左辺 Range("A1") は変数ではない。
2017/06/11(日) 13:50:31.78ID:46pYjw9V0
>>678
変数じゃなければ何だろう?
アプリケーション側で用意されているとは言え、変数ではなかろうか
2017/06/11(日) 13:56:28.52ID:eCVTs9al0
>>674
俺の理解ではそれは左辺の側がデフォルトプロパティかオブジェクトかという話になるから>>640と同じことになると思う。

だからその点では、つまり>>640以外で辻褄が合っていないという例にはならないと思う。
2017/06/11(日) 14:01:42.55ID:q49UmmFG0
>>676-677
代入時点で Variant ならオブジェクトの参照を入れときゃいいだけだろ

>> var1=Range("A1")
> の時点では var1 はセルA1への参照の代入として
ってはっきり書いてあるんだから人の日本語にいちゃもんつける前に自分の理解力を省みろよ
2017/06/11(日) 14:17:20.73ID:46pYjw9V0
>>678
確かにrangeだとややこしいな、新しいclassを作ってみよう
fooClassとする
fooClassのデフォルトメンバはfoo。fooのclassは自身と同じfooClass
class fooClass{
'この書き方は適当
default public Property foo as fooClass;
}

これだとfooで何が返ってくるか不定
Dim foo as fooClass
foo = New fooClass();
2017/06/11(日) 14:30:41.83ID:nUk6Os5uM
そういや自作クラスでデフォルトプロパティって作れるの?
作ろうと思ったこともなかった
2017/06/11(日) 14:35:03.70ID:P5Uv9Xu70
http://www.cpearson.com/excel/DefaultMember.aspx
2017/06/11(日) 14:38:19.83ID:46pYjw9V0
>>683
一応作れる
ただ普通は作ろうと思わないレベルでめんどくさいし、そんなもんアテにするような設計にしないだろう
2017/06/11(日) 14:55:51.72ID:Rohm8Nl3a
>>681
つまりPrint文は関係無いんだよ。

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

は間違い。
代入時点で区別はついてる。
2017/06/11(日) 16:32:41.31ID:TSTIJwyzM
>>682
まあそのケースがまずいのはわかってるがそんなクラスを作る必要がどんだけあるんだ?
って話だな
2017/06/11(日) 16:40:50.47ID:TSTIJwyzM
>>686
> 代入時点で区別はついてる。
だから区別なんてしない
両方ともに参照を入れとくだけ
って書いてあるんだが...
どうやったらそんなアホな考え方になるのか不思議だよ
まあ引っ込みつかなくなってるんだろうな w
2017/06/11(日) 16:45:50.31ID:46pYjw9V0
>>687
わかってるならその反論はおかしいだろう
言語仕様としておかしくなる

デフォルトプロパティがあるなら、setはどうしても発生すると思う
2017/06/11(日) 17:19:36.49ID:q49UmmFG0
>>689
別にそのケースなら参照を返すようにしてディフォルトプロパティは明示する(つまりディフォルトプロパティの意味がなくなる)ようにすればいいだけ
特殊なケースで使えないからと言って全部ダメって言う話ではないでしょ
2017/06/11(日) 17:25:11.30ID:CaL9CXkoa
>>688
引っ込みも何も、今だに何言ってるのか分からん。
とレスしようとしたけど今分かった。


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



「代入時点では参照が代入され、Print時点でデフォルトプロパティが返される」といいたいのだとしたら上の文章の日本語が悪いよ。
2017/06/11(日) 17:36:51.51ID:q49UmmFG0
>>691
> 「代入時点では参照が代入され、Print時点でデフォルトプロパティが返される」といいたいのだとしたら上の文章の日本語が悪いよ。

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

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

>> Debug.Print var1
> の時点でディフォルトプロパティを取得して表示すればいいだけ
2017/06/11(日) 17:37:06.07ID:CaL9CXkoa
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)
->?

こういう問題?
2017/06/11(日) 17:43:49.85ID:CaL9CXkoa
>>692
俺は>>661の段階で真ん中も参照と気付いたわけ。
その後に>>663が書かれているのは日本語が悪いと言ってる。
2017/06/11(日) 17:47:03.90ID:46pYjw9V0
>>690
自身のclassがメンバに〜は普通にある。特殊ではない
2017/06/11(日) 17:48:52.10ID:46pYjw9V0
話はずれるが、「エクセルvaが特殊」は事実
20年以上前から生き残っている、大衆に使われ続けているスクリプト言語なんてエクセルvbaだけ
次点でjsだろう

デフォルトプロパティだろうがなんだろうが、実装すればデファクトスタンダードになる
ある意味、王様である
好きなようにあすれば良いんじゃないかな
2017/06/11(日) 17:51:02.18ID:q49UmmFG0
>>694
> その後に>>663が書かれているのは日本語が悪いと言ってる。
>>663>>648 へのアンカー打ってあるのに何を言ってるんだよ w
恥の上塗りにしかなってないぞ
2017/06/11(日) 17:53:41.74ID:q49UmmFG0
>>695
自身のクラスオブジェクトを返すディフォルトプロパティを持つクラスが特殊じゃないって?
例えば何よ?
2017/06/11(日) 18:07:00.10ID:CaL9CXkoa
>>697
アンカー打ってあっても日本語が悪いのは変わらんぞ。

>>648>>663の文章とどう関係するのか分からん書き方になってるんだから。
2017/06/11(日) 18:18:57.69ID:46pYjw9V0
>>698
特殊かどうかは言ってないね
存在すると整合性が保てなくなると言っている
それがExcelの中にあるかどうかなんて知らん
2017/06/11(日) 18:39:15.05ID:q49UmmFG0
>>699
そもそも >>663 の日本語もおかしくないだろ
前提をいくつかはしょってるのは話の流れで省略してもわかるはずって言う考えで書いてる
それでも横入りで絡んでくるアホがいるから念のために
> >>648 を理解できてないなら絡んでくるなよ
とまで書いてある
ここまで書いてあって理解できない奴の面倒までは見れんよ w
2017/06/11(日) 18:41:48.44ID:46pYjw9V0
>701
代入時点で評価の必要があります
2017/06/11(日) 18:42:38.69ID:q49UmmFG0
>>700
> 特殊かどうかは言ってないね
頭大丈夫?
> 特殊ではない
ってはっきり書いてますけど? w
> 存在すると整合性が保てなくなると言っている
お前さんの考える整合性とやらがどんなもんか知らんけど >>690 でなんの問題もないけどね
2017/06/11(日) 18:43:10.17ID:q49UmmFG0
>>702
理由は?
2017/06/11(日) 18:45:21.77ID:Tl5W6+aa0
Set無しVBA言語作るって流れになったら面白いんだけどなぁ。
2017/06/11(日) 18:56:04.59ID:46pYjw9V0
>>703
デフォルトプロパティは毎回明示するのか?
A1セルのvalueを知りたい場合は
cells(1,1).value
と書けば良いのか、なるほどな

cells(1,1)
だけならエラーを変えした方がいいな
2017/06/11(日) 19:01:02.23ID:P5Uv9Xu70
型を意識する・させることで皆が幸せになる

...そんなふうに思っていた時期が自分にもありました
2017/06/11(日) 19:05:21.58ID:UNIZBcCUa
>>701
>代入時点で区別する必要はなくて
ってのは>>639の"十分区別できると思うけど"の区別のことだよな。

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

>Print 時点で判断すればいい
も、何言ってるのか分かりにくい。
2017/06/11(日) 19:08:29.30ID:UNIZBcCUa
>>706
それ、デフォルトなの?
デフォルトって何なの?

って言いたいってこと?
2017/06/11(日) 19:12:53.44ID:UNIZBcCUa
まあ、実際には自分はSetに違和感全く感じないし、Variantで宣言することも殆ど無いし、デフォルトプロパティの省略も殆どしないんだけどね。
2017/06/11(日) 19:20:07.39ID:q49UmmFG0
>>706
> デフォルトプロパティは毎回明示するのか?
>>682 のケースだけね
実際にあるのかどうかは知らんけど w

> cells(1,1)
> だけならエラーを変えした方がいいな
そう言うオプションはあってもいいと思う
2017/06/11(日) 19:21:24.90ID:46pYjw9V0
>709
いやもう言語仕様を考える時って最初によっぽど不具合がなければそれでいいよねってこと
vbaは非常に変則液だけど、まぁエクセル・アクセルのためなら仕方ないんじゃないの
2017/06/11(日) 19:27:31.75ID:q49UmmFG0
>>708
> "必要"とか何が必要?
> という話になる。
はあ?
「区別する」必要がないって書いてあるだろ

>> Print 時点で判断すればいい
> も、何言ってるのか分かりにくい。
お前の理解力がないだけ
何度も書くけど理解できないなら >>648 見ろって書いてあるのになぜか見ずに文句だけは一人前 w
2017/06/11(日) 19:42:43.65ID:UNIZBcCUa
>>713
いや、だから
>「区別する」必要がない
が変なんだって。
代入時点で区別はついてるのになんで必要とかの話になるの?と受けとられるだろ。

> Print 時点で判断すればいい
も、誰が何を判断するんだ?と受け取られる。
2017/06/11(日) 19:42:52.34ID:P5Uv9Xu70
型を意識しようよ

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

デフォルトプロパティが適用されるべきかどうかは等式の左右の型を見れば基本わかる。
わからないような式は曖昧なんだからコンパイルエラーにすべきだ。
2017/06/11(日) 19:49:48.15ID:UNIZBcCUa
>>715
う〜ん。
むしろSet使ってクラスとリテラルを意識したいけどなあ。

あと、真ん中はやっぱりデフォルトプロパティの代入の方がしっくり来ると思うんだ。
だからこそ、あっさりデフォルトプロパティの代入を捨て去ると思えなかったから>>645書いたんだぜ。
2017/06/11(日) 20:02:29.23ID:46pYjw9V0
>>715
application内の型を意識しなくていいための、弱い動的型付けなんだよ
この設計思想は街ぃがってないと思う
2017/06/11(日) 20:12:03.18ID:q49UmmFG0
>>714
> 代入時点で区別はついてる
それはお前が勝手に言ってるだけの話だろ
俺は初めから必要ないって書いてるから
> なんで必要とかの話になるの?と受けとられるだろ。
なんて受けとるアホはいないと思うぞ、お前以外は w

>> Print 時点で判断すればいい
> も、誰が何を判断するんだ?と受け取られる。
マジでオブジェクト指向の勉強しなよ...
そんなのを疑問に思うなんて相当レベル低いから
2017/06/11(日) 20:17:12.06ID:46pYjw9V0
>>682
はだめかなぁ
徹底的に論破してほしいんだけどなぁ
2017/06/11(日) 20:19:33.09ID:P5Uv9Xu70
しかし冷静に考えると斬新かもな。
単一の文だけ見て解釈するんじゃなく、複数の文を見て意味を解釈するプログラミング言語。
2017/06/11(日) 20:25:38.17ID:UNIZBcCUa
>>718
>それはお前が勝手に言ってるだけの話だろ

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

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

を省略せずにきちんと書いてみなよ。
2017/06/11(日) 20:26:28.99ID:tRESVVuh0
俺の考えた最強の言語仕様の話はよそでやってくれ
2017/06/11(日) 21:00:46.39ID:q49UmmFG0
>>721
> 代入時点で参照であると区別がついてるのが実態だろ。
お前はまず「区別」の意味を調べてから出直してこい
A か B かの区別がつくと言う言い方はあるけど A と区別がつくとは言わん

> を省略せずにきちんと書いてみなよ。
>>648 で十分だろ
それで不十分と言うならほぼ同じこと書いてる >>691 も不十分と言うことだ w
2017/06/11(日) 21:12:26.64ID:VtUxFQZs0
いつまでくっだらねーーーーーーーー話を続けるつもり?別スレでも立ててそこでやれよ
2017/06/11(日) 21:17:53.56ID:P5Uv9Xu70
もはやどこが起点かわからない
2017/06/11(日) 21:31:09.13ID:P5Uv9Xu70
だれかQiitaにまとめてくれ
2017/06/11(日) 21:46:23.06ID:UNIZBcCUa
>>723
お前な、自分は省略してるのに俺の省略は認めないのか?

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

>>691は省略しても分かるだろ。
>>663は省略されてると分からんのだよ。
というより省略しなかった時に正しい日本語になるように思えないからやってみろと言ったんだよ。
728デフォルトの名無しさん (ワッチョイ e511-Z3xB)
垢版 |
2017/06/11(日) 21:54:15.52ID:7YVvLMef0
以下のエクセルファイルについてなんですが
https://kouseikyoku.mhlw.go.jp/tohoku/gyomu/gyomu/hoken_kikan/documents/zen_sitei_ika_h2905.zip


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

些細なことで申し訳ありませんが
どなたか原因わかる方教えてください。
2017/06/11(日) 21:56:59.58ID:46pYjw9V0
>728
凄まじい個人情報でてる気もするけど、まぁいいか
・保存するかどうかを聞かれ
2010では聞かれない

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

バージョンを教えてほしい
2017/06/11(日) 22:06:15.50ID:P5Uv9Xu70
>>728
保存するかどうかなんて聞かれないな
数式もないようだ
2017/06/11(日) 22:10:07.67ID:q49UmmFG0
>>727
> 代入時点で参照であるとデフォルトプロパティとは区別がついてるのが実態だろ。
だからそれはお前が勝手に言ってる話
そもそも区別がつくとか言ってるが勝手につく訳じゃなくて処理系が何らかの判断をしてるんだからそんな判断は「必要ない」って書く方が適切だろ

> >>663は省略されてると分からんのだよ。
話の流れ見てたらわかるし、わからん奴のためにアンカーまで書いてるだろ
何回ループするんだよ
2017/06/11(日) 22:46:10.07ID:KFvNUsfN0
>ファイルサイズが半分くらい減ってしまうのも気になります

減った状態が正しいファイルサイズなんじゃないの。
2017/06/11(日) 23:33:20.89ID:49bQJmPP0
なんか、何時何分何秒地球が何回回った時ですかあ?と同レベルのやりとりだな
2017/06/12(月) 00:17:03.07ID:y5ZQ52Yx0
>>731
やっぱり日本語の問題なんだ。
今をもってしても分かりにくい。

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

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

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

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

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

今だに分からんのは>>663の判断するのは誰かって話。
処理系なら判断すれば"いい"などとはならないと思うし。
Print時点で決まっているんだから判断とかいう話にはならない筈だろ。
2017/06/12(月) 00:24:47.55ID:Ch/XnpW30
┐(´д`)┌ヤレヤレ
2017/06/12(月) 01:25:41.57ID:YlzHeDxH0
>>682
foo君久しぶりじゃんwww


つかお前らhgだからって不毛な争いしてんじゃねえ
よそでやれクズ共
2017/06/12(月) 01:28:29.93ID:YlzHeDxH0
>>728
ワッチョイ e511-
臭う
2017/06/12(月) 05:44:51.02ID:RhdpYx9V0
長文君はなぜか自分の日本語能力を疑わない w
2017/06/12(月) 08:46:55.31ID:ZaZcTWz8x
>>736
承認するよ
740デフォルトの名無しさん (ワッチョイ e511-yTT2)
垢版 |
2017/06/12(月) 19:32:27.05ID:5L3xq22d0
%%%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
2017/06/12(月) 20:31:46.57ID:ysyGP+YI0
>>740
マジで?
742デフォルトの名無しさん (ワッチョイ eb4c-irun)
垢版 |
2017/06/13(火) 10:48:41.12ID:UX2HAupn0
マクロは記録をいじるぐらいの初心者です

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

というのを作れるものなら作りたいけど、可能ですか?
Bファイルは毎日新しいのが来ます
出来るとしたら検索ワードが悪いらしく、見つけられないので
なんという動作なのか教えてください
2017/06/13(火) 11:35:01.49ID:P4se3SJtd
>>742
Aは自分の手元にあるブックでBは他所から届くのか。

「BでAで作ったマクロが動き、」の意味がよくわからない。
なんとなく簡単ぽいけど
2017/06/13(火) 11:35:40.67ID:mycfBP+w0
workbook.open
記録ではできない
745デフォルトの名無しさん (ワッチョイ eb4c-irun)
垢版 |
2017/06/13(火) 12:08:11.62ID:UX2HAupn0
>>743
Aは自分のパソコンに作ったもので、Bは毎日他所からきます。
Bを開いてそこからAで作ったマクロを動かすしかダメですか?

>>743
記録ではムリなので、見本となるのがあればいじれないかなと思って聞いてみました
2017/06/13(火) 12:14:45.05ID:rPkjB82P0
>>742
Aのブックにマクロを記述
 ファイル名が固定でないなら GetOpenFilenameでファイルを選択
 ごちゃごちゃなんか知らんけど開いたブックBに対して処理をする
 Aを閉じる(ついでにExcelそのものも終了させる)

だろ?
747デフォルトの名無しさん (ワッチョイ eb4c-irun)
垢版 |
2017/06/13(火) 12:31:59.08ID:UX2HAupn0
>>746
そうです

マクロのボタンの作り方とか調べても、同じファイル内で
動くものしか出てこないので、ボタン一押しで動かせないのかと
そういう話です
748デフォルトの名無しさん (アウアウウー Sa99-pGgJ)
垢版 |
2017/06/13(火) 12:32:20.96ID:5pkXRrDKa
星くん vbaでググって
第2章読めば似たようなことが書いてあるよ
2017/06/13(火) 13:52:35.48ID:TodKlzHt0
>>742
普通はアドインにする。
Aファイルは開く必要が無い。
アドインならExcel開いたらAファイルも開いてる。
ブックは非表示だから開いてるようには見えないけどメニューにボタンを追加すればマクロは動作する。
2017/06/13(火) 14:48:02.77ID:3KAtKhUpH
>>749
君の中では普通かもな
2017/06/13(火) 14:50:25.60ID:B6CxFrBV0
@@@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\]{
752デフォルトの名無しさん (ワッチョイ eb4c-irun)
垢版 |
2017/06/13(火) 14:52:38.21ID:UX2HAupn0
アドインで出来きました
すごい

星君も読みつつあったのですが、とりあえず
アドインが上手くいったのでこれで進めます
相談に乗ってくださった方々、ありがとうございました
2017/06/13(火) 15:04:10.26ID:y6bvTk4c0
>>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内に書く。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況