- ベストアンサー
現在アクティブなワークブック名によって条件分岐させたいのですが
現在アクティブにしているワークブック名によって条件を分岐させたいのですが、下記のように記述すると「型が一致しません」とエラーが出てしまいます。これは何がおかしいのでしょうか。 (デバックモードでIf~Thenまでが黄色でマークされます) Excel2000を使用しています。よろしくお願いします。 Dim t As Single If ActiveWorkbook.Name="AAA.xls" Or "BBB.xls" _ Or "CCC.xls" then t=3.5
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- EXCELのマクロに関する質問です
アクティブなワークブックの名前に応じて処理を変更したいと思い以下のような記述をしたところ「型が一致しません」とエラーが出てしまいました。これは何がいけないのでしょうか。 デバッグモードで4行目のIfからThenまでが黄色く表示されます。 OSはWindows2000を使っています。よろしくお願いします。 Dim FN as String Dim p2 as Single FN = ActiveWorkbook.Name If FN <> "AAA" Or "CCC" Or "EEE" Or "GGG" Then p2 = p2 * 0.001 End If (アクティブなワークブックの名前がAAA、CCC、EEE、GGGのいずれでもないならば、p2に0.001を乗じる処理です。Dim FN as Variantと変更して試してみても同じエラーが出ました)
- ベストアンサー
- オフィス系ソフト
- explodeと条件分岐
次のようなプログラムを描きました。 /////////////////////////////////////////////////////////////// $A1 = $_POST['A1']; $B1 = $_POST['B1']; $fp = fopen("data.dat", "a+"); flock($fp, LOCK_EX); while($line = fgets($fp)){ list($A2,$B2) = explode("^", $line); if($A1 == $A2 && $B1 == $B2) echo "成功"; else echo "ログイン失敗"; } //////////////////////////////////////////////////////////////// ここでdata.datの内容は… AAA^AAA BBB^BBB CCC^CCC とします。 フォームから、A1=AAA,B1=BBBを与えたとき、 「成功」が出ると思っていたのですが、「失敗」と出てしまいます。 いろいろ考えてみたのですが、解決に至らず質問することにしました。 ご指摘、お願いします。 尚、フォームから正確に入力されていることと、 分岐のところを「if($A1 == $A2)」とすると、 正常に動くことは確認できました。 よろしくお願いします。
- ベストアンサー
- PHP
- ■VBAマクロでワークブックAにワークブックBの集計をしたい。
■VBAマクロでワークブックAにワークブックBの集計をしたい。 ただし、ワークブックBは同じ番号で何個もあり、日付も並んでいません。 またワークブックAにあってBにない番号、また逆もあります。 それを日付が近いものから3つまで表示。 例) ワークブックA (sheet1) 番号 メモA1 メモA2 メモB1 メモB2 メモC1 メモC3 11111 2010/7/7 ccc 2010/5/5 ddd 2010/3/3 bbb 22222 2010/10/10 fff 2010/2/2 eee 35851 2010/12/12 ggg 54321 ワークブックB (sheet1) 番号 日付 メモ 11111 2009/1/1 aaa 11111 2010/3/3 bbb 11111 2010/7/7 ccc 11111 2010/5/5 ddd 22222 2010/2/2 eee 23568 2010/4/4 hhh 22222 2010/10/10 fff 35851 2010/12/12 ggg ※ワークブックAは最初項目と番号以外メモ部分は白紙です。例)は実行後の結果です。 質問で足りない部分ありましたら補足を入れますのでよろしくお願い致しますm(__)m
- ベストアンサー
- その他(プログラミング・開発)
- VBA の Application.Run でエラー発生
独学で勉強したVBAなのですが、とても困っています。 AAA.xls BBB.xls CCC.xls というファイルがあるとします。 AAAを起動すると、BBBを起動して、 Application.Run "'BBB.xls'!TEST" で、BBBのTESTを実行するようにしています。 TESTを実行すると、 Workbooks.Open filename:=ActiveWorkbook.Path & "\CCC.xls", Password:="XXX", WriteResPassword:="XXX", ReadOnly:=True でCCCを起動して、CCCのシートの値をBBBにコピーしてくるようにしています。この一連の処理において、 「実行時エラー'2147352567(80020009)' 'Run'メソッドは失敗しました:'_Application'オブジェクト」 が発生します。 これらは共有サーバー上で動作させているのですが、 困ったことに、エラーが発生する人と、そうでない人がいます。 理由が全くわからず、非常に困っています。 教えていただけたらとても助かります。 何卒よろしくお願いいたします。
- 締切済み
- Visual Basic
- 標準モジュールが入っているワークブック
Excel VBAです。 二つのワークブックを開いておいた状態で 両方のブック内のユーザーフォームを表示した状態にします。 この時、ある片方のワークブックを表示した状態でもう片方のユーザーフォームを使って 標準モジュールを実行したとします。 すると、当たり前ですが、エラーが出るか、間違った計算を行ってしまいます。 これを防ぐために、 if ActiveWorkbook.Name = xxxxx then といったものを用いる必要があります。 ワークブックの名称を書き換えるたびに このxxxxxのところも毎回書き換える必要があり、面倒なのですが、 実行した標準モジュールが入っているワークブック名を 返り値として返す関数ってありますか?
- ベストアンサー
- Visual Basic
- oracle 条件分岐について
oracle10gです。 テーブルAから取得した項目aaaが"1"のとき、 テーブルBから項目bbbを取得する それ以外の場合、 テーブルCから項目cccを取得する という内容のSQLを一度に実行したいのですが、 ifやcaseで実行可能でしょうか。 ご教授いただきたいです。 よろしくお願いいたします。
- ベストアンサー
- Oracle
- MS-DOS 条件分岐
MS-DOS5.00Aですが、BATファイル中で、指定したファイルを開くときにそのファイルが存在しなかった場合に、分岐させるにはどうしたらよいですか? イメージ↓ Copy AAA BBB if ”AAAがなかったら” goto ng echo コピーしました。 end :ng echo ファイルが存在しません。終了します。 end
- ベストアンサー
- その他(プログラミング・開発)
- VBAでif文にorを使う場合の仕様
http://www.relief.jp/itnote/archives/vba-if-or.php このページにも書かれてあるのですが、 Sub textss() aaa = 2 If aaa = 0 Or 1 Then bbb = 1 ElseIf aaa = 2 Then bbb = 2 End If ccc = bbb End Sub を実行すると cccには2が代入されそうなのですが、実際には1が代入されてしまいます。 If aaa = 0 Or aaa = 1 Then と入力する必要があります。 それでは、 If aaa = 0 Or 1 Then とした時、プログラムではどういう処理がなされているのでしょうか?
- ベストアンサー
- Visual Basic
- 【VB.NET】複数のサブルーチンをすべて一気に抜ける方法?
【VB.NET】複数のサブルーチンをすべて一気に抜ける方法? 今晩は,いつも勉強させていただいております. 質問させていただきます.どうぞよろしくお願いいたします. 環境:Vista+VB2008 でございます。 例えば下のようなコードがあったといたしまして、 Sub AAA Call BBB End Sub Sub BBB Call CCC End Sub Sub CCC '★ End Sub 特定の条件の時のみ、★マークのところで、動作を終了したい (Sub AAAのEnd Subに移動したい)場合、どのようにすべきでございましょうか?? Exit SubだとSub CCCしか抜けてくれませんし(Sub BBBから実行を続行してしまう)、 フラグ立てだと Public フラグ as string ="" Sub AAA Call BBB If フラグ = "抜ける" then Exit Sub End Sub Sub BBB Call CCC If フラグ = "抜ける" then Exit Sub End Sub Sub CCC If (抜けたい時)then フラグ = "抜ける" Exit Sub End If End Sub のように、コードが少し見にくくなってしまいます。。。 何か他のスマートな方法などございましたら、是非ともご紹介いただきたくお願いいたします。 もしお詳しい方がいらっしゃいましたら,どうぞよろしくお願いいたします。
- ベストアンサー
- Visual Basic
- Excel2000マクロ_ブック名に一貫性が無くて既に開いている物の間のコピー等
何方か、回答をお願いします。 (A.xlsのAAAシート)(B.xlsのBBBシート)この2つ間のセル値をコピーしたい のですが(共にブック名シート名に一貫性は無しで、既に開いています。) マクロ付.xlsに下記のマクロを書いてA.xlsのAAAシートがアクティブの時にマクロを 実行してtwwにAAAシートをセット出来たのですが、Bk1にB.xlsのBBBシートをセット出来ません。 Application.Waitで止めている間にアクティブシートを変えようとしましたが駄目 Application.Dialogs(xlDialogWorkbookUnhide).Showでも駄目でした。 何方か、マクロ実行中のアクティブシート変更方法を教えて下さい。 又、この様なブック名に一貫性が無くて既に開いている物の間のコピー等はどの様に するのか参考になる物が有れば教えて下さい。 Sub コピー() Dim Bk1 As Worksheet Dim tww As Worksheet Set tww = ActiveWorkbook.Sheets(1) 'ここが分かりません Set Bk1 = ActiveWorkbook.Sheets(1) '-------1個目 tww.Range("D10").Value = Bk1.Range("H9").Value Set Bk1 = Nothing: Set tww = Nothing End Sub
- ベストアンサー
- オフィス系ソフト
- プレミアム機能を使用するため、モバイル端末の認証で送られてきたメールで認証をタップしたが反応がない。
- お使いの環境はiOSで、接続は無線LANです。
- 関連するソフト・アプリや電話回線の種類は特にありません。
お礼
解決しました。ありがとうございました。