1 名前:デフォルトの名無しさん [2017/11/08(水) 11:26:30.13 ID:+KUB1/9hd.net] スレ立ての際は一行目に !extend:checked:vvvvv:1000:512 と入れてスレ立てして下さい ExcelのVBAに関する質問スレです コード書き込みや作成依頼もOK ※関連スレ VBAなんでも質問スレ Part2 mevius.2ch.net/test/read.cgi/tech/1432173164/ Access VBA 質問スレ Part1 mevius.2ch.net/test/read.cgi/tech/1328536426/ Excel総合相談所 126 https://mevius.2ch.net/test/read.cgi/bsoft/1496487719/ ※前スレ Excel VBA 質問スレ Part50 mevius.2ch.net/test/read.cgi/tech/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured 👀 Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
438 名前:デフォルトの名無しさん [2017/12/14(木) 00:44:33.92 ID:oVDd8Fug0.net] >>423 Workbooks.Open(filename:= ApplicationGetOpenFilename) →\C:〜〜〜〜という文字列が返される ApplicationGetOpenFilename →これも同じ なぜ前者はWorkbook変数に格納できて 後者はできないんだ?
439 名前:デフォルトの名無しさん [2017/12/14(木) 00:45:53.39 ID:oVDd8Fug0.net] >>427 そんなもん知ってるわ Rangeやcellsのvalueみたいなもんだろ? Workbookオブジェクトのデフォルトプロパティはなんだ?
440 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 00:48:20.20 ID:0XKK4N9O0.net] >>424 悪いけど>>412 の書き方じゃ分かってるようには見えない set を付けてない時点でこの人は分かってないんだなと判断されても仕方ない そして >Application.GetOpenfilename = ファイルを開いた時は文字列が返される も間違い Application.GetOpenfilename は、 あくまでもファイルのパス情報を文字列(或いは false)で返すだけで 実際にブックを開けることはしない だから正確に書くと Application.GetOpenfilename = ファイルを「選択した」時は文字列が返される というべきで、そのブックを開くためにworkbooks.open を用いる必要がある
441 名前:デフォルトの名無しさん [2017/12/14(木) 00:51:58.64 ID:oVDd8Fug0.net] >>430 set オブジェクト変数を代入するとこに扱うステートメント
442 名前:デフォルトの名無しさん [2017/12/14(木) 00:53:08.36 ID:oVDd8Fug0.net] >>430 ファイルを開いたっていうのは 選択したって意味なんだが オブジェクトとOPENメゾットで初めて開く こんなの知っている
443 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 00:53:19.64 ID:0XKK4N9O0.net] >>430 でもまだ不正確だった より正確に言うと Application.GetOpenfilename = 「開きたい(あるいは移動、コピー、改名、削除など何らかの操作をしたい)」ファイルを「選択した」時は文字列が返される ですね
444 名前:デフォルトの名無しさん [2017/12/14(木) 00:55:08.87 ID:oVDd8Fug0.net] >>433 んなもんしってるわ キャンセル押されたらフェイルス ファイルを選択したらパス文字列
445 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 00:56:13.50 ID:0XKK4N9O0.net] >>432 いや、それが分かってるなら何を問題にしてるのかがよく分からない それと「メゾット」じゃなくて「メソッド」ね
446 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 00:56:39.81 ID:pIjJ7/MG0.net] 真面目に答えるんじゃなくて わりと真面目に答えるように
447 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 00:58:18.78 ID:FrwGQASIx.net] >>420 ちなみにworkbookオブジェクトのデフォルトプロパティは存在しない 存在しないから当然、workbook型に合わないデータは代入できない
448 名前:デフォルトの名無しさん [2017/12/14(木) 01:00:54.08 ID:oVDd8Fug0.net] >>437 じゃあなんで workbook.openのパス文字列は入るんですかねえ
449 名前: [] [ここ壊れてます]
450 名前:デフォルトの名無しさん [2017/12/14(木) 01:01:13.61 ID:oVDd8Fug0.net] ここまで答えなしだが 誰もわからないのか?
451 名前:デフォルトの名無しさん [2017/12/14(木) 01:01:34.43 ID:oVDd8Fug0.net] おれの質問ってVBAの穴をついた?
452 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 01:04:09.93 ID:0XKK4N9O0.net] 質問の意味がわからないんですよね 何が疑問なのか、独自表現を用いずに、 set やなんかも省略せずに正しく動作するコードと 動作しない理由が知りたい動かないコードを書いてみてもらえます?
453 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 01:05:31.95 ID:FrwGQASIx.net] >>428 workbooksは、workbookクラスではない 別のオブジェクトのクラスだ それから、さっきも書いたが、Openメソッドの戻り値は引数で指定されたパスを持つWorkbookオブジェクトなのであって、Openメソッドによってパス自体が戻ってくる訳ではない パスを返してくるApplicationクラスのGetOpenFilenameメソッドとは全く働きが違う プロパティやクラスや引数の名前で何となくbookとかfileとか付けばパス付のWorkbookオブジェクトが返ってくるものと混同してるようだが、きちんと区別しないといけない
454 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 01:13:20.35 ID:FrwGQASIx.net] >>438 Openメソッドが要求する名前付き引数Filenameに、GetOpenFilenameで取得したパスを設定して、その結果新しく開いたWorkbookオブジェクトが返っているからだよ このFilenameはApplication.GetOpenFilenameメソッドの戻り値ではあるけど、Workbooks.Openメソッドの戻り値ではない Worksheets.Item(Index:=ActiveSheet.Name)みたいな処理と一緒だと言えば少しは分かるか?
455 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 01:13:59.17 ID:FrwGQASIx.net] >>440 突いてない 典型的な初心者の質問
456 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 01:17:18.86 ID:LaUulqGP0.net] 典型ではないな 低次元な初心者の質問
457 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 01:22:45.67 ID:FrwGQASIx.net] たぶんこの質問者は、コレクションを知らないタイプだな、 それから、式に含まれるプロパティ名やメソッド名をオブジェクトのクラス名と同一視しているタイプだろう
458 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 01:34:07.25 ID:n2gI2QxJ0.net] たぶんハイパーリンクでパスが表現される事が多いところから、 パスが文字列とは異なるデータ型を持つ何かだと勘違いしてるだけじゃないの?
459 名前:デフォルトの名無しさん [2017/12/14(木) 07:32:56.86 ID:oVDd8Fug0.net] >>443 workbooks.open filename:=Application.GetOpenfilename この場合はworkbooksオブジェクトに選択したパス文字列が格納されるのか? だからworkbook型に格納できるのか?
460 名前:デフォルトの名無しさん [2017/12/14(木) 07:37:06.65 ID:oVDd8Fug0.net] >>446 ん? workbooks worksheets rows これはコレクションだろ? コレクションはオブジェクトの最上位 プロパティはオブジェクトの何? メゾットはオブジェクトに命令 違うか?
461 名前:デフォルトの名無しさん [2017/12/14(木) 07:40:17.60 ID:oVDd8Fug0.net] マジでわかりやすい答えがない
462 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 08:30:04.65 ID:mohvOYX1x.net] >>448 君の言う「格納」は、コレクションへのオブジェクトインスタンスの追加、プロパティ値の設定、変数への代入、引数の受け渡し等がごちゃごちゃになっていると思う まず、Workbooksコレクションに、データの代入はできない WorkbooksコレクションはWorkbookオブジェクトの集まりを要素に持つコレクションオブジェクトだから それから、Workbooks.Open Filename:=Application.GetOpenFilenameという構文は、Workbook型の変数に値を代入しているわけではない Filenameという名前付きで定義されたOpenメソッドの文字列型の第一引数に値を渡していて、その結果としてOpenメソッドがWorkbookオブジェクトを返しているわけで、オブジェクト型変数への代入ではない
463 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 08:45:33.01 ID:YV9D93CW0.net] >>449 コレクションは最上位じゃない 一番上にあるのはオブジェクト
464 名前:デフォルトの名無しさん [2017/12/14(木) 08:46:43.07 ID:QIiUylbtp.net] >>451 いやそんなのしってるんだけど dim i string dim wb workbook application.Getopen filename:=で目的のファイルを開く そしたら「¥:目的のワークブック.xlsx」が文字列として帰って来る workbooks.open filename:=目的のファイル これで初めて目的のファイルが開く ここで本題 どちらも目的のファイルのバス名が返ってきているのに set wb = application.GetOpen filename だとエラーで set wb = workbooks.open (filename :=目的のワークブック.xlsx) これならwbオブジェクト型変数に代入される意味がわからない これをはっきり答えろ わかりやすくな
465 名前:デフォルトの名無しさん [2017/12/14(木) 08:47:18.91 ID:QIiUylbtp.net] >>452 一番上 ↓ 最上 日本語やり直したほうがいい
466 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 09:00:03.55 ID:n2gI2QxJ0.net] >>453 Set wb = Application.GetOpenFilename は、String型をWorkbook型のポインタへ代入しようとしてエラー吐いてる。 Set wb = Workbooks.Open(Application.GetOpenFilename) Set wb = Workbooks.Open("目的のワークブック.xlsx") は、OpenメソッドにString型変数を渡しているから機能する。
467 名前:デフォルトの名無しさん [2017/12/14(木) 09:02:02.66 ID:QIiUylbtp.net] >>455 workbook型のポインタってなに? これがわかればすっきり
468 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 09:02:04.79 ID:CHPwg0pDx.net] >>449 コレクションはオブジェクトの最上位、という発想がそもそも間違い コレクションは子要素に追加されているデータやオブジェクトへのアクセス等を提供する、子要素からは独立したオブジェクトだ 更に、WorkbooksコレクションオブジェクトはWorkbookオブジェクトのみを要素に持つようにあらかじめ最適化された規定のコレクションオブジェクト
469 名前:デフォルトの名無しさん [2017/12/14(木) 09:05:19.87 ID:QIiUylbtp.net] >>455 WB型変数に文字列代入は不可 メゾットの戻り値の代入は可能ってこと? なんで?
470 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 09:05:51.56 ID:YV9D93CW0.net] >>454 日本語だけ知ってても言語仕様を正確に説明する難しいんだよ コンピューター業界では「上位」などの言葉には特別な意味を持たせる場合もあるし、 とくに相手がド素人だと、言葉の意味から説明するのも面倒だから、あえて上位という単語は避けた上で なんとなく通じてくれそうな「上」って言い方をしたんだよ お前の態度が気に入らないからワッチョイ Spc7はNGするわ 人に何か質問する時は最後までていねいな言葉を使え
471 名前:デフォルトの名無しさん [2017/12/14(木) 09:07:28.47 ID:QIiUylbtp.net] >>459 うんこーwwwwwwwwwwうんこーwwwwwwwwww
472 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 09:08:52.24 ID:CHPwg0pDx.net] >>453 そもそもApplication.GetOpenFilenameはブックを開いてブックへの参照を返すメソッドじゃなくて、ユーザーにダイアログ画面上で選択させたファイルのパスを返すメソッドなんだが メソッド名で混乱してるだろ君
473 名前:デフォルトの名無しさん [2017/12/14(木) 09:11:20.55 ID:QIiUylbtp.net] >>461 いやしってるけど キャンセルが押されたらフェイルスだし 選択したらパス名が返って来る 何回言えば気がすむんだよ
474 名前:デフォルトの名無しさん [2017/12/14(木) 09:12:47.30 ID:QIiUylbtp.net] Openメゾットはただブックを開くだけだろ? ただし 引数を戻り値として得られる つまり 開いたファイル名がOpenメゾット内にある 違うかい?いい線いってる?
475 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 09:13:02.91 ID:n2gI2QxJ0.net] >>458 なんでも何もデータ型が一致するかどうかが問題であって、メソッドの戻り値の型は一致するってだけ。 たぶんJavaScriptから始めたせいで認識がおかしくなってるんだろうけど、 普通はデータ型が異なる変数同士の代入は出来ない。
476 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 09:14:18.68 ID:CHPwg0pDx.net] この質問者みたいな人が言語仕様について思い込みや勘違いをしたまま共用マクロを組んだりすると、会社にとって迷惑なだけなんだよな 作ったマクロを他人と共有しないことを祈るのみ
477 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 09:20:19.35 ID:CHPwg0pDx.net] >>462 それ俺がきのう説明したことだよねw オブジェクト型変数にGetOpenFilenameから返った文字列型データやデータ配列を設定しようとしてるのがおかしいんだがw データ型とか一回学んだ方が良いと思うよ それから蛇足だけど、フェールスじゃなくて、フォルス、フォールス、ファルスの何れかの表記にしないと、Falseのことだと理解してもらえないことが多いと思うよ
478 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 09:25:08.03 ID:CHPwg0pDx.net] >>463 引数の文字列は戻り値にならない Openの戻り値はWorkbookオブジェクトの実体だ Workbookオブジェクトの実体とパス文字列はイコールじゃない それから、メゾットじゃなくてメソッドな あんまり特徴的な言葉づかいしてるとメゾット君と フェールス君とか呼ばれたりするかもしれないから気を付けなよ
479 名前:デフォルトの名無しさん [2017/12/14(木) 09:30:34.82 ID:QIiUylbtp.net] >>467 実体でなに?どころどころで補足質問しねえといけねえのかよ
480 名前:デフォルトの名無しさん [2017/12/14(木) 09:31:25.92 ID:QIiUylbtp.net] >>464 変数同士? workbook型あとは何? これも補足質問
481 名前:デフォルトの名無しさん [2017/12/14(木) 09:32:51.20 ID:QIiUylbtp.net] >>466 データ型の参考ページは? 猿でもわかるやつ
482 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 12:17:27.13 ID:7XekaZVWx.net] >>470 その言い方は猿に対して失礼だぞメゾット君 WordやPowerPointのVBAと違ってExcelは「Excel VBA データ 型」でググれば腐るほど情報が出てくるから、好きなページを読んで出直してきたらいいさ インスタンスもググってみたらいいよ
483 名前:名無し mailto:sage [2017/12/14(木) 12:34:50.44 ID:DWbie50BM.net] >>468 Workbookの実体とは開いて実行しているエクセルブックのことだよ。ブックはVBAが管理しているメモリ上のデータではないってこと。そこにアクセスする為の情報だけがWorkbook型変数には格納されている。 これ以上はググったほうがいいな。メゾットちゃんには言葉だけでは通じないみたいだし。
484 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 12:36:44.73 ID:bra/P7/Ad.net] どう考えてもこいつは型も文法も戻り値も
485 名前:理解できてないだけだろ [] [ここ壊れてます]
486 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 12:45:31.15 ID:PlqHEg1vH.net] インスタンスはお湯かけて3分で完成するよ (´・ω・`)b
487 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 13:37:10.14 ID:D0PQd/9/a.net] 体系だてた答えがほしいならオブジェクト指向あたりの本読んだ方がいいんじゃねえの 正確にはオブジェクト指向じゃないけどクラスとインスタンス(やそれにくっついてるメソッドやプロパティ)の関係を理解するにはそれがはや道だわ ここは教科書じゃないから
488 名前:デフォルトの名無しさん [2017/12/14(木) 14:17:01.84 ID:QIiUylbtp.net] なんでぱぱっと答えられねえの?頭悪いの?
489 名前:デフォルトの名無しさん [2017/12/14(木) 14:18:03.10 ID:QIiUylbtp.net] >>472 ふーん 開いてから格納する これだけだよね?詰まる所は
490 名前:デフォルトの名無しさん [2017/12/14(木) 14:27:22.00 ID:QIiUylbtp.net] Openメソッドで開かないと workbook型に入らない
491 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 14:28:58.06 ID:oiVEYMPnp.net] それは結果に過ぎない ちゃんと原因や理屈を押さえないとまた同じことで詰むぞ
492 名前:デフォルトの名無しさん [2017/12/14(木) 14:49:26.55 ID:QIiUylbtp.net] >>479 それをわかりやすく教えて ほんとにわかりやすく
493 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 14:51:48.29 ID:/xE3TN/oa.net] >>480 無理だよ
494 名前:デフォルトの名無しさん [2017/12/14(木) 15:05:19.17 ID:QIiUylbtp.net] >>481 別の言葉に置き換えればいいだろ?
495 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 15:22:14.17 ID:yqG/N6/gM.net] ID:QIiUylbtpはVBA以外の言語知ってるの? それともExcel VBAで初めてプログラミングに触れましたって人? お前の学習レベルがわからないからお前でもわかるように説明できないんだ
496 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 15:43:20.73 ID:Sk339KZTa.net] ここには、彼の疑問に答えられるような人はいない。 こんぴゅうたーのでんげんをいれるとどうしてえくせるがうごくのかをせつめいするのはむずかしい。 でんきにはつうでんしてるときとつうでんしていないときがあるのでそれをりようしてぜろといちをくべつできる。 ぜろといちをくべつできればにしんすうをりようして...
497 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 17:51:08.32 ID:Gx1HQ3cua.net] 大体教えてもらう立場のやつがとる態度じゃないからまともに取り合ってもらえると思ってる時点で頭が悪い
498 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 18:34:15.80 ID:Dm16MIru0.net] 初心者なのに態度悪いからNGにしたわ。 教えてもらう態度じゃないよね。子供ならまあ納得だけど。
499 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 19:23:24.80 ID:IXGcMbV0a.net] そもそもWorkbooksに指定するのはエクセルファイル名じゃない。 ブック名だ。 開いたブックのブック名とファイル名が同じになるから勘違いしてる奴もいるかもしれんが。
500 名前:デフォルトの名無しさん [2017/12/14(木) 19:24:50.30 ID:oezENCsV0.net] 同じだったらファイル名でええやんw何鼻息荒くしてんの?w
501 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 20:32:08.46 ID:g1PrWAQxx.net] >>487 恐らく>>486 はWorkbooks.Itemの引数について話してるんだろうだが、君にはそのあたりが分からんみたいだな
502 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 20:33:08.02 ID:g1PrWAQxx.net] >>489 安価間違えた、これは>>488 宛
503 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 21:01:41.06 ID:bra/P7/Ad.net] >>455 をもとに考えてみた お金を入れるとカップにジュースが注がれる自販機を思い浮かべるんだ Set wb = 'ジュースが入るカップ Workbooks.Open( _'お金を判別してボタンが押されるとジュースを出す回路 Application.GetOpenFilename _'お金 ) →お金を入れてボタンを押したらカップにジュースが注がれる Set wb = Application.GetOpenFilename →カップに直接お金を入れて飲めないと騒ぐあほ どうだ!?
504 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 21:06:22.48 ID:zDxHi8mM0.net] >>453 お前バカだろ 変数wbはただの入れ物 workbook型しか入れられない入れ物にString型入れようとしてんだぞ? これでわからないならただのバカだから二度と来るな
505 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 21:25:56.75 ID:oezENCsV0.net] >>492 おまえのカアチャンは誰でも受け入れるのにwbって意外と固いんだな
506 名前:デフォルトの名無しさん [2017/12/14(木) 21:27:02.90 ID:QIiUylbtp.net] >>492 うん それはしってるよ でもworkbooks.Openでも同じだよね 文字列帰って来るよね
507 名前:デフォルトの名無しさん [2017/12/14(木) 21:32:46.73 ID:QIiUylbtp.net] application.getOpenfilename →あ.xlsxを選択 C:¥あ.xlsx が帰って来る workbooks.Open filename:=application.getOpenfilename(つまりC:¥あ.xlsx) ん?どっちもパス付きのブック名じゃねえの? ってことをいってる
508 名前:名無し mailto:sage [2017/12/14(木) 21:55:08.02 ID:5D+dY0yO0.net] >>495 文字列として返ってきたから文字列型と思ってるなら、一回workbook型をウォッチに入れてみたら? ツリー形式でオブジェクトの、中身が見れるから全然別ものだとわかるはず
509 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 21:58:53.83 ID:zDxHi8mM0.net] >>494 バーカw "C:\うんち.xlsx"がworkbooks型の変数に代入できる分けないだろw まあデフォルトプロパティなんてものが罪なんだが てか、workbooks型のデフォルトプロパティってNameプロパティなんだな(Pathか?) はじめて知ったわ、使わんから
510 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 22:19:18.62 ID:cH/6/SdG0.net] Application.GetOpenFilename → 指定したファイルのパス【String型(正確にはVariant)】を取得 Workbooks.Open → filenameに【String型でファイルパスを指定】すると そのファイルを開いた結果の【Workbook型オブジェクト】を取得 Dim str as String Dim wb as Workbook str = Application.GetOpenFilename →OK str = Workbooks.Open(Application.GetOpenFilename) →NG Set wb = Application.getOpenfilename →NG Set wb = Workbooks.Open(Application.GetOpenFilename) →OK オブジェクトブラウザーを見ると勉強になるよ それぞれ、こうなっている Class Application Function GetOpenFilename() Class Workbooks Function Open(Filename As String) As Workbook
511 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 23:32:44.97 ID:IXGcMbV0a.net] >>488 違う。 新規ブックの場合はファイル名じゃないだろ。 理解出来て無い奴に理解出来る奴向けの説明をしても駄目だ。 たまたま同じになってもブック名はファイル名じゃ無い。 だからパス付きだろうがパス無しだろうがファイルはファイルだと考えても、それとは関係ないブック名は違う。 C:¥abcd.xlsxというファイルとブック名としてのabcd.xlsxとは何の関連も無い。 似たように見えるのはたまたまだ。 だからC:¥abcd.xlsxはブック名には成りようがない。 >>495 Application.GetOpenFilenaneで帰ってくるのは"C:¥あ.xlsx"という文字だけな。 Excelブックとは関係ないファイル名だな。 例えばメモ帳で適当に入力して保存したファイルでも取ってこれるだろ。 それに別に"C:¥あ.xlsx"はExcelじゃないと開けないというわけでも無いぞ。 そもそも"C:¥あ.xlsx"はApplication.GetOpenFilenaneで取ってきたからファイル名だろうけど、取ってきた後のその文字列は=ファイル名とは限らん。 Dim wb As Workbook Dim strFile As String strFile=Application.GetOpenFilename ってのはstrFileにたまたまApplication.GetOpenFilenameによってファイル名が入ったということで、 Set wb = Workbooks.Open(strFile) のstrFileがファイル名かどうかは分からん。 このー文はApplication.GetOpenFilenameのことなんか知らんからな。 このー文の意味するところはstrFileをファイル名と思って開いてみて、開けたらwbに格納するってこと。
512 名前:デフォルトの名無しさん [2017/12/14(木) 23:34:29.57 ID:oVDd8Fug0.net] 短くわかりやすくまとめられるやついねえの? いくらVBAができたって引き継ぎができない奴は無能なんだが
513 名前:デフォルトの名無しさん [2017/12/14(木) 23:41:16.00 ID:oVDd8Fug0.net] 俺もずっとROMってたけど こいつらの説明はマジで意味不明だわ お、良い線言ってんな って思ったらいきなりカタカナ語がでてきてググっても意味不明 こいつらマジもんのコミュ障すぎてイラつきしかない オナニー発言ばっかで答えがない Apllcation.GetOpen でaaaっていうエクセルを開く C:\aaa.xlsx が返ってくる しかしWB(Workbookオブジェクト変数にしている)では指定できない でも Workbooks.Open filename:=Apllcation.GetOpen これはWorkBook型に入る つまるところどっちもC\aaa.xlsxって文字列を
514 名前:返してんじゃねえの?何がちげえの?ってこと これいうの10回目ないい加減学習しろイラつくな [] [ここ壊れてます]
515 名前:デフォルトの名無しさん [2017/12/14(木) 23:44:38.82 ID:oVDd8Fug0.net] こいつらのたとえ 子供がリンゴを指さす 「これなに?」 こいつら 「これは物質○○が含まれて○○っていう色素があって赤い、つまり栄養は○○がふくまれている ちなみにその栄養は○○って物質にも入っている」ドヤァ って感じ 見ててムカつくから発言したわ
516 名前:デフォルトの名無しさん [2017/12/14(木) 23:46:05.94 ID:oVDd8Fug0.net] おれが聞きたいのは なんでワークブックスオープンで指定したファイル名文字列だとワークブック変数に格納できんだよって話 ゲットオープンはパスがついているから格納できないのはわかった わかりやすく答えろ
517 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 23:55:54.24 ID:n2gI2QxJ0.net] 前にいた関西弁の荒しと同一人物なんだろうけど、健気にもちょっと勉強してきてるのが笑えるw
518 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 23:56:28.06 ID:qidVZ8HWa.net] >>503 無理。 軍事用にコンピューターというものが発明されてから今日までの歴史と仕組みを説明しなきゃならんから。 そして、君にそれを理解出来るだけの能力が有るとは思えないから。 大抵の人は全てを理解しているわけじゃ無いが、自分の利用している範囲ぐらいは理解している。
519 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 00:06:16.08 ID:sv72SjNaa.net] >>501 ん? >Apllcation.GetOpenでaaaっていうエクセルを開く これ間違い。 開かない。 ファイル名を取得するだけ。 >しかしWB(Workbookオブジェクト変数にしている)では指定できない ファイル名じゃないからな。 ブック名を指定する必要がある。 たまたま偶然ファイル名と同じだけどパス付きはブック名とは違うな。 >Workbooks.Open filename:=Apllcation.GetOpen これはWorkBook型に入る Workbook型に入ってるのはファイル名じゃない。 Set WB=Workbooks.Openの意味するところはfilenameに指定された文字列をファイル名と見立ててブックを開き、もし仮に運よく開くことができたらそのブックをWBに格納するという意味。
520 名前:デフォルトの名無しさん [2017/12/15(金) 00:18:22.73 ID:qta4Ddk+0.net] >指定された文字列をファイル名と見立ててブックを開き これが意味不明 GetOpenで指定したファイル名を返すんだろ? じゃあこれはファイル名になるじゃねえのか? ファイルを開かなかった場合はファルスがかえることはわかる
521 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 00:22:57.61 ID:OGmesrFEa.net] >>507 GetOpenFilenameの文とWorkbooks.Openの文は別の文だろ。 プログラム組む奴はGetOpenFilenameで取得したものと違うものを入れることも出来る。 だから結果的に入ったのはファイル名でも、 Workbooks.Open自身はそれを前提にはしないだろ。
522 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 00:25:39.28 ID:HZMi2rOwd.net] >>498 このレスの一番下がわかりやすいんじゃない?
523 名前:デフォルトの名無しさん [2017/12/15(金) 00:26:48.82 ID:qta4Ddk+0.net] >>508 日本語話して ドヤ顔くん
524 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 00:26:50.88 ID:Ma3k2IENa.net] GetOpenFilenameはメモ帳のファイル名を取って来ることも出来る。 Wordのファイル名を取って来ることも出来る。 Workbooks.Openで開けないファイル名ということも有るし、Workbooks.Openで開けるファイル名だとしてもExcelで開かなければならないということも無い。
525 名前:デフォルトの名無しさん [2017/12/15(金) 00:27:25.61 ID:qta4Ddk+0.net] >>509 オブジェクトブラウザーでてなんだよ わからねえよ
526 名前:デフォルトの名無しさん [2017/12/15(金) 00:28:29.79 ID:qta4Ddk+0.net] >>511 あーなんとなくわかったかな Openメソッドで開ける=エクセル型=ワークブック型に格納可能 ってこと?
527 名前:デフォルトの名無しさん [2017/12/15(金) 00:32:05.55 ID:qta4Ddk+0.net] >>498 つまりだ 君が言いたいのは(要約しないとダメなのかよ、、、) application.GetOpenfilenameだと文字列として返ってくる workbook型には文字列は入らない こういうことが言いたいのね?
528 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 00:33:26.47 ID:JSBwNcqSa.net] >>510 それはコンピューターというものをまるで理解出来ていないからそうなる。 厳密には strFile = Application.GetOpenFilename が実行されたからstrFileはファイル名だろとコンピューターに言っても、コンピューターは違います、文字列です。と言う。 strFileに入っている文字列のファイルは有るのかと問えば、有ります。と言う。 じゃあ、strFileはファイル名じゃねえかと問えば、違います、文字列です。と言う。 コンピュ−ターは人間が考えるような意味を理解しない。 定義通り動くだけ。
529 名前:デフォルトの名無しさん [2017/12/15(金) 00:35:45.56 ID:qta4Ddk+0.net] >>515 また回りくどい言い方してんな
530 名前:頭悪いのか [] [ここ壊れてます]
531 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 00:39:33.42 ID:OGmesrFEa.net] >>514 その理解で良い。
532 名前:デフォルトの名無しさん [2017/12/15(金) 00:41:12.92 ID:qta4Ddk+0.net] >>517 最初からこう言えよ 馬鹿じゃねえの? ほんとにバカしかいねえよ 呆れるというか心配になってくる
533 名前:デフォルトの名無しさん [2017/12/15(金) 00:42:06.72 ID:qta4Ddk+0.net] 補足するとworkbook.Openで返ってくる(開く)=workbook型ということね
534 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 00:42:07.75 ID:W4xtzKqva.net] >>516 君がどこまで分かって無いのか、こっちは分からないんだ。 エスパーじゃ無いんだから。 >>514 の話だって型とは何だ?という説明もしなきゃならんのか?と考えれば>>515 のような話も必要になって来る。
535 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 00:57:45.39 ID:2M4lhz74x.net] >>518 最初からみーんなそう言ってるぞw ようやく頭が追い付いてきたのかな?
536 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 01:03:08.36 ID:2M4lhz74x.net] メゾット君もだんだん自分の頭の悪さを自覚してきてるみたいだし、あと二日以内には恥ずかしい捨て台詞を残して消える運命かな レス保存したからいつでも再放送出来るけどなwww
537 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 01:23:44.47 ID:IJmI7Oq80.net] >>514 ,518 >>415 でまっさきに型を理解しろって言ってんだが まあここまで食い下がる根性は認めるけど、いいかげん最低限は自分で勉強してくれ
538 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 01:24:37.63 ID:JMZCHg3W0.net] 多分Excel VBA入門的な記事を読み進めればすぐに理解できたと思うんですけど 勉強の進め方が下手くそすぎる