advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 33541 for 関数 (0.006 sec.)
[[20040211122900]]
#score: 2646
@digest: 9a6774f9b5ef0d2c70641ced57d8f307
@id: 5230
@mdate: 2004-02-13T13:42:38Z
@size: 4056
@type: text/plain
#keywords: 20040128105317 (15368), み関 (10477), ムム (6731), volatile (6340), totl (5935), 往生 (4125), kamiya (3094), ー関 (3080), 本シ (2101), 弥太 (2090), 義関 (1883), 日誌 (1781), 再計 (1461), ド中 (1284), もひ (1157), 納得 (1115), 数シ (1091), ト化 (1038), 多数 (1030), 関数 (946), 原本 (930), 不具 (887), 数」 (876), ユー (862), ーザ (841), 太郎 (821), ザー (820), ー定 (709), 存在 (676), 時点 (598), 具合 (590), ひろ (588)
『かつみ関数で』(ともひろ)
はじめまして 毎度勉強になります。 かつみ関数を見つけて使っているんですが 1ブックの中に多数シートが存在した場合にちょっと不具合が... 私は会社で日誌をつけているんですが、原本シートをコピーして1週間単位でシートを作成 した時に多数シートで「かつみ関数」が存在するようになって新たに作成したシートの 「かすみ関数」の答えが他のシートの答えになってしまいました。 「かすみ関数」の範囲指定はどのシートでも同じ範囲です。 どなたか解決策を教えてください ---- もしかするとここに↓紹介されている弥太郎さん作成のユーザー関数ではないでしょうか。 [[20040117162655]] 『一行置きの合計などを求めたい』(かつみ) (KAMIYA) ---- そうなんです ↑のです。 「かつみ関数」を使った時に不具合が出るんです。 (ともひろ) ---- 「原因は」わかります。 再計算をする時に他のシートに入力したユーザー定義関数が アクティブなシートのセル範囲を計算してしまうのです。 Sheet2に入力した=katumi(A1:A6)はSheet2に入力したときはSheet2のA1:A6を 計算しますが、新たにSheet1に変更を加えた時点でSheet1のA1:A6を無条件に 再計算してしまいます。 簡易的にはコード中の Application.Volatile を消すかコメント化することで入力した時点での計算値を生かすことは出来ます。 が、根本的にはちょっと私では知識不足で、対処できません。 (私がユーザー定義関数が苦手になったのはこれが理由ですが) ほぼ同様の問題を当サイト回答者 INA さんが下記で解決していらっしゃいますが、 [[20040128105317]] 『オブジェクト変数を引数とするユーザー定義関数』(しおマム) どの辺が解決のテクニックなのか、私にはちょっと判断が出来ていないのです。 katumi関数の設計者 弥太郎 氏か INAさんのご登場を待ちましょう。 (KAMIYA) ---- とりあえずで やってみました。 'Application.Volatile を KAMIYAさん ありがとうございます。 解決の判断を待ちたいと思います。 (ともひろ) ---- え〜っ!これ、私の作った関数でっかぁ。 KAMIYAさん、フォローおおきに。 試してみたらホンマにともひろさんの仰有るとおりになりまんなぁ。 そら、ともひろさん往生してまっしゃろ。 ユーザー関数っちゅうても大したことおまへんがな。 まぁ、この世で起こった事ですさかい、この世でおさまりまっしゃろ。 最悪アカなんだらほかしてしもたらよろしおまんがな。元々この世に存在せんかった 関数でっせ。(笑) と、まぁ、これでは回答した事にはなりまへんわナ。 KAMIYAさんのアイディアApplication.Volatileの行を削除してしもたらどないでっか? あれが必要な参照セルはおまへんから、無くてもどうって事おまへんワ。 このユーザー関数という手合いはあんまりあちこちコピーして使えるもんやおまへんし また、数使う事も許されしまへんでぇ。(KAMIYAさんの嫌うのん納得) ともひろさん、ご満足のいく回答でなくてごめんなはれや。 ほな・・(弥太郎) ---- あれからちょっと調べてみたんですけど Application.Volatile って「再計算しなさいよ」って意味なんですね。 質問を出す前にもっと調べなきゃだめですね。 もっともっと勉強しなきゃ。 KAMIYAさん、弥太郎さん ご迷惑をお掛け致しました。 そして ご返答ありがとうございました。 (ともひろ) ---- totl = totl + Range(f).Cells(i, 1) たぶん原因は↑ここでしょう totl = totl + adrs.Cells(i, 1) にすれば大丈夫のようです adrsでセル範囲を取得しているのだから、そのまま使えばいいと思います たしかに、Application.Volatile もいらないようですが (りな) ---- りなさん、助け舟ありがとうございます。 Rangeプロパティだと totl = totl + ActiveSheet.Range(f).Cells(i, 1) になってしまうということですか? 関数の引数としてのadrsは関数が入力されている シートのRangeオブジェクトとして生きると 言うことですね。ムムム。 微妙なとこですが、INAさんが[[20040128105317]] で Offset使っている部分も同じ理由でしょうね、きっと。 この場では納得したような気になるのですが、 自分が使うようなときまで覚えているかどうかは ちょっと不安・・・・。 (KAMIYA) ---- 今晩は。 りなさん、お久しぶりで。 アドバイス有り難うございます。 なるほど、ほんな案配になってまんのん。 自分で作っといてロクに検証もせず書き込んで悦にいっとる報いがやって来たような もんですワ。 チェック&勉強は日曜日にでもやってみます。 (弥太郎) あの〜、KAMIYAさん、わたしが申すべくお礼を代わりに述べてくれて、おおきに。 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/200402/20040211122900.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97057 documents and 608299 words.

訪問者:カウンタValid HTML 4.01 Transitional