- ベストアンサー
アクセスのデータを編集しながらエクセルに帳票する時
初心者なんですがアクセスのテーブルのデータを編集しながらエクセルに表として出したいのですがB列の幅を15にしたいとか言う時に何列目かが決まってなくて変数をlngColとかにしたんですが数値だからか型が違うと言われてしまいます。その場合はどうすれば良いのでしょうか?あと罫線とか引くときにEdgeTopとかってありますよねアクセスで書くと変数宣言されてませんって言われるんですが、どう記述したら良いのでしょうか?こんなんで分かってもらえるかしら?よかったら例を記述してほしいのですが...宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Dim Col1 As Long, Col2 As Long Dim Row1 As Long, Row2 As Long って宣言されてて Col1 = 3: Col2 = 6: Row1 = 1: Row2 = 8 って値が入ってたら With xlApp.ActiveWorkbook.ActiveSheet With .Range(.Cells(Row1, Col1), .Cells(Row2, Col2)) With .Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With .Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With End With End With こんなかな。withだらけだけど(^^; Rangeオブジェクトの中をCellsプロパティで 2つのセルを指定すればよいかと。
その他の回答 (2)
- GuruGuru22
- ベストアンサー率51% (177/346)
その変数RowとかColってのは どんな型で、どのような値が 入っているのでしょうか。 下のようにやれば、うまくできましたが。 Dim xlApp As New Excel.Application Dim Col As Integer xlApp.Workbooks.Open ("c:\book1.xls") xlApp.Visible = True Col = 3 With xlApp.ActiveWorkbook.ActiveSheet With .Columns(Col).Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With End With
補足
本当に何度も済みません。1つのセルだけを指定するなら書いて頂いたので確かに上手くいくのですが、私がしたいのは複数のセルを一気に指定して罫線をひきたいのです。前の補足でも記入したように("C1:F8")とかで、その時のC1・F8がRow=1Col=3からRow=8Col=6とかってLongで値が入ってるのですが...どうでしょうか?
- GuruGuru22
- ベストアンサー率51% (177/346)
>アクセスのテーブルのデータを編集しながらエクセルに表として出したいのですが >B列の幅を15にしたいとか言う時に何列目かが決まってなくて変数をlngColとかに >したんですが数値だからか型が違うと言われてしまいます。 >その場合はどうすれば良いのでしょうか? 何をおやりになってるか、よくわかりません。 「型が違う」と言われているなら、適切な型を 選べばよいのでは。 実際のコードの提示がなければ、 これ以上のアドバイスはできないような。 >アクセスで書くと変数宣言されてませんって言われるんですが VBEの[ツール]→[参照設定]でMicrosoft Excel *.* Object Library に チェックはついてますか。 でなければ、数値で指定するか。 Excel側でdebug.printとかで確認すれば、わかります。
補足
済みません自分でも何て書いたら良いか分からなくって...ある列Xのみ罫線を引きたいのですがアクセス上では列も行も数値で何番目ってなってるので With Columns(Col).Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With と書くと型が違うと言われるのですが本来のように"C:C"って書けないので、その時はどうすれば良いのか教えていただきたいのです。 簡単に1列目はAとか3列目はCとかって変換できないのでしょうか? ちなみにObject Library にはチェックついてます。 あとあるセルXからあるセルYまでって言う場合も、どうすれば良いのでしょうか? エクセルだと Range("A1:D9") って書くじゃないですか これも変数Row・Colを使って言いたいのですが こんなんで分かってもらえるでしょうか? 宜しくお願いします。
お礼
またまた遅くなりましたm(__)m本当にどうも有難うございました。おかげで助かりました\(^o^)/