三流君 ken3のmemo置き場

三流プログラマーのメモ書きです。主にVBAやWindowsの話題が多いです

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。

よく検索されるキーワード: [質問回答XXXXさんへ] [CreateObject] [VBA] [JRA競馬オッズ]

XXXXXさんへ AccessからExcel データ転記の開始位置について

下記の質問をいただく

Accessからエクセルのテンプレートへ1シート10件ごとに出力させようとしています。
件数も毎回変わります。
件数が増えるごとにテンプレートシートをコピーして増やします。(依頼書1、依頼書2・・・)

「シートへデータを転記( http://www.ken3.org/vba/backno/vba100.html )」を参考になんとかシートごとに出力はできたのですが、出力開始セルがA1からでないとうまく出力できません。テンプレートなので貼付け開始セルをI21からセットしたいのですが、うまくいきません。このプログラムで貼付け開始セルの指定はどうしたらいいのか途方に暮れています。
参考になるページなどありましたら、教えていただけたら幸いです。よろしくお願いします。

で、返信を作成する。

こんにちは。
お急ぎのところ、返信遅れてすみません。
秒で動く時代、もう既に解決済みかなぁと思いつつ
※校長先生なみに挨拶が長いんだよ・・・

>出力開始セルがA1からでないとうまく出力できません。
>テンプレートなので貼付け開始セルをI21からセットしたいのですが、

貼り付け行、場所は、変数yとxが怪しいので
http://www.ken3.org/vba/backno/vba100.html
のコードなら

        objEXCEL.Sheets(strTNAME).Select 'シート名を指定して選択
        'データセット位置を探す(馬鹿っぽく(笑))
        y = 1
        While objEXCEL.Cells(y, 1) <> "" '空白以外の時まわす(空白までループ)
            y = y + 1  '次の行にする
        Wend
        'データをセットする
        x = 1
        For n = 0 To rs.Fields.Count - 1  'フィールドの数分ループする
          objEXCEL.Cells(y, x) = rs.Fields(n).Value 'n番目のフィールド値をセット
          x = x + 1   '列を+1する(次の列へ)
        Next n

ここの、
y=1 が 一行目から下を探っているので、ここを21から調べるにする
x=1が列なので、もしI列からにするなら、
abcdefghi
123456789
なので、x=9 'Iは番目なので
に変更すると、
それなりに動作するともいます。

y=1,x=1を y=21,x=9 に変えて、テストしてみてください。

解決の糸口となれば幸いです。  三流プログラマー Ken3

Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。

  1. [VBA・マクロ プログラミング]の解説
    当店の人気はVBA系のCreateObject("XXXXXX.application")で他のアプリケーションを操作するサンプルが人気です
  2. [プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
    三流君を踏み台にする
  3. [古いクラシック ASP(Active Server Pages)]の解説。
  4. [元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。



本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)