Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


211 / 500 ページ ←次へ | 前へ→

【9040】クエリー実行でデータの判断について
質問  たけし  - 07/1/25(木) 12:02 -

引用なし
パスワード
   当初マクロのみで処理を実行していましたが、
クエリーを実行したときにレコードがひとつも無い場合は
次の処理を実行し、データがある場合は、リストを出力し次の処理を
キャンセルするか、実行するかを選択したいのですがどのようにすればいいのでしょうか?
一度テーブルを作成して作成したテーブルを読込んでカウントするしかないのでしょうか?
よろしくお願いします
・ツリー全体表示

【9039】Re:Excelのシートの読込について
お礼  NEMOTO  - 07/1/25(木) 11:49 -

引用なし
パスワード
   皆さんありがとうございます。
うまく処理できました。
・ツリー全体表示

【9038】HTMLのソース抽出・・・その後
お礼  yuki  - 07/1/23(火) 14:26 -

引用なし
パスワード
   やってみます。
ありがとうございました。
>Instr関数で、<td ALIGN="right"> の位置を求める。
>いったん、Mid関数で、<td ALIGN="right">以降の文字列Aを取得する。
>文字列Aより、<の位置を取得し、Left関数で必要な部分を取得する。
>
>テーブルに代入は、
>Docmd.RunSQL とか
>Currentdb.Execute で
>追加するSQL文を実行すれば良いです。
・ツリー全体表示

【9037】Re:AccessからExcelを操作するのです...
お礼  K.S  - 07/1/23(火) 13:41 -

引用なし
パスワード
   ▼かみちゃん さんへ

>以下のコードに修飾子appExcelがきちんとついていないように思います。
>
> 最下行番号 = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
> 右端列番号 = Cells(1, ActiveSheet.Columns.Count).End(xlToLeft).Column
>
> ActiveSheet.Range(Cells(1, 1), Cells(最下行番号, 右端列番号)).Copy
>
> ActiveSheet.Range("A1").PasteSpecial

このような助言を頂き、記述を模索したところ下記記述で終了するようになりました。
ほんとうにありがとうございました。

修正した記述。

  最下行番号 = appExcel.ActiveSheet.Cells(appExcel.ActiveSheet.Rows.Count, 1).End(xlUp).Row
  右端列番号 = appExcel.ActiveSheet.Cells(1, appExcel.ActiveSheet.Columns.Count).End(xlToLeft).Column
 
  appExcel.ActiveSheet.Range(appExcel.ActiveSheet.Cells(1, 1), _
  appExcel.ActiveSheet.Cells(最下行番号, 右端列番号)).Copy
  
  Set Book = appExcel.Workbooks.Add
  appExcel.Visible = False 'True
  Book.ActiveSheet.Range("A1").PasteSpecial
・ツリー全体表示

【9036】Re:Accessタイトルバーのxボタン無効化
お礼  rino  - 07/1/23(火) 13:12 -

引用なし
パスワード
   ありがとうございました!できました。
・ツリー全体表示

【9035】Re:AccessからExcelを操作するのです...
お礼  K.S  - 07/1/23(火) 9:48 -

引用なし
パスワード
   かみちゃん さんへ
早速の助言ありがとうございます。

>以下のコードに修飾子appExcelがきちんとついていないように思います。
> 最下行番号 = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
> 右端列番号 = Cells(1, ActiveSheet.Columns.Count).End(xlToLeft).Column
> ActiveSheet.Range(Cells(1, 1), Cells(最下行番号, 右端列番号)).Copy
> ActiveSheet.Range("A1").PasteSpecial

この助言の“修飾子appExcelがきちんとついていない”ということらしいので
このコピー、ペーストの記述を検討してみます。

検討する項目が解らなかったのですが1つ判明して大変助かります。
ありがとうございました。
・ツリー全体表示

【9034】Re:AccessからExcelを操作するのです...
発言  かみちゃん E-MAIL  - 07/1/22(月) 22:32 -

引用なし
パスワード
   こんにちは。かみちゃん です。

こちらでは久しぶりにコメントさせていただきます。
普段は、Excel質問箱へのコメントが多いのですが・・・

>AccessからあるExcelシートの一部分をコピーし、新規作成のブックのシートに貼り付けをしたいのです。(下記では使用最大範囲になっています)
>ここで貼り付けまではうまくいくのですが、プロセス一覧にExcelが残ってしまい
>終了しないのです。

私も以前はよく経験したことなのですが、
以下のコードに修飾子appExcelがきちんとついていないように思います。

 最下行番号 = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
 右端列番号 = Cells(1, ActiveSheet.Columns.Count).End(xlToLeft).Column

 ActiveSheet.Range(Cells(1, 1), Cells(最下行番号, 右端列番号)).Copy

 ActiveSheet.Range("A1").PasteSpecial
・ツリー全体表示

【9033】Re:条件付書式の文字色について
お礼  かめ  - 07/1/22(月) 18:49 -

引用なし
パスワード
   もももさん出来ました。

感謝します。

ありがとうございます。
・ツリー全体表示

【9032】AccessからExcelを操作するのですが、...
質問  K.S  - 07/1/22(月) 18:15 -

引用なし
パスワード
   行いたいことは
AccessからあるExcelシートの一部分をコピーし、新規作成のブックのシートに貼り付けをしたいのです。(下記では使用最大範囲になっています)
ここで貼り付けまではうまくいくのですが、プロセス一覧にExcelが残ってしまい
終了しないのです。
ただ、[実行]-[リセット]を選択すると終了します。
何かがクリア(初期化?)されていないようなのですが、その何かが解りません。
どうか教えていただけないでしょうか?

下記が現在記述している内容です。
(ファイル名等は仮りです)

Private Sub コマンド0_Click()
On Error GoTo エラー

  Dim appExcel As Object 'Excel.Application
  Dim Book As Object   'Excel.Workbook
  Dim 最下行番号 As Long, 右端列番号 As Integer

  varinput1 = "C:\サンプルbook.xls"     '←Public定義です。
  varinput2 = "D:\temp サンプルbook.xls"   '←Public定義です。
  
  Call file_check
  
  'コピーもとのMs Excelファイルを利用できるように設定します。
  Set appExcel = CreateObject("Excel.Application") '← Excel 起動 終了しない

  Set Book = appExcel.Workbooks
  'Excelファイルのパスを指定します。
  Book.Open (varinput1)
  appExcel.Visible = False
  
  'Sheet名を指定します。
  varsheet = "サンプル"
  appExcel.Worksheets(varsheet).Select
  
  最下行番号 = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
  右端列番号 = Cells(1, ActiveSheet.Columns.Count).End(xlToLeft).Column

  ActiveSheet.Range(Cells(1, 1), Cells(最下行番号, 右端列番号)).Copy
  
  Set Book = appExcel.Workbooks.Add
  appExcel.Visible = False 'True
  
  ActiveSheet.Range("A1").PasteSpecial
  
  '現在アクティブなブックに名前をつけて保存する(閉じない)
  Book.SaveAs Filename:=varinput2

  Book.Close
  Set Book = Nothing
  
  appExcel.Quit
  Set appExcel = Nothing

  Exit Sub
  
エラー:

  If Err.Number = 1004 Then
   Resume Next
  Else
   MsgBox Err.Number & " : " & Err.Description
  End If

End Sub

Private Sub file_check()

'----FILE 存在チェック----------------------------------------------------
    '指定したファイルの存在確認
  Dim objFSO As FileSystemObject
  Set objFSO = CreateObject("Scripting.FileSystemObject")
  
  If objFSO.FileExists(varinput2) = True Then
 
   objFSO.DeleteFile varinput2
   
  End If
  Set objFSO = Nothing
'----FILE 存在チェック END -----------------------------------------------

End Sub
・ツリー全体表示

【9031】Re:条件付書式の文字色について
回答  ももも  - 07/1/22(月) 16:51 -

引用なし
パスワード
   かめさん こんにちは

条件付書式ではなくコントロールソースに
=IIF([フィールド名]=0,Null,[フィールド名])

としてみては?
・ツリー全体表示

【9030】条件付書式の文字色について
質問  かめ  - 07/1/22(月) 15:39 -

引用なし
パスワード
   かめと申します。1つ教えていただきますでしょうか?
ある条件を満たしたとき(具体的には0の時)に文字色を透明にしたいのですが無理でしょうか?
条件で背景色が変わるので白色ではまずいのです。
背景色とか線には透明がありますが、そもそも文字色には透明はないのでしょうか?
・ツリー全体表示

【9029】Re:クエリで片方にないものを抽出
お礼  Elf_Fighter  - 07/1/22(月) 12:46 -

引用なし
パスワード
   不一致クエリで目的とするSQLを作成することができました。
ありがとうございました。
・ツリー全体表示

【9028】Re:HTMLのソース抽出・・・その後
回答  まさ7251  - 07/1/21(日) 21:32 -

引用なし
パスワード
   >Private Sub WebBrowser0_DocumentComplete(ByVal pDisp As Object, URL As Variant)
> 'HTMLをイミディエイトウィンドウに表示
> Debug.Print WebBrowser0.Document.Body.innerHTML
>End Sub
>
>で取得できるのですが、その取得したHTMLソースの中でも、「<td ALIGN="right">」〜次の「<」までの部分を抽出してテーブルに代入したいのですが、どうすればいいでしょうか?

Instr関数で、<td ALIGN="right"> の位置を求める。
いったん、Mid関数で、<td ALIGN="right">以降の文字列Aを取得する。
文字列Aより、<の位置を取得し、Left関数で必要な部分を取得する。

テーブルに代入は、
Docmd.RunSQL とか
Currentdb.Execute で
追加するSQL文を実行すれば良いです。
・ツリー全体表示

【9027】フォーム・レポートのフォント統一
質問  ゆみちゃん E-MAIL  - 07/1/21(日) 13:58 -

引用なし
パスワード
   いつもお世話になっています。
新規に作成するフォームとレポートのフォントを全て統一したいのですが設定の仕方がわかりません。現在はラベルやテキストボックスを作成するとMS-Pゴッシクに
なります。これをMS明朝に手作業で変更しています。
ツール→オプション→データシートでMS-PゴッシクをMS明朝に変更しましたが結果はかわりません。初歩的な質問ですがよろしくお願いいたします。
・ツリー全体表示

【9026】Re:クエリで片方にないものを抽出
発言  shin  - 07/1/20(土) 18:23 -

引用なし
パスワード
   ▼ELF_Fighter さん:

>テーブルAのレコードから、hがテーブルBにないものを抽出したいのですが、

不一致クエリではだめなのですか?
・ツリー全体表示

【9025】クエリで片方にないものを抽出
質問  ELF_Fighter  - 07/1/20(土) 15:22 -

引用なし
パスワード
   クエリ(SQL文)の質問です。
テーブルAとBがあり、それぞれにフィールドhがあります。
テーブルAのレコードから、hがテーブルBにないものを抽出したいのですが、どうしたら良いでしょうか。
例)テーブルAのh 1,2,3,4,5,6
  テーブルBのh 1,4
  抽出結果 2,3,5,6
よろしくお願いします。
・ツリー全体表示

【9024】Re:Excelのシートの読込について
回答  yasu  - 07/1/20(土) 0:48 -

引用なし
パスワード
   ▼Gin_II さん:
>>Excelのシートを読込みたいのですが表示されていないシートについでも
>>読込可能なのでしょうか?
>
>試せば分かることでは?

Function ExcelDataImport()

'On Error GoTo エラー

  Dim varac As Variant
  Dim varxls As Variant
  Dim strrange As String
  Dim strmsg As String

  varac = "tbl_売上げ" ' --- A
  
  varxls = "C:\売上げ.xls" ' ---B
  
  strrange = "売上げシート!A1:D10" ' --- C
  
  strmsg = "Excelファイル" & varxls & " を、Accessテーブル " & varac & _
       "へ、データ入力を行います。" & Chr(13) & _
       "Excelファイルの入力レンジは、 " & strrange & " です。"

  DoCmd.DeleteObject acTable, varac ' --- D
  If MsgBox(strmsg, vbOKCancel) = vbOK Then
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
                    varac, varxls, True, strrange ' -- E
    MsgBox "データ入力は、正常に完了しました。"
  End If

  Exit Function

エラー:

  MsgBox "予期せぬエラーが発生しました。" & Chr(13) & _
      "エラー番号:" & Err.Number & Chr(13) & _
      "エラー内容:" & Err.Description, vbCritical
  Exit Function

End Function

あくまでも参考ですが、strrangeの変数にシート名と範囲を指定してあげればいけると思いますよ。
・ツリー全体表示

【9023】HTMLのソース抽出・・・その後
質問  yuki  - 07/1/19(金) 22:36 -

引用なし
パスワード
   HTMLのソースは

Private Sub コマンド5_Click()
 '指定したURLのホームページを表示
 WebBrowser0.Navigate "ここにURL"
End Sub

Private Sub WebBrowser0_DocumentComplete(ByVal pDisp As Object, URL As Variant)
 'HTMLをイミディエイトウィンドウに表示
 Debug.Print WebBrowser0.Document.Body.innerHTML
End Sub

で取得できるのですが、その取得したHTMLソースの中でも、「<td ALIGN="right">」〜次の「<」までの部分を抽出してテーブルに代入したいのですが、どうすればいいでしょうか?
・ツリー全体表示

【9022】Re:エクスポートのファイル名
お礼  あおぎん  - 07/1/19(金) 18:11 -

引用なし
パスワード
   ▼Gin_II さん:
さっそくのお返事ありがとうございます。
ご提示の方法でできました!
ありがとうございました。

>  DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Q_中学校就学予定児童名簿_xls用", "E:\名簿\中学校就学予定児童名簿(" & Me!中学校名 & ").xls", True
> 
>  で、どうでしょうか?
・ツリー全体表示

【9021】Re:エクスポートのファイル名
回答  Gin_II  - 07/1/19(金) 17:23 -

引用なし
パスワード
   >   DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Q_中学校就学予定児童名簿_xls用", "E:\名簿\中学校就学予定児童名簿.xls", True

  DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Q_中学校就学予定児童名簿_xls用", "E:\名簿\中学校就学予定児童名簿(" & Me!中学校名 & ").xls", True
 
  で、どうでしょうか?
 
 
・ツリー全体表示

211 / 500 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
1084629
(SS)C-BOARD v3.8 is Free