Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
コメントリンクについて
投稿日時: 17/06/06 20:20:33
投稿者: まさ77

お世話になっております。
 
表題の件
エクセルでコメントリンクさせることについてご質問です。
ネットで調べた結果、出来ない事がわかりましたが
本当にできないのでしょうか?
また、別の方法でも良いので別シートの
コメントを表示させる方法は無いものでしょうか?
ちなみに、生産数、使用数、保有数といった計画表になります。

回答
投稿日時: 17/06/06 22:27:20
投稿者: WinArrow
投稿者のウェブサイトに移動

>コメントを表示させる方法は無いものでしょうか?
 
ないと思いますが・・・・
ところで、リンク先は、どこに、どのように指定するつもり?

投稿日時: 17/06/07 05:31:05
投稿者: まさ77

お世話になっております。
どこに表示するかといいますと
A列に機種順に並んでおり、計画表をvlookupで参照している表になります。
1番いいのはコメントされてる機種、日にちがマッチする所に
コメントが入るのがいいのですが
例えば、コメントのみ一覧表とかでも構わないと思っています。
午前中には簡単な計画表を載せます。
コメントをリンクさせる方法はないとは思いますが
何か良い方法ありましたらお教えください。

回答
投稿日時: 17/06/07 06:30:16
投稿者: WinArrow
投稿者のウェブサイトに移動

>1番いいのはコメントされてる機種、日にちがマッチする所に
↑・・意味不明な表現
 
コメントは、「カーソルがあるセルに表示させる」機能ですから、
 
カーソルがあるセルを「アクティブセル」といいます。
 
アクティブセルの行のA列セルに「機種」があり、
アクティブセルの列の1行目(例)の日付がある
機種と日付を引数として
「コメント表」(例、Sheet2をにある)を参照して、アクティブセルのコメントに表示したい
という、のがお望みではないですか?
 
機種はともかくとして、日付は、毎日変わるもの?なので、
「コメント表」をどのようなタイミングで更新するのでしょう?
それを、なぜ、コメントとして表示しなければいけないのですか?
 
 
 
 
 
 

投稿日時: 17/06/07 12:19:08
投稿者: まさ77

お世話になっています。
 
先に簡単ではございますが計画表を下記に入れます。

	6月6日						6月7日					
機種	生産数	使用数	保有	生産数	使用数	保有	生産数	使用数	保有	生産数	使用数	保有
aaa	100											
dd												
as234												
677889	120											
rsgh	78			600			800					
c6889												
6543	100											
22457												
dgu												
gre3	500											
edr788							200					
52frg7	200											
654r67	400											
4235	300											
1235												

上記表が簡単ではございますが計画表です。
コメントリンクをなぜしたいかご説明致します。
計画を立てる人(仮にAさんとします)現場で計画を確認し、進捗や変更依頼を出す(Bさん)がいます。
Aさんが計画を立てる表があり、Bさんは現場用として別ファイルにて同じような表で管理しています。(若干機種数等違いますが)
Aさんが作成した計画表をBさんがリンク上段にAさん作成計画、下段にBさん作成計画とし
変更依頼する際、見比べれるようになっています。
現場が生産するのとは別に、新規立ち上げ用など試作依頼を現場で生産しているのですが
この試作依頼は売り物では無い為、コメントで入力されます。
Bさん計画表で変更をかけた時、試作依頼を見逃してしまったりし、部品切れ、試作依頼の納期に間に合わないという事が発生します。
ですのでコメントのリンクまたは一覧表で確認したく。
計画表は1カ月毎に作成されています。
日々要求数が変わるので一日一回以上は更新している感じです。
AさんはコメントとしていますがBさんは試作も日々の計画に反映したいので
シートが異なったとしても一覧表で表示されればすごく助かります。(この日に試作依頼があるとわかるため)
コメントの中身は試作台数、試作番号、内容等が載っていますので
できればBさんの計画表にリンクさせたいと思っています。
(コメントには機種が入っていないため)

回答
投稿日時: 17/06/07 12:56:56
投稿者: WinArrow
投稿者のウェブサイトに移動

済みませんが、
説明がよくわかりません。
 
要するに
Bさんが作成する計画表に
Aさんが作成した計画表の中の情報を取り込みたい
ということですよね?
 
少なくとも
Bさん側の(ブックの)シートのキー(機種、日付)がAさん側の(ブックの)シートに存在しなければいけない、
これは、基本的なことです。
その保証が無ければ、どんなのあがいてもムリ。
 
Bさん側シートに取り込めたとして、セルに設定したコメントでは、無理です。
何故ならば、セルにカーソルをもっていかないとコメントは表示されないからです。
Bさん側のシートに、Aさん側からのデータを表示する行を作成し、
そこに表示させる方が目視作業としてはよいのではないでしょうか?
 
それには、Aさん側シートのコメント扱いを止めないと、検索できません。
 
再考してみてください。

回答
投稿日時: 17/06/07 14:11:14
投稿者: Suzu

こんにちは。
動作確認までは行っていません。
 
Excelのコメントの扱いとして
  EXCELのオプション 詳細設定 コメントのあるセルに対しての表示 に依ります。
 
これは、あくまでも、Excelのユーザー毎なので、両者おなじでないとダメかもしれません。
 
とりあえず、テストした環境だと、コメントは表示されたままとなりました。
 
  WIN7 Home 64bit + Excel 2010 32bit
 コメントのあるセルに対して表示: コメントとインジケーター
 
同期したい範囲にて表のフォーマット(列および行の間隔が)同じとします。
 
1.被同期側で、同期させたい表の範囲を選択し、コピー
2. 同期側で、表の左上の部分を選択し、形式を選択して貼り付け 「リンクされた図」
    必要に応じて 塗潰し等を「無し」にしてください。
 
  同期側では必要に応じて、リンクした図 の下に隠れているセルに書き込みを行います。
    もちろん、直接そのセルは選択できません。
    図の外のセルをアクティブにし、方向キー等で図の下のセルを選択します

投稿日時: 17/06/08 20:20:31
投稿者: まさ77

お世話になっております。
図の貼り付けはできました。
この方法でも確認はできるのですがもう少し良い方法はありませんでしょうか?
WinArrowさんがおっしゃっていたAさんとBさんの表で
列は日にちの関係上同じ仕様となっています。
 
 
ネットで調べたところマクロを使用すれば可能だとわかりました。
マクロは勉強中で、消去とかしかできません。
理想は何日のある機種にコメントが設定されている(内容)とわかるのが理想です。
何か良い方法ありましたらお教え頂ければ助かります

回答
投稿日時: 17/06/09 10:17:16
投稿者: WinArrow
投稿者のウェブサイトに移動

再度の確認です。
 
>コメント
といっているのは、
セルに設定してある「コメント」のことですか?
それとも
説明用にセルに入力してある文字列のことですか?
 
前者の場合
 マクロ(VBA)ならば、参照可能です。
 しかし、マクロは起動タイミングが必要です。
 そのタイミングも一緒にお考えください。
 
後者の場合
 数式で参照可能です。
 
全般的に、 表の仕様がいまいちわかりにくいので、
これ以上、コメントできませんが・・・

回答
投稿日時: 17/06/09 16:56:16
投稿者: Suzu

回答者が主体的に使用決めるとか、コードを決めるのはお門違いです。
回答者は質問者の手伝いです。
 
まさ77 さん が手順をフローにし提示するとか。
主体的な動きをして下さい。
 
方法を提示すれば、「希望と違う、マクロならできるんですよね?」
ただの丸投げにしか見えません。

投稿日時: 17/06/09 18:33:55
投稿者: まさ77

お世話になっております。
コメントとはコメントの挿入より入れる物になります。
表の仕様についてですが以前、追記させて頂いた表がAさんBさんのベースとなります。
違いは機種数が違う事、Bさんの表は機種列の隣より数列、使用部品が入っていることです。
Aさんの表、使用数に入っているコメントの抽出、またはリンクさせる方法を
お教え頂ければ助かります。
一覧表で抽出する場合、日にち、機種、コメントの内容を抽出したく。

回答
投稿日時: 17/06/09 21:05:41
投稿者: WinArrow
投稿者のウェブサイトに移動

わたしのアドバイスの中で
 
マクロの場合、そのマクロをいつ動かすの?
の質問には、無回答・・・・意味わからないかな?
 
 
取り敢えず
Aさんのブックの中に設定されているセルのコメントの
場所(セル)を認識するマクロ
 
Dim myCMT As Range
 
Set myCMT = Cells.SpecialCells(xlCellTypeComments)
 
    Debug.Print myCMT.Cells.Count
    Debug.Print myCMT.Address
 
これで、どのセルにコメントが設定されているかわかります。
 
機種は、当該行の左端と推測できますが、日付との相対位置を求めないと
そのコメントは、使えるものか判断できないでしょう。
 

投稿日時: 17/06/09 23:22:20
投稿者: まさ77

お世話になっております
マクロをいつ動かすかといいますとBさんが
一日一回程度更新する予定です。
見落としていました。すみません
機種はAさんBさんの表共にA列にあります。A列のみですね。
日にちはAさん側はc1:h1が日にちです。
c2:e2が昼f2:h2が夜と表示
c3から生産数、使用数、保有数となっています。
Bさん側は側はi3:n3が日にちです。
i4:k4が昼i4:n4が夜と表示
i5から生産数、使用数、保有数となっています。
 
スマホで入力しているのでわかりにくくてすみません。
 
先ほど教えて頂いたマクロは
標準モジュールにいれるのですか?
入れて、動かしましたが何も表示されませんでした。

回答
投稿日時: 17/06/10 11:13:30
投稿者: WinArrow
投稿者のウェブサイトに移動

まさ77 さんの引用:

機種はAさんBさんの表共にA列にあります。A列のみですね。
日にちはAさん側はc1:h1が日にちです。
c2:e2が昼f2:h2が夜と表示
c3から生産数、使用数、保有数となっています。
Bさん側は側はi3:n3が日にちです。
i4:k4が昼i4:n4が夜と表示
i5から生産数、使用数、保有数となっています。

 
投稿日時: 17/06/07 12:19:08 で、掲示した表では、
そのようなレイアウトを推察することは無理です。
再掲
>表の仕様がいまいちわかりにくい
まさ77 さんの引用:

先ほど教えて頂いたマクロは
標準モジュールにいれるのですか?
入れて、動かしましたが何も表示されませんでした。

 
>一日一回程度更新する予定です。
これも広義にはタイミングといえますが、
マクロを起動するタイミングというのは、
"ブックを開いた時"とか
"特定のセルが更新されたとき"とか
操作者が、"あるボタンをクリックしたとき"とか
という、いわゆるイベントというレベルのことです。
>入れて、動かしましたが何も表示されませんでした。
そのような仕様で作成したコードではありませんから、
当たり前です。コメントが設定してあるセルを取得する方法のサンプルです。
コードを読んで理解するスキルが必要です。
 
単に掲示板のアドバイスだけでは、目的は達成されません。(道のりは非常に遠い)
 

投稿日時: 17/06/11 20:12:09
投稿者: まさ77

お世話になっております。
申し訳ありません。
マクロはあまり理解していないのですが
調べて下記2点はわかりました。
 
Dim myCMT As Range
  
'コメントが含まれているセルを取得
 Set myCMT = Cells.SpecialCells(xlCellTypeComments)
    'イミディエイトウインドウに表示
     Debug.Print myCMT.Cells.Count
 
   Debug.Print myCMT.Address
 
「mycmt」コードが調べても出てこなくわかりませんでした。
 
更新タイミングとやりたい事の件ですが
操作者がボタンを押した時にしようと考えています。
Bさんのファイルでコメント取得ボタンを押すと
Aさんのファイルのコメントを取得。
この時、機種名と日にちも取得し新規ファイルに書き出す
 
マクロ初心者で入門みたいな本を片手にコードを書くレベルですが
お教え頂ければ助かります。

回答
投稿日時: 17/06/11 23:07:17
投稿者: WinArrow
投稿者のウェブサイトに移動

>「mycmt」コードが調べても出てこなくわかりませんでした。
 
mycmtは、変数です。
私が勝手に変数名を決めました。
変数はオブジェクト変数です。
セルの情報(値、セルの書式、アドレスなど・・・・)が
参照できます。
 
例えば
Debug.print myCMT.Address
では、イミディトウィンドウにセルのアドレスが(複数)表示されます。
その一つ一つのアドレスから、機種、日にちの入っているセルを参照して、各々の値を取得います。
 
Fora Each myCell In myCMT
  Debug.Print Cells(myCell.Row,"A").Value
Next
というコードで、機種の値を取得することができます。
myCell.Rowは、コメントが入っているセルの行ですから、そのA列セルに「機種」が存在するはずですよね?
このような方法で、コメント入っているセル毎に日にちが入っているセルとの相対位置で
日にちを取得することができます。
サンプルなので、Debug.Print を書いていますが、他シートのセルに格納すれば一覧表が作成可能です。

投稿日時: 17/06/12 15:37:41
投稿者: まさ77

お世話になっております。
お教え頂いたコードを自分なりに試しましたが
下記についてわかりません。
お手数ですがお教え頂けないでしょうか。
 
Fora Each myCell In myCMT
  Debug.Print Cells(myCell.Row,"A").Value
Next
 
上記コードの「Fora」と言う部分でどうしても行き詰ってしまいます。
「a」はいらない?と思い削除し試みましたが「変数が定義されていません」とでます。
 
>サンプルなので、Debug.Print を書いていますが、他シートのセルに格納すれば一覧表が作成可能です。
上記を新規ブックに保存する場合は
Workbooks.add Cells(mycell.Row,"A").Value
となるのでしょうか。
私の解釈をまとめると
Sub テスト()
 
 
Dim myCMT As Range
  
 Set myCMT = Cells.SpecialCells(xlCellTypeComments)
  
     Debug.Print myCMT.Cells.Count
    Debug.Print myCMT.Address
    For Each myCell In myCMT
   Workbooks.add Cells(mycell.Row,"A").Value
 
Next
 
End Sub
 
となるのか
Debug.Printが新規ブックを指すようにしないとならないのか
かなと思っています。
 

回答
投稿日時: 17/06/12 16:02:11
投稿者: WinArrow
投稿者のウェブサイトに移動

>上記コードの「Fora」と言う部分でどうしても行き詰ってしまいます。
> 「a」はいらない?と思い削除し試みましたが「変数が定義されていません」とでます。
 
すみませんでした。
Foraは、入力ミスです。
>「a」はいらない?と思い削除
は正解です。
 
>「変数が定義されていません」
は、myCELL という変数が定義されていないものと思います。
Dim myCELL As Range
をモジュールの先頭に記述しましょう。
 
セル1ツづつ、新しいブックを保存していたら、日が暮れてしまいませんか?
全データをシートに書き出してから、ブックとして保存?・・・・あれ?新しいブックを保存して
どのように使おうとしているのかな?
 
使い方まで考えて(設計)からコードを作成しないと、大変だよ
とはいっても、まずは勉強だから何でもチャレンジしてもよいが、
1行毎に質問していたら、何時になったらこのスレが閉じられるのでしょう?
 
 
 

投稿日時: 17/06/12 17:13:09
投稿者: まさ77

お世話になっております。
 
機種ごとにコメントが一括で書き出されると思っていました。
新しいブックに書き出された物をコピペしようかと考えております。
(管理用シートにはコピペに影響が無い列に確認欄を設けようと考えています)
上記のような感じではないのでしょうか?
 
取り急ぎ追加とさせて頂き
18時ごろよりお教え頂いたコード入力をし
勉強させて頂きます。

投稿日時: 17/06/12 20:58:54
投稿者: まさ77

お世話になっております。
 
お教え頂いたコードに修正し
イミディトウィンドウにセルのアドレスが(複数)表示されました。
新規ブックにコピーするのは前回載せた「Workbooks.Add」では無理で自分なりに別の場所に
入れたりしましたがエラーがでました。
最終的に新規ブックにイミディトウィンドウに表示された
A列に機種B列にコメント内容C列に月日D列に昼か夜
を表示させたく。
 
以前も記述させてもらいましたがAさんの表はc1:h1が日にちです。
c2:e2が昼f2:h2が夜と表示
c3から生産数、使用数、保有数となっています。(下記表のような感じです)

 A        B          C         D           E         F          G          H         
		6月1日					
機種	繰越保有	昼			夜		
		生産数	使用数	保有数	生産数	使用数	保有数
1111	100	500	100	400			400
2222	1	300		301		300	1
3333		100		100		100	
22AABB	50		50		1000		1000
11AAA	3				100		99

 
上記表の中に例えば「C8」にコメントが挿入されていて「保有より試作渡し3台」
「F8」には「内1台試作渡し含む」とコメントされています。
 
A                B                C        D
11AAA	保有より試作渡し3台	6月1日	昼
11AAA	内1台試作渡し含む	6月1日	夜

新規ブックに上記のような表示(一覧表)で抽出可能でしょうか。

回答
投稿日時: 17/06/12 23:19:34
投稿者: WinArrow
投稿者のウェブサイトに移動

説明されている仕様が保証されているならば、できないことはないが、
コメントをその時の気分で入力したり、入力しなかったり、別のセルに入力したり
ということはないのでしょうか?
 
数年前に、ある団体の印刷システムの作成依頼を受けて、言われた部分だけのプロプログラムを作成したことがあります。その時、実際のデータファイルを貰ってテストしたら、データの入力に規則性が無く、最終的に印刷だけのプログラムでは、うまくいかないことはわかり・・・データ入力からのプログラム作成になってしまったことがありました。要は、ワープロ感覚でデータ入力するような運用では、とても難しい・・・・
考えていたことと違ったことが発覚するたびにプログラム変更する羽目になりかねない・・ということです。
 
一見、不確実な(不安定な)データをVBAで扱う場合は、
現物合わせで対応することが多く、貴方にその覚悟がありますか?
掲示板でサポートできるレベルではないと思いますので、
有料になるかもしれませんがソフトウェア会社等に依頼されてはいかがでしょう・・
 

投稿日時: 17/06/12 23:55:36
投稿者: まさ77

その時の気分でというのがいまいちわかりません。
例えば試作依頼がきたらAさんが、コメントで試作品の生産計画を入れます。
それを定期的に抽出したいのですが
不安定にあたるのでしょうか?
提示させて頂いた表の仕様は確実にこの様式です。
ただ6月1日からになっていますが翌月計画を見越して月末計画を立てるので7月も少し入ったりするぐらいです。
 
いかがでしょうか?
できそうならトライしたいのですが
 
 
 

回答
投稿日時: 17/06/13 09:45:52
投稿者: WinArrow
投稿者のウェブサイトに移動

>できそうならトライしたいのですが
 
私が決めることではないですから・・・・
 
以下は、私見です
セルのコメントは、作成者の備忘録なようなものと認識しています。
作成者以外の利用を目的のデータならば、目視できなければ情報が伝わアない。
コメントは、敢えてカーソルをもっていかなくては見えないのだから、
その意識を持てるか?、見落としされることはないのか?
・・・・セルに入力したデータならば、意識しなくても「見える」
 
AさんのブックをBさんが利用する前提で考えられた
システムならば、なぜ、コメントを使うんでしょうか?
見えるようにすべきと考えますが・・・・
 
おそらく、このような危惧を抱いたから、見えるようにしようと考えたものと
感じていますが、根本から考え直した方がよいと思います。
 
たまたま、Aさんが作成したブックを利用すればよいとBさん側が考えた程度では、
将来的にうまく運用できるとは思えません。
 
 

投稿日時: 17/06/13 11:55:49
投稿者: まさ77

お世話になっています。
 
計画をBさん側からAさんに変更依頼をするのにBさん側がAさんにわかりやすいように作成したものがBさん仕様の表になります。
変更依頼する際、試作品を見落とさないように今回、ご質問させて頂いてます。
根本的にはAさんの表が正ですが、試作品などは別部門の人が生産計画と区別するようにコメントとして入力します。
 
この仕様は変わることはないと思います。
出来そうならトライしたいので
お教え頂けないでしょうか?

回答
投稿日時: 17/06/13 13:11:19
投稿者: んなっと

Suzu さんのアドバイスは
[校閲]→すべてのコメントの表示 で、
すべてのコメントが表示されていることが前提だと思います。
この方法でいいのではないでしょうか。
※Excel2003までなら[ツール]→[オプション]→コメントとコメントマーク
 
まさ77さん、禁止事項
http://www.moug.net/faq/kiyaku.html#link4

引用:
コード制作依頼
「●●●を実行するようなマクロを作りたいのですが」「●●●をする方法を教えてください」といった、コード制作依頼ともとれるような質問はおやめください。

に目を通しておいてください。
 
  Dim Sh As Worksheet
  Dim C As Comment
  Dim v()
  Dim r As Range
  Dim i As Long, j As Long, Cnt As Long
  Set Sh = ActiveSheet
  Cnt = Sh.Comments.Count
  If Cnt = 0 Then Exit Sub
  ReDim v(1 To Cnt, 1 To 4)
  For i = 1 To Cnt
    Set C = Sh.Comments.Item(i)
    Set r = C.Parent
    v(i, 1) = Sh.Cells(r.Row, 1).Value
    v(i, 2) = C.Text
    For j = 1 To 2
      With Sh.Cells(j, r.Column)
        If Len(.Value) > 0 Then
          v(i, 2 + j) = .Value
        Else
          v(i, 2 + j) = .End(xlToLeft).Value
        End If
      End With
    Next j
  Next i
  Worksheets.Add.Range("A1").Resize(Cnt, 4).Value = v

投稿日時: 17/06/14 18:33:00
投稿者: まさ77

お世話になっております。
 
使用環境やマクロについて色々勉強させて頂きありがとうございます。
少しずつではありますが、ちゃんと理解しながら作成、教えて頂いた物を使用させて頂きたいと思います。
んなっとさんの言う通り、禁止事項にあたると思いますので
行き詰まったら、しっかりコードを提示し別、スレで
ご教授頂けるようにいたします。
 
みなさま、長々とありがとうございました。