エクセルのマクロの質問です。次のマクロははてなで回答者の方々に作成していただいたマクロです。

1)http://q.hatena.ne.jp/1211105656
2)http://q.hatena.ne.jp/1210987314
3)http://q.hatena.ne.jp/1210860623
現在は一つのブック内に複数のシートがあり、ブック内で処理しています。
作業の都合上、これをシートごとに分離し、それぞれをブックにしたいと思います。
マクロを実行すると対応するブックを参照しに行くことになりますが、参照先のブックが開かれていない場合はマクロで参照先のブックを開きたいと考えています。
マクロの知識が浅いため、解決方法そのものを教えていただければうれしいです。もしそのまま使える完全なコードややり方を回答していただいた回答者の方には500ポイントを差し上げます。よろしくお願いいたします。
※文字制限のため詳細はこの下にある「この質問・回答へのコメント」に記載いたします。

回答の条件
  • 1人10回まで
  • 登録:2008/06/07 11:14:06
  • 終了:2008/06/08 20:07:06

ベストアンサー

id:SALINGER No.1

SALINGER回答回数3454ベストアンサー獲得回数9692008/06/07 16:16:04

ポイント1500pt

我ながら稚拙なコードなので他の人が回答するのは大変かもしれません。

特に3)は今見ると修正の余地があるような気がしますね。

前の質問でブックが開いているかのチェックも作っていたのでそれをそのまま使いました。


コードはブログの方に掲載しました。

http://d.hatena.ne.jp/SALINGER/20080607


'ブックが開いているかをチェック
Function bookCheck(myPath As String) As Boolean
・
・
End Function

この関数は全てで使っています。同じ標準モジュールになる1)と2)の場合は1つあればいいです。

  • id:icta
    この質問は
    http://q.hatena.ne.jp/1210836514
    http://q.hatena.ne.jp/1210860623
    http://q.hatena.ne.jp/1210901281
    http://q.hatena.ne.jp/1210987314
    http://q.hatena.ne.jp/1211105656
    http://q.hatena.ne.jp/1211716499
    の派生質問です。


    ■仕様
    ○ワークシートは以下のように分離

    ・「通販管理」シート
     「通販管理.xls」----「通販管理」シート
     
    ・「顧客名簿」シートと「来店記録」シート
     「顧客管理.xls」--+--「顧客名簿」シート
              +--「来店記録」シート
     
    ・「商品リスト」シート
     「商品管理.xls」----「商品管理」シート

    ○すべてのファイルは「C:\管理」フォルダ内に保存されている。

    ○ブックは以下の回答2のようにマクロ内にパス、ブック名、ワークシートを設定する。
    ブックが開いているかどうかを最初にチェックし、開いていなければマクロで開く。
    http://q.hatena.ne.jp/1211716499


    ■分離するマクロ

    1)http://q.hatena.ne.jp/1211105656
     「通販管理」から顧客情報を「顧客名簿」に転記

     ▼こちらに作成していただいたものがあります。
     この中で「通販管理」→「顧客名簿」のみブックに分離したいと思います。
     「会員管理」→「顧客名簿」は分離の必要はありません。
     http://d.hatena.ne.jp/SALINGER/20080520

     マクロは「通販管理」シートで実行します。

    ※使用するシート
    ・「通販管理.xls」の「通販管理」シート
    ・「顧客管理.xls」の「顧客名簿」シート

    2)http://q.hatena.ne.jp/1210987314
     「通販管理」から購入履歴を「来店記録」に転記

     マクロは「通販管理」シートで実行します。

     ※使用するシート
    ・「通販管理.xls」の「通販管理」シート
    ・「顧客管理.xls」の「来店記録」シート

    3)http://q.hatena.ne.jp/1210860623
     「商品管理」から「来店記録」に商品名を転記

     マクロは「来店記録」シートで実行します。
     
     ※使用するシート
    ・「商品管理.xls」の「商品管理」シート
    ・「顧客管理.xls」の「来店記録」シート
  • id:icta
    > SALINGERさん
    早々のご回答ありがとうございました。
    1)、2)に関しては希望通りの動作を確認しました。ありがとうございます。
    これで転記に関して本運用が可能になりました。
    3)に関しては、「商品管理.xls」の「商品管理」シートにある”商品番号”列がエクセルのB列以外にあるとうまく動作しないようです。
    ”商品番号”列がA列にあると、商品名に「存在しない商品番号」の値を返し、C列にあると商品番号の値を返します。
    恐らく”商品番号が何列目かを調べます”の部分が思惑通りに動作していないのではないかと思われます。

    またこれは別件なのですが、1)のマクロで、「通販管理」から「顧客名簿」に転記したとき、「顧客名簿」に新たに設けた”転記元”列に通販管理から転記したことを表す「通販」と入れるにはどこを変更したらよいでしょうか?
    このくらいは自分でできると思いKOmidasi_name(12) = "転記元"としてみたりしたのですが、型が違いますと表示されうまくいきませんでした。
    ▼このように転記元の行に"通販"の文字を入れまたいと思います。※サンプルは登録日など他の列を省略しています。
    連番 会員番号 旧会員番号 会員資格 名前 フリガナ 郵便番号 住所 電話番号 メール 転記元
    11499 T92000 仮 尾崎 豊 オザキユタカ 111-2222 横浜市××× 012-345-6789 ozaki@yutaka.jp 通販
    お力をお借りできれば幸いです。
  • id:Mook
    いったんは回答しましたが、直接の回答とはなっていないので開封不要です。
  • id:SALINGER
    とりあえず商品管理の方は修正しておきました。
    来店記録の商品番号の列は検索してるのですが、もともと商品管理のほうの列は検索してなかったんです。

    後半の方は、これから用事があるので明日になると思います。
  • id:SALINGER
    1)で転記元を追加しておきました。
  • id:icta
    > SALINGERさん
    修正ありがとうございました。
    希望通りの動作を確認できました。
    いろいろお手数をおかけしました。
    作成していただいたマクロに仕様上変更があったとき自分で改造を試みるのですがエラーの頻発でまったく先に進めません。
    何時間もかけてできなかったことをあっという間に解決するのを見て、ただ驚くばかりです。
    数字がひどく苦手なので、マクロを自分で作るというのは永遠に無理のような気がしています。
    別件ですが、以前作成していただいたマクロに仕様変更がありましたので、新たに質問を投稿しました。
    http://q.hatena.ne.jp/1212922568
    お時間が許す時にご覧になっていただければ幸いです。
    それではまた次の機会もよろしくお願いいたします。
  • id:taknt
    マクロと数学は 関係ないよ。
    数学が苦手でも マクロは作れる。ま、セル位置の計算など小学生レベルの算数力は必要たが。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません