KenKen_SP の回答履歴

全2246件中41~60件表示
  • Excel→Accessのプロシージャを実行させるには?

    http://oshiete1.goo.ne.jp/qa4071588.htmlを参考に Excel→Accessのプロシージャを実行させることはできるのですが、 Access→Excelができません。 回答者:KenKen_SPさまの方法を 逆にしてVBEコードに記載してみたのですが エラーになってしまいます。 ●アクセス側に● Sub Excelのプロシージャを呼び出す() Dim ExApp As Object Set ExApp = GetObject("D:\up\エクセルファイル名.xls") If Not ExApp Is Nothing Then ExApp.Run "TestProcedure" End If Set ExApp = Nothing End Sub ●エクセル側に● Sub TestProcedure() MsgBox "Call されました" End Sub で、実行すると、 「ExApp.Run "TestProcedure"」 の部分で 「オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438)」 というエラーになります。 Excel→Accessなら問題はないのに、 Access→Excelだとエラーになるのはなぜでしょう? (2003です。)

  • Excel簡単入力

       A     B     C     D 1  日付   部門   支店    氏名   金額 2  21/12/1  製造   東京    山田   1000 3  21/12/3  営業   大阪    宮崎    500 上セルと同一内容を簡単に入力する際、Ctrl キー+Shift+"で上セルの内容をコピーし編集状態になりEnterで確定しますよね?それをもっと簡単に空白セルの時Enterで上セルをコピーし編集状態でもう一度Enterで確定というマクロを組みたいので教えてください。初心者です。 なお、皆さんに教えてもらってA1:A600まで以下のマクロを設定し正常に動作しています。 Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next Dim r As Range Dim flg As Long flg = 0 If Intersect(Target, Range("A4:A600")) Is Nothing Then Exit Sub 'A列のみを対象 最初につなげるところ ActiveSheet.Unprotect flg = 1 For Each r In Target Dim a As Long Dim b As String With r If Not .NumberFormatLocal = "ge.m.d" Or .Value = "" Then .NumberFormatLocal = "G/標準" 'セルの書式設定がH00.m.d形式だったら標準に戻す 'セルが 数字    且      整数    且  101以上  且    991231以下 の場合 If IsNumeric(.Value) And Int(.Value) = .Value And .Value >= 101 And .Value <= 1111231 Then b = Str(Val(Left(.Value, 2)) + 1988) & "/" & Mid(.Value, 3, 2) & "/" & Right(.Value, 2) If IsDate(b) Then 'もしbがDateの形なら .Value = CDate(b) 'データ型を日付にする 'ここにつなげる。 変数はtmpからbに直す .NumberFormatLocal = "ggg" & _ IIf(Format(b, "e") > 9, "e年", "_0e年") & _ IIf(Month(b) > 9, "m月", "_1m月") & _ IIf(Day(b) > 9, "d日", "_1d日") ActiveSheet.Protect End If End If End With Next End Sub どうかよろしくお願いします。

  • Accessでmdb中のすべてのマクロを取り出したい

    いつも楽しく勉強させていただいております。 今度、Access(2000)の大量のクエリとマクロでできているシステムをリライトすることになりました。 mdbファイルの数は数千、それぞれ数百のクエリとマクロから成り立っています。VBAはほとんど使っていません。システム部に頼らずにに各ユーザー(非システム系)が自分で使うツール的なものを作っていった結果こうなりました。もちろん使われていないシステムが多いですが、もはやどれが生きているのかすら誰も把握できていない状態ですので、少しずつ統合していこうということになりました。 問題は、あまりに数が多いのでマクロもクエリもいちいちデザインビューで開いて読んでいると訳がわからなくなることです。 下記は同僚にもらったコードですが、mdbファイル内のクエリの内容(SQL文)をテキストファイルに書き出します。これが結構役に立ってくれます。 Sub b() Dim fs As Object, a As Object Dim db As Database Dim qdf As QueryDef Set fs = CreateObject("Scripting.FileSystemObject") Set a = fs.CreateTextFile("c:\hoge.txt", True) Set db = CurrentDb For Each qdf In db.QueryDefs a.WriteLine qdf.Name a.WriteLine qdf.SQL Next a.Close End Sub 私が知りたいのは、これを応用してマクロの中身を出力する方法です。 おそらく、 Dim qdf As QueryDef と qdf.SQL あたりを変更すると可能なのじゃないかと・・・。 どなたかご存知でしたら、教えてください。

  • EXSELで IF ISBLANK の繰り返しをスマートに記述したいのですが…

    質問がちょっと舌足らずでしたので、書き直します。 =+IF(ISBLANK(D1),0,C1)+IF(ISBLANK(D2),0,C2)+IF(ISBLANK(D3),0,C3)・・・+IF(ISBLANK(Dn),0,Cn)という式を、 もっとスマートに短く記述したいのですが、何か良いアイディアをお持ちでしたらぜひご提案下さい。 D列のセルには数字と文字が混在しており、数字の入力されているD列のセルに対応するC列のセル(数字)のみを合計したいという意図です。

  • エクセル2002でマクロ実行時にエラー

    エクセル2002を使用しています。 最近、マクロを勉強中ですが、マクロを実行すると以下のエラーが発生します。 「実行時エラー1004  WindowクラスのScrollRowプロパティを設定できません」 動作させたい内容は・・・ A6:BI44645のデーターを数式と値のクリアで消して、A6にカーソルを移動し、 その後A1に戻す(A5行にはオートフィルターを設定しているので、A6→A1としてます)動作です。 上記エラー発生にてデバッグを選択すると、以下の命令行が黄色に塗られてます。(ちなみに、A6:BI44645のデータークリアまでは完了してます) ActiveWindow.ScrollRow = -20979 色々探しましたが、「実行時エラー1004」はヒットするが、 「WindowクラスのScrollRowプロパティを設定できません」がヒットしません。 何が問題なのか、教えてください。

  • 【Excel】他ブックからOpenされたブックはUserInterfaceOnlyが効かない?

    標記のとおりの質問です。 あるブックAからブックBをOpenし、 UserInterfaceOnlyでロックしたものを編集しようとするのですが、 その際に 実行時エラー '1004': 変更しようとしているセルは保護されているため、読み取り専用となっています。 とのエラーが出てしまいます。 これはブックBで単独で実行するときには出ない症状です。 他ブックから開かれたブックはUserInterfaceOnlyが作用していないのでしょうか。 因みに、B.Closeを実行した中でのWorkbook_BeforeClose関数内での動作です。 どなたかご教示ください。よろしくお願いいたします。

  • セルの自動コピーはできますか?

    ブラウザのSleipnirには、クリップボードにアドレスがコピーされたときに、そのページを開くというオプションがあります。 その機能を使い、予めエクセルに入れておいたHPをスライドショーのように表示させたいと思っています。 そこで、A1・B1・C1…のように、セルを30秒毎に自動でコピーするような機能をエクセルで作ることは可能でしょうか。 あるいは、ほかの機能を用いて行うことはできないでしょうか。

  • セルの自動コピーはできますか?

    ブラウザのSleipnirには、クリップボードにアドレスがコピーされたときに、そのページを開くというオプションがあります。 その機能を使い、予めエクセルに入れておいたHPをスライドショーのように表示させたいと思っています。 そこで、A1・B1・C1…のように、セルを30秒毎に自動でコピーするような機能をエクセルで作ることは可能でしょうか。 あるいは、ほかの機能を用いて行うことはできないでしょうか。

  • Webクエリで困っています

    以下のマクロを作りました。Webクエリで、セルA1に入力してあるURLを読み込んで表を取り込み、必要なところを選択してコピーするようにしたいのです。しかし、実行すると上から3行目まで黄色になってエラーになります。特に3行目には矢印が表示されています。いろいろ調べましたが結局分かりませんでした。宜しくお願いします。 ------------------------------------------------------ Sub クエリで取得() ' ' クエリで取得 Macro ' マクロ記録日 : 2009/7/30 ユーザー名 : charlie ' ' With ActiveSheet.QueryTables.Add(Connection:= _ Range("A1").Value _ , Destination:=Range("A2")) .Name = "resultlist?tbws=x0p01a&hd=20090716&jcd=01_2" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = False .RefreshOnFileOpen = False .BackgroundQuery = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = False .RefreshPeriod = 0 .WebSelectionType = xlEntirePage .WebFormatting = xlWebFormattingNone .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = True .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With Range("A19:Q54").Select Selection.Copy End Sub ----------------------------------------------------------

  • excelVBA コンボボックスに時刻で表示したい

    いつもお世話になります。お知恵を貸してください。 ユーザーフォームにコンボボックスがあります。 リストの中身はプロパティウィンドウのRowSourceでSheetにある時間表を指定しています。 そのリストは7:00,7:30,8:00…と時刻をh:mmで表示してあります。 コンボボックスには7:00と表示されているのですが、実際選ぶとシリアル値で表示されてしまいます。 [終了時間]-[開始時間]の計算もしたいので、シリアル値は必要だと思いますが、表示はh:mmで表示する方法を教えてください。 よろしくお願いします。

  • excelVBA コンボボックスに時刻で表示したい

    いつもお世話になります。お知恵を貸してください。 ユーザーフォームにコンボボックスがあります。 リストの中身はプロパティウィンドウのRowSourceでSheetにある時間表を指定しています。 そのリストは7:00,7:30,8:00…と時刻をh:mmで表示してあります。 コンボボックスには7:00と表示されているのですが、実際選ぶとシリアル値で表示されてしまいます。 [終了時間]-[開始時間]の計算もしたいので、シリアル値は必要だと思いますが、表示はh:mmで表示する方法を教えてください。 よろしくお願いします。

  • エクセルマクロによるハイパーリンク

    エクセルマクロにてブラウザを起動させ指定サイトを開く方法を教えて下さい。 なお、セルに直接URLを入力し同セルをダブルクリックすれば可能な事は承知しています。 以上、よろしくお願いします。

  • excelVBA コンボボックスに時刻で表示したい

    いつもお世話になります。お知恵を貸してください。 ユーザーフォームにコンボボックスがあります。 リストの中身はプロパティウィンドウのRowSourceでSheetにある時間表を指定しています。 そのリストは7:00,7:30,8:00…と時刻をh:mmで表示してあります。 コンボボックスには7:00と表示されているのですが、実際選ぶとシリアル値で表示されてしまいます。 [終了時間]-[開始時間]の計算もしたいので、シリアル値は必要だと思いますが、表示はh:mmで表示する方法を教えてください。 よろしくお願いします。

  • Webクエリで困っています

    以下のマクロを作りました。Webクエリで、セルA1に入力してあるURLを読み込んで表を取り込み、必要なところを選択してコピーするようにしたいのです。しかし、実行すると上から3行目まで黄色になってエラーになります。特に3行目には矢印が表示されています。いろいろ調べましたが結局分かりませんでした。宜しくお願いします。 ------------------------------------------------------ Sub クエリで取得() ' ' クエリで取得 Macro ' マクロ記録日 : 2009/7/30 ユーザー名 : charlie ' ' With ActiveSheet.QueryTables.Add(Connection:= _ Range("A1").Value _ , Destination:=Range("A2")) .Name = "resultlist?tbws=x0p01a&hd=20090716&jcd=01_2" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = False .RefreshOnFileOpen = False .BackgroundQuery = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = False .RefreshPeriod = 0 .WebSelectionType = xlEntirePage .WebFormatting = xlWebFormattingNone .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = True .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With Range("A19:Q54").Select Selection.Copy End Sub ----------------------------------------------------------

  • AccessVBAの値によってチェックボックスの背景色を変えるには?

    Accessのフォームで以下のようなことを実現したいのですが、 1.テーブルAに以下のような情報を持たせる。   <テーブル名:A>   区分値  区分値名   分類   1    瓶(無色)   10   2    瓶(有色)   10      3    缶       30 2.選択クエリーを使い別のテーブル情報(テーブル名:B)をフォームにて表示させるが、   フォーム上で表示させる時に、テーブルAの区分値名を表示させる。    3.2の際にテーブル名:Aの分類が”30”だった場合、   フォーム上に設けたチェックボックスにグレーの色をつける。 いろいろな書籍等で調べているのですが、分かりません。 どなたかご教授頂けませんか?

  • EXCEL VBA リストボックスの列を指定してForeColorを変更する方法について

    すいませんEXCEL VBAのリストボックスのことでお伺いしたいことがあります。 シート上に複数列を表示させるリストボックスを作っているのですが、 その1列目だけフォントのカラーを変更するというのは可能なのでしょうか。 プロパティのForeColorを変更すると当然ですが全部の列の色が変更されてしまい、 色々探しても出来る出来ないを含めてやり方について触れたものが見当たりません。 どなたかご存知の方がおられましたらご教示ください。 With Sheets("AAA").ListBox1   .ColumnCount = 6  .ColumnWidths = "55,70,40,40,40,35"  ’一列目だけフォントのカラーを赤くする  End With

  • AccessVBAの値によってチェックボックスの背景色を変えるには?

    Accessのフォームで以下のようなことを実現したいのですが、 1.テーブルAに以下のような情報を持たせる。   <テーブル名:A>   区分値  区分値名   分類   1    瓶(無色)   10   2    瓶(有色)   10      3    缶       30 2.選択クエリーを使い別のテーブル情報(テーブル名:B)をフォームにて表示させるが、   フォーム上で表示させる時に、テーブルAの区分値名を表示させる。    3.2の際にテーブル名:Aの分類が”30”だった場合、   フォーム上に設けたチェックボックスにグレーの色をつける。 いろいろな書籍等で調べているのですが、分かりません。 どなたかご教授頂けませんか?

  • WebBrowserでAタグ取得

    VB9でWebBrowserを使ってホームページにアクセスしているのですが、 そのページにある全てのAタグのURLとAタグの表示テキストを取得したいのですが、どのようにすれば良いでしょうか? WebBrowser1.Navigate(URL) ...待ち 受信完了 ここまではできています。 この後のAタグを取得するコードが知りたいです。

  • WebBrowserでAタグ取得

    VB9でWebBrowserを使ってホームページにアクセスしているのですが、 そのページにある全てのAタグのURLとAタグの表示テキストを取得したいのですが、どのようにすれば良いでしょうか? WebBrowser1.Navigate(URL) ...待ち 受信完了 ここまではできています。 この後のAタグを取得するコードが知りたいです。

  • 正しいWebBrowserの使い方(ループ判定)

    VB2008を使っています。WebBrowserのコンポーネントを使って ホームページにGET形式でパラメータを渡して画面のBODY部分を読み取る ものを作っているのですが、サーバーのレスポンスにもよりますが 1分間に20回で5分(100回程度)連続アクセスをするのですが、 以下のルーチンの場合何か不安を感じまして、 ネットでこれを使えばOKというものが無くて 確実に読み取る方法が知りたくて質問いたしました。 やはり、2つ目のイベントを用いる方が安心でしょうか? 正しいWebBrowserの使い方(ループ判定)をご存知の方教えてください。 '***** WebBrowser1.ReadyState ***** WebBrowser1.Navigate(URL) Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete Or WebBrowser1.IsBusy = True Application.DoEvents() Loop data = WebBrowser1.DocumentText '***** DocumentCompletedイベントまでループ ***** public wait_flag as Boolean wait_flag = True WebBrowser1.Navigate(URL) Do While (WebBrowser1.IsBusy = True) Or (wait_flag = True) Application.DoEvents() Loop data = WebBrowser1.DocumentText '---- イベント ----- Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted wait_flag = False End Sub