1 名前:既定のプロパティさん mailto:sage [2012/01/29(日) 00:05:13.16 ] 01 pc11.2ch.net/test/read.cgi/tech/1054356121/ 02 pc11.2ch.net/test/read.cgi/tech/1168308855/ 03 pc11.2ch.net/test/read.cgi/tech/1180192018/ 04 pc11.2ch.net/test/read.cgi/tech/1189814602/ 05 pc11.2ch.net/test/read.cgi/tech/1197448064/ 06 pc11.2ch.net/test/read.cgi/tech/1205231499/ 07 pc11.2ch.net/test/read.cgi/tech/1212587819/ 08 pc11.2ch.net/test/read.cgi/tech/1219673793/ 09 pc11.2ch.net/test/read.cgi/tech/1228372971/ 10 pc12.2ch.net/test/read.cgi/tech/1235332603/ 11 pc12.2ch.net/test/read.cgi/tech/1241885130/ 12 pc12.2ch.net/test/read.cgi/tech/1247566074/ 13 pc12.2ch.net/test/read.cgi/tech/1254281104/ 14 pc12.2ch.net/test/read.cgi/tech/1262748898/ 15 pc12.2ch.net/test/read.cgi/tech/1271261239/ 16 hibari.2ch.net/test/read.cgi/tech/1280045912/ 17 hibari.2ch.net/test/read.cgi/tech/1289182437/ 18 hibari.2ch.net/test/read.cgi/tech/1298240666/ 19 hibari.2ch.net/test/read.cgi/tech/1305754555/ 20 hibari.2ch.net/test/read.cgi/tech/1312435844/ 21 hibari.2ch.net/test/read.cgi/tech/1316931607/ 前スレ: Excel VBA 質問スレ Part22 toro.2ch.net/test/read.cgi/tech/1322400978/
2 名前:既定のプロパティさん mailto:sage [2012/01/29(日) 00:06:07.26 ] ExcelのVBAに関する質問スレです ★1 質問テンプレ(雛形)は用意しませんが、OSとExcelのバージョンは必ず書きましょう。 ★2 ExcelのVBA以外の部分に関する質問はNGです。 但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。 ★3 ExcelのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。 VBAとは、『Visual Basic for Application』の略で Application ├Workbooks |└Workbook | ├Worksheets | |└Worksheet というApplication以下のオブジェクトを、VB言語で操作するものを指します。 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。 ★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。 ★5 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み、 コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。 ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。 ★6 わからなければとりあえず「マクロの記録」(Alt, T, M, R)
3 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 11:38:40.69 ] >>1 乙
4 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 12:22:48.13 ] >>1 乙 それにしても前スレ最後の方ときたら次スレ案内どころか、くだらない喧嘩でスレを埋め尽くすんだから、 やっぱVBAは厨房言語と言われても仕方が無いほどの民度の低さを実感する
5 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 12:44:37.54 ] なんで終わった話蒸し返すかなぁ。 そんなに悔しかったのか?
6 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 12:48:28.90 ] >>1 乙 >>4 何で蒸し返すかなぁ・・・ そういうのが呼び水になるんだって気付けよ
7 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 14:34:17.40 ] >>6 お前も同罪
8 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 15:20:07.91 ] >>7 それはむしろ>>5 だろ
9 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:12:08.40 ] ID付けない辺りが民度の低さだろ
10 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 19:23:14.35 ] vba初心者です。 フォームに名前、番号、部署を入力して、登録ボタンをクリック。 A2に値が入っていない場合はその列に項目を追加。 もし入っているならば、次の行へ移動してもう一度条件分岐開始。 というプログラムをつくろうと思ったのですがうまくいきません。 どこがおかしいのでしょうか。初歩的な内容ですがヒントください。 Private Sub 登録_Click() If TextBox1 = "" Then MsgBox ("名前が記入されてない") ElseIf TextBox2 = "" Then MsgBox ("番号が記入されてない") ElseIf TextBox3 = "" Then MsgBox ("部署が記入されてない") Else Cells(2, 1).Select Do While ActiveCell Like "" ActiveCell.Offset(1, 0).Select Loop ActiveCell = TextBox1.Value ActiveCell.Offset(0, 1) = TextBox2.Value ActiveCell.Offset(0, 2) = TextBox3.Value Me.Hide End If
11 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 19:54:35.81 ] >>8 >>5
12 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 19:54:59.15 ] >>10 > Do While ActiveCell Like "" ここ 「もし入っているならば」になってない
13 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 19:56:31.43 ] >>10 いろいろ突っ込み所満載だが とりあえずWhileをUntilにすれば問題は解決すると思う
14 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 19:59:04.90 ] >>11 >>5
15 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 20:03:30.24 ] 相当悔しかったらしい。(w
16 名前:デフォルトの名無しさん [2012/01/29(日) 20:06:22.65 ] >>12 >>13 わかりました! ありがとうです!
17 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 20:09:04.16 ] >>4-8 、>>11 、>>14-15 ほんともういい加減にしてくれない? 大概うざいんですけど。
18 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 20:15:05.89 ] 俺は Do While 〜、Do Until 〜、Loop While 〜、Loop Until 〜 は一切使わない 必ず Do If 〜 Then Exit Do Loop を使う While & Untilで出来ることは全て出来る While & Untilには出来ないことも出来る わかりやすい 修正しやすい 条件内容によっては速い 良いことずくめ
19 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 20:19:48.99 ] いきなりなんだ 好きにしたらええがな
20 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 20:22:43.73 ] >条件内容によっては速い これ詳しく教えてください。 どういうときに速くできるのですか?
21 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 20:22:54.82 ] いきなりじゃないじゃん。 つい数レス前の質問で間違いがあった部分の話題じゃん。 もしかして前スレからの下劣なケンカにご執心で それ以外の質問回答とか目に入ってないのか?
22 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 20:27:46.68 ] >>21 いや、質問の内容と一切関係ない話だろ コーディングスタイルの話なんか不毛だし荒れるだけ
23 名前:20 mailto:sage [2012/01/29(日) 20:34:33.04 ] >>22 すいません、>>18 さんのレスはVBA初心者としては関心ある話題なのですが・・・
24 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 20:50:18.21 ] >>18 同じく初心者としては興味ある DOとLOOPの2つと それにwhileかuntilのどちらかの3つがセットなのかと思ったんだけど違うのか
25 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 20:57:42.84 ] 相変わらずスレチの話題で伸びてるな
26 名前:20 mailto:sage [2012/01/29(日) 21:03:22.50 ] >>24 さん Do Loop だけで成立しますよ。 ただ、そのままだと無限ループなので何らかの脱出条件は必要ですから 通常はおっしゃるとおりにUntilやWhileを組み合わせる訳ですよね。 で、>>18 さんはIf文で脱出条件を設定することを推奨されていて、 私はその手法自体は知ってたのですが、 そのほうが速くなる状況というのが分からないのでぜひ知りたいと思いました。
27 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 21:13:22.59 ] 無理やりWhile/Untilの条件をでっち上げる位なら、 Exit Doするコードを書くほうが良い、ってことじゃね? 機械的に適用するのは頭が固すぎると思うが。
28 名前:デフォルトの名無しさん [2012/01/29(日) 21:19:41.12 ] >>10 のコードを DO ifで書きなおして無事動きました。 確かにこっちのほうがわかりやすい気がします! ありがとうです!
29 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 21:24:42.27 ] 俺もDo Until の中に必ず If Then Exit Do End Ifを付けてる For Next なら Exit For だな 明示しておけば(自分にとって)判りやすいという理由だけど
30 名前:20 mailto:sage [2012/01/29(日) 21:26:33.22 ] >>27 それって速度は変わらなくないですか? 自分でちょっと考えたのは脱出条件でAndを使うときに UntilやWhileだとAndしかだめだけどIf文だとIfのネストで書けるから (本当にほんのちょっとだけ)速く出来るかも、ということです。
31 名前:20 mailto:sage [2012/01/29(日) 21:32:26.12 ] ゴガギーン ドッカン m ドッカン =====) )) ☆ ∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( )| |_____ ∧_∧ < おらっ!出てこい>>18 「 ⌒ ̄ | | || (´Д` ) \___________ | /  ̄ | |/ 「 \ | | | | || || /\\ | | | | | へ//| | | | | | | ロ|ロ |/,へ \| | | | | ∧ | | | |/ \ / ( ) | | | |〈 | | | | / / / / | / | 〈| | | / / / / | | || | | / / / / =-----=-------- | |
32 名前:20 ◆dMgj9t5wQ2 mailto:sage [2012/01/29(日) 21:46:15.53 ] >>31 成りすましは勘弁してください 私は31じゃないです。
33 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:09:06.08 ] >>29 >明示しておけば(自分にとって)判りやすいという理由だけど 意味がわからん。 Do While 〜 Loop も Do ... Loop Until 〜 も、「〜」で充分明示的だと思うが。 まあ、ループ中で読み込みとかの処理をして、EOF ならぬけて、そうでなければ 読み込んだデータの処理をして最初に戻ると言うような処理は、それなりにあるから Do: ... : If 〜 Then Exit Do: ... : Loop も使うけど、それに限定するのは >>27 の 言うようにちょっと頭固すぎと思う。
34 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:49:12.41 ] 冗長に書いた方がわかりやすいと感じる人は結構いるっぽいね。 でも>>29 は同じ条件判断を2箇所に書く(2回やる)ってことでしょ? それはないわー。
35 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 23:20:23.79 ] >>10 ActiveSheet.ShowDataForm マジオススメ
36 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 23:57:52.46 ] >>34 >でも>>29 は同じ条件判断を2箇所に書く(2回やる)ってことでしょ? それはないわー。 さすがにそれはないと思うが...、修正面倒だし、 そもそも他人が見たときヘタすると意図汲み取れないと思う。
37 名前:デフォルトの名無しさん [2012/01/30(月) 00:27:10.99 ] >>35 使ってみたのですが、よく意味がわかりません。 起動時にフォーム呼び出しっぽいのですが、何もおこらないのですが どういう効果があるのですか?
38 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 06:53:15.42 ] >>37 聞く前にググれ
39 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 03:33:06.65 ] Test
40 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 22:37:41.24 ] 2003/2007で質問です。 .OnAction で文字列を使うときにはどうすれば良いのでしょうか? 例えば、キー "foo" を持つ "dic" というディクショナリを引数とする関数を .OnAction に指定したい場合、 Sub Menu() Dim CB Set CB = Application.CommandBars("Cell").Controls.Add() With CB .Caption = "テスト" .OnAction = "'testfunc dic(""foo"")'" End With End Sub のようにしてもうまく動きません。 仕方が無いので、 val = dic("foo") .OnAction = "'testfunc " & val & "'" のように対処しています。 よろしくお願いします。
41 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 07:37:32.24 ] OnActionの実行されるスコープでは、 dicが見えていないって事なんじゃないか?
42 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 07:58:29.15 ] OnActionに指定するのはマクロ名 式は評価しないんだろ
43 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 22:04:08.03 ] OnActionは罠が多いよな…
44 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 22:12:34.88 ] >>40 > val = dic("foo") > .OnAction = "'testfunc " & val & "'" これで対処できるって事は .OnAction = "'testfunc " & dic("foo") & "'" で済む話のような気もするが…まさかな
45 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 22:22:00.23 ] &を使わずに書きたい、ってことじゃない?
46 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 22:22:58.83 ] >>42 評価されるよ
47 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 03:05:03.67 ] 式を評価した結果の文字列をOnActionに設定してるだけで、 OnActionに式が設定されて評価されてるわけではないと思うが
48 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 06:49:11.59 ] バカ多すぎw このレベルのことで意見割れるとかあり得ねぇw
49 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 08:01:58.10 ] 詳細な仕様を知っている>>48 がいると聞いて
50 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 08:18:33.01 ] >>49 いや所詮草ガキだから
51 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 22:23:01.17 ] 草=複数の連続する"w" 1個の場合、複数でも連続でもないから、実は草ではない
52 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 22:49:35.37 ] >>51 さすが小学生だな 目のつけどころが違う
53 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 23:18:44.34 ] >>51 それは単草といって草の一種なのよ
54 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 23:34:57.87 ] マクロから別名保存のダイアログを出して、ユーザーにブックを保存してもらおうとしているのですが、 ダイアログおw表示させた時に初めての保存ならマイドキュメント、2回目以降なら前回のフォルダーを 表示されるようにするにはどうすればいいでしょうか? よろしく御願いします。
55 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 02:11:09.99 ] >>54 まず仕様をしっかり確定させないとプログラミングはできないぞ 初めてかどうかはどうやって判別するんだ? 前回のフォルダはどこにどうやって保存するんだ? これが答えられない(わからない)ってなら、もうちょっと詳しく状況を書かんとなんとも言えん
56 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 06:32:53.23 ] >>54 初めての保存→直接Excelを起動しての作成 2回目以降→既存のBookを呼出し修正保存 意味はこれで合っている? 1年1組成績表フォルダの1月成績結果というBookを呼出して新規作成を選んだ時の保存先もやはりマイドキュメント? 或いは2月成績結果にBook名に流用変更して保存する場合は?
57 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 06:16:46.60 ] >>53 残念、ハズレ というか、そもそも「単草」なんてないから 草=複数の連続する"w" 数が複数と定義されているので、単数を表す接頭語を付けることは無い 芝="w"そのものであり数は関係ない 数が定義されていないので、数を表す接頭語を付けることもある->単芝、複芝 「単草」ってのは君と同じく、単芝と草を混同した勘違い君が 思いつきで口にするだけで、定義としては存在していない
58 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 07:16:08.51 ] >>57 どっちでもええやん 言葉とはそういう勘違いから定着するもんだよ 正しい日本語は〜と言ってる学者連中はただの馬鹿だぞ もう広まってる用法ってのは正しいものとしていかんと
59 名前:デフォルトの名無しさん [2012/02/04(土) 07:16:34.18 ] >>57 そもそも「草」とか「芝」とかが定義されてるってどこで? 少なくとも非ネットの日常生活においてwを草とか芝とか言わない訳だが。 単にネット上のコミュニティーで認知されてると「君個人が認識してる」だけでしょ。 だったら「単草」だっておkじゃないの? その辺の線引きが曖昧すぎだよ ちなみに>>53 ではありません。 草とか芝の定義とやらにも興味ないです
60 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 08:03:57.05 ] ネタ解説に釣られ杉wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
61 名前:デフォルトの名無しさん [2012/02/04(土) 09:02:23.24 ] 言い負かされるとネタで逃げる奴
62 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 09:14:49.65 ] かまうなよ これは僕はレス乞食ですって自己紹介をしてるだけなんだからwwww
63 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 10:15:29.22 ] >>58 いい訳必死だな あのさ、誤用と、新語や新たな言い回しを一緒くたにしてないか? 別に既存の日本語以外は使っちゃだめとは言わないけど、 間違いを内包する言葉までまとめて「定着すればそれは正しい」なんて言うのはただの馬鹿だぞ wを芝と呼ぶのは良いが、wをエックスと呼ぶのは明らかな間違いだろ >>59 > 「w」の文字が並ぶ様子が「雑草が生えているように見える」というところから、 ~~~~~~ > 「w」を多数並べて笑いを表現する行為を「草を生やす」と呼ぶ場合がある。 ~~~~~~~~~~~~~ > 草 - ネットスラングでwwwwwwwのこと。 > 草:インターネットスラングのひとつ。(笑)の略であるwを多数書き連ねることで蔑笑を表したもの。 ~~~~~~~~~~~~~~~~~ どこを見ても、「並ぶ」「多数」「書き連ねる」と複数であることを説明し、例としても7連のものが上げられている 因みに上記は独断と偏見入り交じる個人サイトの記事ではなく、ウィキペやニコペなど大手の手がける辞典の記事ですよ
64 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 10:42:23.74 ] 荒らすなら他へ行け、馬鹿
65 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 11:04:08.52 ] こういう話題しかレスできないんだろ。 スルーしとけ。
66 名前:デフォルトの名無しさん [2012/02/04(土) 11:44:22.68 ] wikiが定義ってアホかと
67 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 13:21:17.58 ] 広辞苑だって出版された当時のスラングを個人の独断で大量に収録してんのに それは信頼してWikipediaをバカにする男の人って本質がわかってないってゆーか、頭悪いよね
68 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 13:41:55.07 ] 反射的に wiki を馬鹿にする奴もどうかと思うが、 広辞苑が個人の判断で作られてるって、これまた 頭悪い以前のアホが来たな。
69 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 17:37:20.46 ] wikiをバカにしてるんじゃなくて、wikiがネットスラングの定義だって言ってるやつをバカにしてるんじゃないかな
70 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 18:56:03.91 ] まあ結論は出たみたいだから、もう終わりにしようぜ。
71 名前:54 mailto:sage [2012/02/04(土) 19:32:32.70 ] >>55-56 レス、ありがとうございます。 返事が遅くなってすみません。 ユーザーフォームに保存用のボタンを貼って、保存しようとしています。 保存を行った時に保存先フォルダーの記憶用変数を用意して、その変数が 空なら初めての保存、空白以外なら保存用ダイアログを表示した時にそのフォルダーが 表示したいという事でした。 変数に取り込めれば、フォームを閉じる際にiniファイル等に保存して次回以降は フォルダー選択の手順を省けると思いました。 よろしく御願いします。
72 名前:54 mailto:sage [2012/02/04(土) 19:55:05.76 ] 書き忘れました。 保存先記憶用変数が空の場合は、保存先ダイアログ表示時の フォルダーはExcel任せでも良いです。 よろしくお願いします。
73 名前:デフォルトの名無しさん [2012/02/04(土) 20:05:32.51 ] iniファイルへの書き込みや読み込みはAPI使うっての知ってますか? まぁ単純にテキストファイルのオープンで読み込み書き込みでも出来なくはないだろうけど
74 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 20:16:21.93 ] >>72 で、何がわからないの?
75 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 21:11:43.87 ] >>71 chdir 前回保存先 名前を付けて保存ダイアログ表示 今回保存先を選択 非表示シートにcurdir(今回保存先)を書きみ保存 名前を付けて保存
76 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 23:05:00.06 ] 複数のブックの一部を読み取っていくマクロを書いているのですが 非表示・バックグラウンドでブックを開くにはどうしたら良いのでしょう? ググったりしていろいろ試してみたのですが、どうしても一瞬表示されてしまいます。 マクロは Application.ScreenUpdating = False Set _ActiveSheet = ActiveSheet Set book = Workbooks.Open(PATH) book.Windows(1).Visible = False Call _ActiveSheet.Activate() Application.ScreenUpdating = True というようにしています。 また、ブックのオープンに時間がかかっているため、非同期でブックをオープンしてそれをキューに放り込んで行きたいのですが、 こういったことはどうやってやれば良いのでしょう?
77 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 23:20:48.95 ] >>71 ini ファイルじゃなくて、ブック自体に覚えさせることもできるよ。 Option Explicit Const PropertyName As String = "SavedFolder" Sub Macro1() Dim SavedFolderProperty As DocumentProperty Set SavedFolderProperty = Nothing Dim Index As Integer With ActiveWorkbook.CustomDocumentProperties For Index = 1 To .Count If .Item(Index).Name = PropertyName Then Set SavedFolderProperty = .Item(Index): Exit For End If Next End With With Application.FileDialog(MsoFileDialogType.msoFileDialogSaveAs) .FilterIndex = 2 If SavedFolderProperty Is Nothing Then .InitialFileName = "" Else .InitialFileName = SavedFolderProperty.Value End If .Show If SavedFolderProperty Is Nothing Then ActiveWorkbook.CustomDocumentProperties.Add PropertyName, False, MsoDocProperties.msoPropertyTypeString, .SelectedItems.Item(1) Else SavedFolderProperty.Value = .SelectedItems.Item(1) End If .Execute End With End Sub
78 名前:2000 mailto:sage [2012/02/05(日) 02:30:18.27 ] >>76 > Application.ScreenUpdating = False > Set _ActiveSheet = ActiveSheet > Set book = Workbooks.Open(PATH) > book.Windows(1).Visible = False > Call _ActiveSheet.Activate() ActiveWorkbook.Close > Application.ScreenUpdating = True
79 名前:デフォルトの名無しさん [2012/02/05(日) 17:31:56.30 ] エクセルの関数について質問です。 B1セルに10が入っていたらA1セルに100と返し、 〃 11か12、13のいずれかの数字が入っていたらA1セルに200と返し、 〃 14が入っていたらB1セルに300と返し、 〃が空欄もしくは、10.11.12.13.14以外の数字が入っていたら100と返す 数式を組みたいのですがIFとORを組み合わせてもうまくいきません。 どなたかご教授頂けますでしょうか。
80 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 17:38:45.19 ] それをVBAでやりたいってことかな?
81 名前:79 [2012/02/05(日) 17:43:45.11 ] >80 いえ、違います。 エクセル上で上記の数式を完成させたいだけです。
82 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 17:46:29.32 ] >>81 だったら Excel総合相談所 100 toro.2ch.net/test/read.cgi/bsoft/1325935411/l50
83 名前:79 [2012/02/05(日) 17:50:34.95 ] あ、スレ違いでしたね。 ちょっとこっちで質問してみます。
84 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 03:30:45.14 ] 同一コードなのに、コードのキャッシュでもされてるのか、結果不定で「?」なときがあると思いますが、そんな時の対処方法はありますか?
85 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 04:16:29.46 ] 構文エラーを起こす
86 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 05:30:54.13 ] >>84 プログラムとは… 自分が思った通りに動く物ではない 自分が書いたとおりに動くのである つまり結果が自分の希望に反して不定になるのは書き方が悪い。はっきり言えば間違ってる よく見直せ
87 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 06:58:44.08 ] Excel2003です セルの内容でDBに更新を行う処理です Set crs = New ADODB.Recordset crs.CursorType = adOpenDynamic crs.LockType = adLockOptimistic crs.CursorLocation = adUseClient crs.ActiveConnection = cn ' sSQL = "" sSQL = sSQL & "SELECT *" sSQL = sSQL & " FROM WSEL" sSQL = sSQL & " ORDER BY WSEL.Chusyutu" crs.Source = sSQL crs.Open ' Do Until crs.EOF : DBの項目にセット処理 : crs.Update ←エラー発生 crs.MoveNext Loop crs.Close 1/2
88 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 06:59:45.09 ] 2/2 DBはMySQLをODBCで使用しています Updateのところでエラーが発生します 実行時エラー '-2147217864 (80040e38)': 行が見つからなかっため、更新できません。列の値は最後に読み込まれた後で変更された可能性があります。 OpenしてからUpdateまでただ項目をセットしているだけでカーソルを移動させていません 項目のセット処理を削除するとエラーは出ません ただの ○○=×× という処理でカーソルが移動するとは思えないのですがどんな問題があるのでしょうか?
89 名前:デフォルトの名無しさん [2012/02/06(月) 11:02:10.59 ] ADOのUpdateコマンドではなくSQLのupdate文を その例で言えば crs.Execute updateのsql文 という書き方でいつもExcelからmysqlに対してやってる そのやり方ではどうなの? まぁ続けるとスレ違いと騒ぎ出す野郎が多そうだから mougのDB板で聞いてみたら?
90 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 20:30:01.60 ] >>89 レスどうもです >crs.Execute updateのsql文 この方法でやってみます もし上手くいかなかったらDB板で聞くことにします ありがとうです
91 名前:84 mailto:sage [2012/02/07(火) 02:38:18.51 ] >>85 なるほど。ありがとうございます。 >>86 ワロタ
92 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 04:59:35.62 ] それ主キーがないとかで行を特定できてないだけじゃないのか
93 名前:デフォルトの名無しさん [2012/02/07(火) 12:04:22.02 ] 質問です。 「初項(セル B3 の値)と公差(セル C3 の値)を元にして, セル範囲 B5:G5 に等差数列の値を入力する マクロ「等差数列」を定義せよ」 という課題があるのですが、何から手を付ければいいのか分かりません。 よろしければご教授お願いします。
94 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 12:13:41.21 ] 公式にぶちこめ
95 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 15:15:08.32 ] >>93 おっぱい見せて Option Explicit Private Sub マクロ等差数列() Dim 初項 As Double Let 初項 = Application.ThisWorkbook.ActiveSheet.Range("B3").Cells(1, 1).Value Dim 公差 As Double Let 公差 = Application.ThisWorkbook.ActiveSheet.Range("C3").Cells(1, 1).Value Dim 数列1番目 As Double Let 数列1番目 = 初項 Application.ThisWorkbook.ActiveSheet.Range("B5").Cells(1, 1).Value = 数列1番目 Dim 数列2番目 As Double Let 数列2番目 = 数列1番目 + 公差 Application.ThisWorkbook.ActiveSheet.Range("C5").Cells(1, 1).Value = 数列2番目 Dim 数列3番目 As Double Let 数列3番目 = 数列2番目 + 公差 Application.ThisWorkbook.ActiveSheet.Range("D5").Cells(1, 1).Value = 数列3番目 Dim 数列4番目 As Double Let 数列4番目 = 数列3番目 + 公差 Application.ThisWorkbook.ActiveSheet.Range("E5").Cells(1, 1).Value = 数列4番目 Dim 数列5番目 As Double Let 数列5番目 = 数列4番目 + 公差 Application.ThisWorkbook.ActiveSheet.Range("F5").Cells(1, 1).Value = 数列5番目 Dim 数列6番目 As Double Let 数列6番目 = 数列5番目 + 公差 Application.ThisWorkbook.ActiveSheet.Range("G5").Cells(1, 1).Value = 数列6番目 End Sub
96 名前:デフォルトの名無しさん [2012/02/07(火) 16:41:05.20 ] すみません、ワードのVBAについてはどこか質問スレってありませんでしょうか?
97 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 17:30:37.03 ] >>96 専門スレはないのでここで聞いてみる Word(ワード)総合相談所 Part21 toro.2ch.net/test/read.cgi/bsoft/1319313721/
98 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 17:46:04.08 ] ない 場違い承知・まともな回答返ってこない前提でここかパワポVBAスレッドで聞いてアレンジするか ググって見つかる掲示板利用するしか
99 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 17:48:36.97 ] (*ノノ)イヤン
100 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 17:51:41.95 ] >>95 >おっぱい見せて さろんへ行け。