ここから本文です

月毎のデータシートのリンク張り直し作業を簡単に行なう方法はありますか?

neg********さん

2011/10/1023:27:50

月毎のデータシートのリンク張り直し作業を簡単に行なう方法はありますか?

他の事業部のデータシート30枚くらいのそれぞれ特定のエリアを
ひとつのエクセルシートにリンクコピーし集計しています。

ただ月が変わると毎回リンクを張りなおさなくてはなりません。
自分ができる時は良いのですが長期出張もあり得ますので
誰でもできるようにしておきたいと思います。

他の事業部のデータシートは
”編み機2号機1109.xls”とか”裁断4号機1109.xls”の様な名前で
10月になると09が10に変わるだけですので
何か方法があるのではないかと思っています。

ベストなイメージとしては、その09のところだけ変数にできると良いのですが
そんな気のきいた方法はありますか?
それができるならプルダウンリストで 01,02,03,04,・・・と指定してやれば良さそうです。

自分はVBAは多少は使えるので中身はVBAでも良いですが
他の人はせいぜいSUM関数くらいしか知らないので
見掛け上の操作はごく簡単である必要があります。

2番目のイメージとしてINDIRECT関数で
県名を選択してやると市町村のリストが切り替わるという例が知恵袋でもよくありますが
そんな感じで、どのかにリンク先を表にしておいて月度で切り替えできないでしょうか?

OFFICE2000使用です。

お手数ですがお願いします。

閲覧数:
655
回答数:
2
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

kei_jun_kuuさん

2011/10/1111:17:46

negibaseokonomiyakiさん

INDIRECT関数で処理すると、参照先のブックが開いていないと#REF!エラーになります。
間違いなく一気にやるなら「置換」が良いのですが…
>他の人はせいぜいSUM関数くらいしか知らないので~
となると、マクロでの処理が簡単じゃないかなぁ。。
下記マクロを実行すると、
1.そのシート内の「数式セル」のみをチェックしていって、
2.数式中の「.xls」を探して、「1109」などの文字を検出します。
3.インプットボックスに置換する年月の文字列を入力します。→1110とか。
4.そのシートのすべての数式内の「1109」を「1110」に置換します。
※ ボタンにマクロを登録しとくと良いかも。。

Sub Sample()
Dim myF As String, myH As String
Dim c As Range, myRng As Range, n As Long
Dim myMn As String
Set myRng = Cells.SpecialCells(xlCellTypeFormulas, 23)
For Each c In myRng
If InStr(c.Formula, ".xls") Then
n = InStr(c.Formula, ".xls")
myF = Mid(c.Formula, n - 4, 4)
Exit For
End If
Next c
myH = InputBox(myF & "の変換の年月は?" & vbCrLf & "1101の要領")
Select Case myH
Case ""
MsgBox "空欄です"
Case "FALSE"
MsgBox "キャンセルされました"
Case Else
myMn = MsgBox(myH & " で実行します", vbOKCancel)
End Select
If myMn = vbOK Then
myRng.Replace What:=myF, Replacement:=myH, LookAt:=xlPart
End If
End Sub

質問した人からのコメント

2011/10/17 18:24:50

ありがとうございました。.Formulaを使用してVBAを書いたことが無かったので今回の機会で理解が深まりました。

ベストアンサー以外の回答

1〜1件/1件中

koy********さん

2011/10/1023:42:30

シート全選択で置換
1109→1110でおそらく大丈夫かと思います。
慎重に行うなら
1109.xls→1110.xlsです。

INDIRECT関数をかますと、毎月の更新作業は不要ですね。
自ブックのファイル名から月情報を取り出して参照式を作れます。

VBAを用いる必要はありません。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる