[三流君] −−> [VBAで楽しく] −−> [バックナンバー一覧]
−−> No.014 Excel 隣のシートを参照して逃げる

Excel 隣のシートを参照して逃げる

メルマガ発行内容

<Excel 隣のシートを参照して逃げる>

こんにちは、 メルマガ発行中の三流プログラマーKen3です。 今回は、 意外な解決方法のメールを貰ったので、 チョット発行してみます。 いつものセリフで、そんなたいしたことじゃないので今回もご安心を。 /* * 1. いつもの前置き */ 前回の Excel セルに名前を付けて使用する で、 セルに名前を付けて、 Sub Macro1() Range("単価") = 20 End Sub とか使えるよ、使ってね。 と やりました。 応用すると、変更の少ないプログラム書けるよ なんて言ってましたね。 In message "[VBAで楽しく No.013] - Excel セルに名前を付けてみる", >AccessからExcelファイルを開いて、データをセット >セット位置は、 >ID・・・・・・セルB4 >Name・・・・・セルC4 >Address ・・・セルB6 >TEL ・・・・・セルD7 >にセットする。 詳細は、 /vba/backno/vba013.html から参照可能です。 In message "[VBAで楽しく No.013] - Excel セルに名前を付けてみる", >一行目にタイトル行を追加したい >と >客先から依頼が来ました。 > >そしたら、アナタの修正手順は?どんな感じですか? > >Excel TYPE.xlsを開いて、一行挿入して、タイトル入力後に上書き保存、 >Access側のセット処理は、 > oApp.Range("B4").Value = Me![ID] > oApp.Range("C4").Value = Me![Name] > oApp.Range("B6").Value = Me![Address] > oApp.Range("D7").Value = Me![TEL] >を > oApp.Range("B5").Value = Me![ID] > oApp.Range("C5").Value = Me![Name] > oApp.Range("B7").Value = Me![Address] > oApp.Range("D8").Value = Me![TEL] >と >セット位置を+1すれば修正完了でしょ。 >チョロイ修正でしたね。 上記の単純にAccess側で、データセットのセル位置を修正する方法 と 下記のExcel側でセルに名前を付けておき、Access側は無修正 勝手にExcelファイルを自由に修正できるよ。 In message "[VBAで楽しく No.013] - Excel セルに名前を付けてみる", >Excelでセルに名前を付けてると、 >一行挿入しても、名前の位置は相対的に移動するので、 >Access側の > '*2 Range(セルに付けた名前).Value ="XXXX" でデータをセットする > oApp.Range("ID").Value = Me![ID] > oApp.Range("氏名").Value = Me![Name] > oApp.Range("住所").Value = Me![Address] > oApp.Range("電話番号").Value = Me![TEL] >は、変更無しでそのままでOKなんですよ。(これホント!) なんて、書いてました。 /* * 2.ある読者から意外な方法のメールをいただく。 */ Access側は無修正 勝手にExcelファイルを自由に修正できるよ。 に対して、 ある読者から意外な方法のメールをいただきました。 なんて、いつものようにヒッパッタケド、 たぶんみんな知ってる方法で、 シートを隣にコピーして、 タイトルやフォーマットを変更する。 変更された位置に隣の元シートを参照する式を入れる。 =Sheet1!$B$4 みたいに、隣を参照する。 このファイルを保存して次回から使うとOKなんだってさ。 (テストファイルどうもです、参考になりました、盲点?かなぁ。  あと、メルマガ上でお礼を言われると恥ずかしいかな?それともうれしいかなぁ?) へぇ〜 この方法でも、 Access側が、B4にデータをセットしても、 隣から=Sheet1!$B$4と参照するからOKなんですね。 *まぁ、必要無いシートが残ってしまうけどね。(最後の抵抗、、、) データの流れは、 Accessでボタンが押される。 フォームの値を開いたExcelシートB4にセットされる。 と、同時に隣のシートで=Sheet1!$B$4と参照するから なるほどねぇ、これもプログラムを修正しない手かぁ。 この方法を送ってくれた 自称三流事務員さんは、 Excelで作業をしていると、 A社向けフォーマット、B社向け・・・F社向け と 同じ項目を違う書式で印刷しているので、 =シート!セル番地(=Sheet1!$B$4) でいつも小細工してるんだって。 すごい、使える一流事務員さんだよ じなくって、 Excelの豊富な機能を使って工夫して処理することも重要かなぁ。。。 と ふと思いました。 掲示板 : http://www.ken3.org/cgi-bin/bbs/vba/wforum.cgi やメールで気軽に意見やこんな方法など書いてくれるとうれしいです *何も出ないけど(笑)、中にはキビシイ書き込みも掲示板にあったけど、  がんばってやっていきますか。 /* * 3.勝手にプログラムの話へ */ 今までの流れをふまえ、プログラム系の話に強引に持って行く。 Accessフォームの値をExcelにセットする 処理を少し工夫して下記のようにしてみる。 In message "[VBAで楽しく No.013] - Excel セルに名前を付けてみる", >AccessからExcelファイルを開いて、データをセット >セット位置は、 >ID・・・・・・セルB4 >Name・・・・・セルC4 >Address ・・・セルB6 >TEL ・・・・・セルD7 >にセットする。 これを、 ID・・・・・・シート名DATAのセルA1番地 Name・・・・・シート名DATAのセルA2番地 Address ・・・シート名DATAのセルA3番地 TEL ・・・・・シート名DATAのセルA4番地 に変更する。 Excel側では、実際の表を =DATA!A1 =DATA!A2 =DATA!A3 =DATA!A4 と参照設定して表を作成する。 これなら、Accessからのデータセット処理も変更無く、 Excel側では自由にフォーマットが作成でき、 また、複数のXX社向けフォーマットにも対応可能となる。 客先からフォーマット変更を頼まれても、 イヤな顔をしないで、対応できますね。 (おいおい、それは別問題でどんな時もイヤな顔するのはマズイって) また、客先の人が少しできる人なら、 データはAccessからセットされるので、 自由にシートを追加して、活用して下さい。 なんて、少しカッコつけた会話が可能かなぁ。 /* * 4.終わりの挨拶 */ 今回は、Excel使いの事務員さんから 別な角度のメールをいただいたので、 少し書いてみました。 プログラム同様、いろいろな方法があるんだなぁ と 思いました。 拾い読みして、 1つでも何かの参考となれば幸いです。 発想力を磨こうとあらためて思った、三流プログラマーKen3でした。

フィードバック

VBA系の→[掲示板]←を覗く、質問を書き込む

評価・感想

No.014を読んだ満足度(評価)は?
5満足(参考になった)
4まぁまぁ(一部参考になった)
3普通(どちらとも言えない)
2なんかなぁ(期待と違った)
1不満(読んで損した気分)
作者に感想・質問を送る場合は下記に気軽に書いてください
あなたのお名前(ニックネーム) さん

作者からの返信は、 不用 E-mail で受信したい
*質問・感想はメルマガで紹介する場合があります

ページフッター(リンクや広告など)


[三流君(TOP ken3.org へ戻る)]
-- [VBA系TOPへ]
---- [VBA系バックナンバー目次へ移動]
------ [VBAでIEを操作 CreateObject("InternetExplorer.application")]・・・実は当店一番人気、VBAでIEを操作するサンプルです
------ [VBAでOutlookの操作 CreateObject("Outlook.Application")]・・・Outlookを使い、メール関係の処理です
------ [Access から Excel 連携 CreateObject("Excel.Application")]・・・人気のAccessからExcelへデータ書き出しなどです
------ [AccessのUserForm/サブフォームを操作]・・・アクセスでフォームを使ったサンプルです
------ [Accessのレポートを操作]・・・レポートを操作してみました
------ [Access クエリー関係やその他関数]・・・あまりまとまってませんが、スポット的な単体関数の解説です
------ [Excel UserForm(ユーザーフォーム)を操作する]・・・エクセルでユーザーフォームを作成して入力などを行ってます
------ [ExcelからAccessを操作する]・・・ExcelからAccessのマクロを起動してみました、
------ [Excel関係 関数、その他]・・・その他Excel関係です
------ [VBAでテキストファイル(*.txt,*.html,*.csv)の操作]・・・テキストファイルを使ったサンプルです
------ [VBA 標準関数関係とその他解説]・・・その他、グダグタ解説してます


広告
-- [通販系の売れ筋広告へ] ←主に楽天やAmazonのランキングです
blog
-- [三流君の作業日記] ← 日々の作業を少々
-- [通販あしあと] ← 通販ページの足跡を一覧で羅列

情報を探す

情報を探すならGoogleかな?

↓Web全体、サポート情報(support.microsoft.com)や三流君VBA(ken3.org)から検索する
Google
Web www.ken3.org
www.microsoft.com support.microsoft.com

あとは、項目別にMSでお勉強かな?
◆ マイクロソフト サイトの歩き方
◇ How-To インデックス
◇ FAQ インデックス
◇ スキルレベル別おすすめコンテンツ
◇ テクノロジ マップ
◇ テーマ別技術資料一覧

書籍の購入

Webだけじゃさすがに勉強しきれないので、プログラミング関係の書籍も読んでみては??

コンピュータ書籍の発送がハヤイ専門店

コンピュータの本・専門店
種類が豊富で探し易いです。※在庫ありが48時間以内発送が急ぎで資料や書籍がほしい時、とても助かります。
お奨め本の目次を見るだけでも勉強になったり

amazon.co.jpでキーワード別チェック

下記、私が設定したキーワードですが、こんな感じで資料や書籍を探ってみては?
[VBA全体を把握する] -- やはり全体をさらっと見たいですよね。
[SQL関連でDB力UP] -- システムはデータベース設計が重要
[ADO接続を探る] -- VBAなのでADO接続を押さえておく
[Windows APIを探る] -- さらにAPIになて知ってれば強力だ!
[.NETを探る] -- と言っても時代は.NETに流れてるし
プログラミング以外でも知りたいことは多くって、
[人間関係] -- で、客先・上司、まわりに気を使い。
[プログラマーの自己啓発] -- プログラムだけじゃなくいろいろと向上したいよ
[コーチング・育成] -- 先輩になったら後輩(部下)の面倒をみてね。
そんなこんなでプログラマーっていろいろと大変なんだってば・・・