[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『EXCEL2021で前シートの参照がエラーになる』(まる)
はじめまして
定義=MID(INDEX(GET.WORKBOOK(1)&T(NOW()),GET.DOCUMENT(87)-1),FIND("]",INDEX(GET.WORKBOOK(1)&T(NOW()),GET.DOCUMENT(87)-1))+1,31)
で左隣のシートを参照しています。
先日会社のPC入れ替えでEXCEL2021になった時からエラーで表示されなくなってしまいました。
無知ななかいろいろ調べて設定した定義なのでなおし方がわかりません。
よろしくお願いします。
< 使用 アプリ:EXCEL2021、使用 OS:Windows10 >
その定義で使われているのはExcel4.0マクロ言語というもので今のVBA以前にマクロとして使われていたもの。 マイクロソフトはEXCELの新しいバージョンでは規定で無効にするようにした。 一応下記の方法で有効にはできるがマイクロソフトではVBAに置き換えるように勧めている。 https://support.microsoft.com/ja-jp/office/excel-4-0-%E3%83%9E%E3%82%AF%E3%83%AD%E3%82%92%E6%93%8D%E4%BD%9C%E3%81%99%E3%82%8B-ba8924d4-e157-4bb2-8d76-2c07ff02e0b8#:~:text=%5B%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%5D%20%E3%82%BF%E3%83%96%E3%82%92%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%81%97,%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%82%92%E3%82%AA%E3%83%B3%E3%81%AB%E3%81%97%E3%81%BE%E3%81%99%E3%80%82
(ねむねむ) 2022/07/04(月) 11:35
標準モジュールに Function Sheet_Name(WK_RANGE As Range) Application.Volatile Sheet_Name = Worksheets(WK_RANGE.Parent.Index - 1).Name End Function と入力し、セルに =Sheet_Name(A1) と入力でどうだろうか? ()内のセル指定はそのシート内のセルであればどこでも構わない。 (ねむねむ) 2022/07/04(月) 15:58
Function Sheet_Name(WK_RANGE As Range) Application.Volatile Sheet_Name = Worksheets(WK_RANGE.Parent.Index - 1).Range(WK_RANGE.Address) End Function とすると =Sheet_Name(A1) と入力したときに左隣のシートのA1セルの値を返す。 (ねむねむ) 2022/07/04(月) 16:37
前のシートの名前を得るのに、引数は不要という考え方もあるかもしれません。 その場合は、こんな書き方ができます。
Function prev_sheet_name() As String Dim r As Range Application.Volatile Set r = Application.Caller '関数が書かれたセルを返します。 prev_sheet_name = r.Parent.Previous.Name End Function
Application.Volatile は、必要ですか? シート名変更の頻度によるかも知れませんね。 (γ) 2022/07/04(月) 23:46
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.