1 :
名無しさん@そうだ選挙にいこう :
2006/04/27(木) 05:27:06 Excelに関する質問は、ここで!
/)_/) ( ・分かる人はできるだけ回答して下さいませ。
< ゚ _・゚> .。oO( ・回答がなくてもキレないで。急いでいても催促は3日以上開けて。
ノ) / | ( ・自己解決したらその解決手段を他の人の参考の為に書いてね。
\(_,,,_,,,)
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-20 あたりの注意書きやQ&Aも読もう。
★4 質問テンプレは必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。
これを書かなかった場合は、以後まともな回答は付かないと思ってください。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。
「VBAって何?」って場合はとりあえず「否」に。よくわからないけど使ってみたいってなら
「可」にして、
>>10-15 あたりの解説を参考に使ってみよう。
・前スレ
http://pc8.2ch.net/test/read.cgi/bsoft/1143177051/
2ゲット
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━ ・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F) ・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意 ・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。 ・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。 ・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。 ・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。 ここは技術的な質問のみで。 ・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ないことも出来ます。 Excelの操作に関係ない部分は、スレ違いなのでここで聞かずにVB言語やAPI、COMについて自分で勉強し、 どうしてもわからない部分はVBスレやAPIスレなどの該当スレで質問しましょう。 但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。 ここみたいに丸投げはダメですよ。 ・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。 例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。 その上で、どううまくいかないのかを具体的に書きましょう。 エラーが出るなら、何処でどういうエラーが出るのか、 想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。 ・9 マルチはダメ。 ・a テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、 チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、 ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。
= FAQ: 基本 =
Q1:こんな関数ありませんか?
A1:「関数の挿入」にある検索機能や、ヘルプの検索を利用しましょう。
また、一つの関数で目的を達成しようと思わずに、いくつかの関数を組み合わせて使うという発想を持ちましょう。
Q2:数式がエラーを返すんですけど
A2:関数をネストせず、数式を分解してみてください。
どの関数がエラーになっているのか解れば、その関数の参照先や、ヘルプなどを見て大抵は簡単に解決できます。
Q3:計算結果やセルの値によって自動で書式を変更したいんですが
A3:条件付き書式を利用してください。数値比較で文字色のみの指定なら表示形式でもできます。
Q4:計算結果やセルの値によって表示形式を変えたいのですが
A4:表示形式のユーザー設定で複数条件の表示形式を指定できます。
基本形式は「正の数;負の数;0の場合;文字の場合」です。(;は半角で)
又は「[>=70]70以上の場合;[>=50]50以上の場合;50未満の場合;文字の場合」というような指定も出来ます。
書式記号などに関することはヘルプを参照しましょう。
Q5:計算結果が自動で更新されなくなったんですが、どうすれば直せますか
A5:Excel(2002?)の不都合で、計算方法が手動になってしまうことがあるようです。
ツール > オプション > 計算方法
で、計算方法を自動にすることで元にもどります。
参考URL:
ttp://support.microsoft.com/default.aspx?scid=kb;ja;817716 Q6:VBAでこんなこと出来ませんか?どうやるんですか?、
A6:まずはマクロの記録を取ってみて、記録されたコードのメソッドやプロパティをヘルプで調べたり、
ステップ実行やブレークポイントなどを使って動作を確認したりしてみましょう。
Q7:エクセルの勉強をするのにオススメの書籍・サイトは何ですか?
A7:自分で実際に読んで(閲覧して)、自分のレベルに合っていて解りやすいと思うものを利用しましょう。
= FAQ: 列の表示について = Q:列名がA,B,C,D,Eではなく、1,2,3,4,5になってしまいました。 アルファベットに戻すにはどうしたらいいですか? A:ツールメニュー:「オプション」 -「全般」タグで 『R1C1 参照形式を使用する(C)』のチェックを外せば直ります。 Q:列を256個(IV列)よりたくさん広げることはできませんか? A:エクセルのシートは65536行×256列が仕様上の上限です。 シートを分けるとか、行と列を入れ替えるとか、データの方をまとめるとか、 列数を増やさない方向で工夫するしかありません。 Q:ひとつのブックにシートは何枚作成出来ますか? A:物理メモリ容量やシートの内容に依存します。 = FAQ: 印刷プレビュー = Q:印刷プレビューではセル内に収まっていた文字が 実際に印刷してみるとはみ出してしまうのですが、何とかなりませんか? A:「印刷プレビューと印刷結果が一致しない」のは 昔からのExcelの弱点で、どうにもなりません。 セルの幅や高さに余裕を持たせるか、 書式設定で「縮小して全体を表示する」にチェックを入れましょう。 = FAQ: マクロの"削除" = Q:マクロを削除したのに、ファイルを開くたびにセキュリティの確認が出ます。 A:モジュールの解放が必要。 【モジュールの解放方法】Alt+F11→Ctrl+R→Module1を右クリック→解放 それでもセキュリティの確認が出る場合は、同じくMicrosoft Excel Objects以下の Sheet*及びThisWorkbookに何か書かれてないか確認してください。
= FAQ: 条件によって表示を変更するには? = Q:セルの内容を判断して、表示を変えたい A: IF関数を使います。 =if(条件,条件が成立した場合,成立しなかった場合) 例1:基本 セルA1が1の場合○、それ以外の場合×を表示 =IF(A1=1,"○","×") 例2:if文の中にif文 A1が、1の場合○、2の場合△、それ以外×。 =IF(A1=1,"○",IF(A1=2,"△","×")) 例3:ANDやOR活用 A1が、4〜6の場合は、普通と表示 =IF(AND(A1>3,A1<7),"普通","少ないか多い") 例4:計算も出来る A1が10までなら、A1を10倍して表示、それ以外なら2を引く。 =IF(A1<11,A1*10,A1-2) 例5:対象が空欄なら表示も空欄にする A1が空欄なら結果は何も表示しない、それ以外ならA1から2を引く。 =IF(A1="","",A1-2) =IF(ISBLANK(A1),"",A1-2) 詳しくはヘルプを参照しましょう。 = FAQ: セル内での改行 = Q:セル内で改行したいんですがどうすればいいでしょうか A:改行したい位置でAltを押しながらEnterを押せばセル内改行できます。 但し数式で改行コードを入れた場合は、手動でセルの書式設定から 「折り返して全体を表示する」を有効にしないと改行されません
= FAQ: グラフについて = Q1:データの空白部分があって、そこで折れ線が切れてしまいます。 繋げたいのですが如何したらいいでしょうか? A1:グラフを選択>ツール>オプション>グラフ>空白セルのプロット「補間してプロットする」にチェック Q2:棒グラフに重ねて、折れ線グラフを表示するにはどうしたらいいのでしょうか? A2:最初、すべてのデータを棒グラフで作成。 次に、折れ線で表わしたいデータ系列のどこかを、グラフ上で右クリック サブメニュー>グラフの種類>折れ線>OK Q3:ある系列だけ、縦軸を別にしたいです。 A3:その系列のどこかを、グラフ上で右クリック データ系列の書式設定>軸>使用する軸「第2軸」にチェック>OK = FAQ: 入力した値が変わる? = Q:セルに入力した値が勝手に変わってしまうのですが 入力したままの形で表示させるにはどうしたらいいですか? A:数字でよくあるケース(先頭のゼロが消えてしまう、日付として解釈されてしまう) 入力する時、先頭にアポストロフィ(')をつけるか、 該当するセルで右クリック−「セルの書式設定」−「表示形式」で「文字列」を選択。 文字列ではなく数値として扱いたいときは 「セルの書式設定」−「表示形式」で「ユーザー定義」を選択し、工夫する。 A:文字でよくあるケース(i⇒I、teh⇒the、cna→can など) ツール→オートコレクト→入力中にオートコレクト の該当する箇所を削除。
= FAQ: 行列の入れ替え = Q:エクセルで作った表が横方向に多くなってきたので 行と列を入れ替えたいのですが。 A:コピーして、適当なセルで右クリック。 形式を選択して貼り付け→行列を入れ替える。 = FAQ: 参照するシートやセルをセルの値で指定する = Q:A1に「5」とか「6」とか指定する値を変えたら B1の関数で「C5」とか「C6」とか参照先が変わるようにできませんか? A:INDIRECT関数を使ってみましょう。 詳しくはヘルプで「INDIRECT」を検索 = FAQ: 参照先を固定する = Q:数式が参照するセルを削除すると参照先が「=#REF!」になってしまうますが セルを削除しても同じセルを参照するようにするにはどうすればようですか A:INDIRECT関数を使ってみましょう。 =A1 => =INDIRECT("A1") = FAQ: ブラウザの変更 = Q:Excelでアドレスをクリックした時に開くブラウザをIEからSleipnirなどに変更したい。 A:スレ違いです。 開きたいブラウザの設定画面でそのブラウザを通常使うブラウザに指定してください。 ※ブラウザからの設定だけではきちんと設定出来ない場合もあります。 詳しい情報をお持ちの方はこのスレにてご一報ください。
= FAQ: ワイルドカード文字の検索・置換 = Q:* 、 ? で検索するとワイルドカードとして認識されてしまいますが、 * 、 ? の文字自体を検索するにはどうすればよいですか? A: ~* 、 ~? のように、頭に ~ を付けることでエスケープ出来ます。 A:全角で*と入力し「半角と全角を区別する。」のチェックを外して検索する (全角なのでワイルドカードとしては使われないが 全半角を区別しないので文字として"*"にはヒットする。) = 整数と時間の相互変換 = Q:1:30を1.5に変換したい、30を0:30に変換したい A:シリアル値の「1」は1日=24時間=1440分=86400秒です。 以下のような計算やTIME関数などで変換できます。 値(A1) 結果 式 1:30 1.5 =A1*24 0:30 30 =A1*1440 2:30 250 =A1*100*24 1.75 1:45 =A1/24 30 0:30 =A1/1440 25 0:15 =A1/100/24 30 0:30 =TIME(0,A1,0) (変換計算しただけでは表示形式は変わらないので、セルの表示形式は任意で変更しましょう)
= FAQ:時刻の入力 = Q:時刻をテンキーで入力するとき:を入力するのが面倒なのですが、 なにか良い方法はありませんか? A:「 ..」や「.」を「:」に置き換える方法をお試しください 1) オートコレクトで..を:に置き換える →自動で置換されるので手間は少ないが..を使う他の入力にも影響する 2) 「時..分」で入力しておいて、後から「編集 > 置換」で範囲指定で一括置換する →置換に一手間掛かるが、他への影響は無い (「時.分」だと分の1桁目が0の場合狂ってしまう) 3) VBAのWorksheet_Changeイベントで置換する →置換する範囲を指定すれば他への影響もなく置換も自動、入力も.ひとつでOK 参考コード(入力は「時.分」) Private Sub Worksheet_Change(ByVal Target As Range) Dim buf As Variant Application.EnableEvents = False buf = Split(Target.Value, ".") Target.Value = buf(0) & ":" & Left(buf(1) & "0", 2) Application.EnableEvents = True End Sub = FAQ:シート名やブック名の書きだし = Q:シート名(ブック名)をセルに書き出したいのですが、どうすればよいですか? A:シート名 =MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,31) ブック名 =MID(CELL("filename",A1),FIND("[",CELL("filename",A1))+1,FIND("]",CELL("filename",A1))-FIND("[",CELL("filename",A1))-1) = トラブル = Q:方向キーやPageUp、PageDownでアクティブセルが移動するのではなくスクロールしてしまいます。 A:Scroll Lockというキーを押してみてください。
★VBAでの回答をもらったり、Webからサンプルコードを拾ったけど、 使い方がわからないって場合はここを参考に。 Step1 VisualBasicEditorの起動 メニューより、[ツール → マクロ → VisualBasicEditor]と辿ってください。 Step2-a コードを貼る マクロはその内容によって、置く場所が決まっています。 大抵は回答者が指定してくれたり、サンプルの中にコメントとして書いてあったりするのでそれに従いましょう。 指定がない物は基本的に「Private Sub Worksheet_」で始まる物はシートオブジェクトに、 「Private Sub Workbook_」で始まる物はブックオブジェクトに、それ以外は基本的に標準モジュールに置いてください。 (ツリーの該当部分をダブルクリックして、表示されたコードウィンドウにコードを張り付けます) ├VBAProject (hoge.xls) ←括弧内がブック名、以下がひとつのプロジェクトになります |├Microsoft Excel Object ||├Sheet1 (Sheet1) ←シートオブジェクト(左側がオブジェクト名で、右側の括弧内がシート名です) ||├Sheet2 (Sheet2) ||└ThisWorkbook ←ブックオブジェクト |└標準モジュール | └Module1 ←標準モジュール(※) └VBAProject (Personal.xls) ←個人用マクロブック ├Microsoft Excel Object |├Sheet1 (Sheet1) |└ThisWorkbook ←個人用マクロブックのブックオブジェクト └標準モジュール └Module1 ←個人用マクロブックの標準モジュール ※ 標準モジュールを追加するには、追加したいプロジェクトツリー上で右クリックし、 メニューから[挿入 → 標準モジュール]を選択してください。
Step2-b ボタンに登録する。 通常、イベントで動かすマクロ以外は、マクロの一覧から選択して実行しますが、 頻繁に使う場合や、他の人が操作する場合はシート上のボタンを押して実行できるようにすると便利です。 まず、メニューから[表示 → ツールバー → フォーム]と辿ってフォームツールバーを出し、 ボタンアイコンを押して、適当な場所にボタンを作ります。 ボタンを作ると自動的に[マクロの登録]というダイアログが立ち上がるので、 (立ち上がらない場合はボタンを右クリックして[マクロの登録]を選択) [新規作成]を押して表示されたコードウィンドウのカーソル位置にコードを張り付けます。 既存のマクロを登録する場合は、[マクロの登録]で一覧から選択して、[OK]を押してください。 Step3 マクロの実行 ボタンに登録したものは、ボタンを押せば実行されます。 イベントで動かすものは、所定操作をした時に自動で実行されます。 それ以外はメニューから[ツール → マクロ → マクロ]と辿って表示されたマクロの一覧から選択して実行します。 Step4 トラブルが起きたら トラブルを自己解決出来ない場合は、 ・エラーが出る条件 (どうやってもエラーが出る、〜をしたときにエラーが出る、等) ・エラーメッセージ (ダイアログ上でCtrl+Cを押せばメッセージをコピー出来ます) ・エラーが出る位置 (エラーダイアログ上で[デバッグ]を選択すると、エラー位置がハイライトされます) などを報告しましょう。 また、期待通りの動作をしない場合も、条件や想定上の結果と実際の結果の内容など詳しく書きましょう。
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法) ▼環境・書式 ・ 列数を256列以上、行数を65536行以上に増やす ・ 条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA) ・ 行の高さを0.25きざみ以下の単位で指定する ・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト) ・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける) ・ 祝日を判断する (作業セルに祝日を列挙、VBA) ・ 同一列内でセル(行)ごとに列幅を変える、同一行内でセル(列)ごとに列高を変える (セルの結合) ・ ヘッダー・フッターのページ番号の開始番号任意指定、ページ番号演算、同シート内で違ったものを指定など ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する ・ 罫線幅の自由指定 ・ 表示形式で「10/ 1」といった書式を指定し、日付が一桁の場合のみ日付の前にスペースを入れる (TEXT関数、VBA) ・ 書式設定の「折り返して全体を表示する」と「縮小して全体を表示する」を同時に使う (折り返しを有効にして、手動で文字サイズを調整) ▼操作 ・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成) ・ 複数シートを選択して入力規則やシートの保護を設定する (VBA) ・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA) ・ 選択範囲から一部を除く ・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える) ・ 1セルを分割 (分割したいセル以外を結合)
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法) ▼数式・関数 ・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数) ・ 関数式でセルの選択状態を取得する (VBA) ・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA) ・ 入力したセルに結果を返す (VBA) ・ 範囲を引数にしての文字列連結 (ユーザー定義関数) ・ 値の書き換え、値の保持 (VBA) ・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む) ・ 空白のセルの部分を上詰め、左詰めなどで表示する (作業セルを使って別セルに詰めて表示なら可能、それ以外はVBA) ・ VLOOKUP,HLOOKUP,MATCH等の関数で、検索語を全半角両方にマッチさせる (ユーザー定義関数) ▼VBA ・ ExecuteExcel4Macroの参照で空セルと0値を区別する ・ セルの値や変数値で直接変数名を指定する (配列、コレクション) ・ VBのコントロール配列と同じような操作をしたい (イベント以外ならコントロール名を「同名+連番」にしてControls(名前 & インデックス)で処理、イベントはクラスでWithEvents) ▼ユーザーフォーム ・ フォーム上から変更したプロパティ値の保持 (シートや外部ファイルに書き出して、次回読み込む) ▼グラフ ・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる (オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入) ┌┐ 〜〜 ||
ルールに関するQ&A Q1:自治厨ウザイ A1:ここより上に書かれていることを指摘されるのは自治厨行為とは違います。 それは、指摘される側がルールを守ってないことに起因されるものであり、 ルールを守らない側が自己厨なだけで、指摘する側は当然のことをしているだけです。 それ以外の指摘をしてくる奴は自治厨なので、雑談スレにでも誘導してください。 Q2:なんで後から質問テンプレ書いても回答してくれないの? A2:世の中なんでもやり直しが利くと思ったら甘いということです。 「ルール無視しても、指摘されてからやり直せばいいや」なんて考えの奴が蔓延したら ルールなど半分は意味を持たなくなり、スレは荒廃する一方です。 ここではルール守ってる人にはマクロの丸投げすら許容するほど大甘ですが 逆にルール守らない人には厳しくなってます。
18 :
名無しさん@そうだ選挙にいこう :2006/04/27(木) 11:14:15
>>15-16 本当に出来ないの?ちゃんと内容を精査したの?
ぼくちゃん!知らないだけじゃないの
>>17 そんなQ&A書いて恥ずかしくないか
ぼくちゃん!ルールと言う壁に囲まれていないと不安なのかい?
19 :
名無しさん@そうだ選挙にいこう :2006/04/27(木) 11:24:38
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 エクセル VBA 文字以降 削除 セルの中に"番号*氏名"が記入されていて、"*"を基準に番号と名前を 別々の変数として得るにはどのようにしたらよいでしょうか。
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel20003 【3 VBAが使えるか .】 いいえ(昔、VB2.0でほんの少し遊んだ事があるという程度なら…) 【4 VBAでの回答の可否】 出来れば否 例えば、列Aには、鈴木、佐藤、山田のいづれかの名前がランダムに並んでおり、 列Bには、左の列Aの人物に該当する金額が入力されています。 これらは定期的に鈴木か佐藤か山田で行が追加されて行きます。 行|列A|列B ------------- 1|山田|10,000 2|佐藤|10,000 3|鈴木|30,000 4|佐藤|20,000 5|鈴木|30,000 6|山田|20,000 7|鈴木|20,000 8|山田|10,000 ------------- 各個人ごとの合計金額を定期的に出したい為、 現在は、その都度、名前順で並べ替えをしてSUMでそれぞれの合計を出しています。 これを並べ替えをせずに、何らかの関数で、列Aの名前の値を識別させて、 その隣の列Bの合計をそれぞれ自動で出すというような作業は可能でしょうか? 例えば、列Aに"山田"と入っているセルの隣の列Bセルの数値だけを抜き出して、 山田の金額の合計値(山田=30,000)だけを自動で出させるような事がしたいのです。 自分で関数ヘルプ等探した限り、cuntifで選択範囲内の山田の個数だけを抜き出すという ような事なら出来たのですが、自分の求めるものには程遠く至れませんでした。 何とぞご教授願い致します。
22 :
名無しさん@そうだ選挙にいこう :2006/04/27(木) 11:53:29
>>19 「*」を元にsplitで配列にしてからひとつずつ取り出せばいいんじゃないかな。
a = split(Range("A1").value,"*")
番号 = a(0)
名前 = a(1)
>>20 集計機能かピボットテーブル使っちゃうのが楽じゃないかな。
25 :
名無しさん@そうだ選挙にいこう :2006/04/27(木) 12:28:28
前スレ995をどなたかお願いします
これにレス欲しいのか? 995 名前:名無しさん@そうだ選挙にいこう 投稿日:2006/04/26(水) 15:41:20 うるせーよくたばれ
27 :
19 :2006/04/27(木) 12:55:16
>>22 さん
結構詳しく書いてあるようなので勉強がてら
解読してみたいと思います。
ありがとうございました。
>>23 さん
>a = split(Range("A1").value,"*")
>番号 = a(0)
>名前 = a(1)
上記で実行できることを確認しました。
ありがとうございました。助かりました。
28 :
20 :2006/04/27(木) 13:19:28
>>21 さん
ありがとうございます
SUMIFの関数ヘルプ読みながらやったところバッチリ出来ました
私が求めていた機能はまさにこれです!!
29 :
前スレ982 :2006/04/27(木) 13:40:18
>>前スレ984 そうですね。すみません。自分なりに四苦八苦して解決しました。 お騒がせしました。
30 :
名無しさん@そうだ選挙にいこう :2006/04/27(木) 13:51:41
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 多少
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 excel vba ネットワークアドレス
http://forums.belution.com/ja/vb/000/014/88.shtml 上記のサイトでも質問させていただきましたが、IPアドレスと
サブネットマスクからネットワークアドレスを求めるマクロを
作成したいです。どなたかご教授願えないでしょうか。
エクセルでおこづかい帳つけたいです どれがいいですか?
【OS:WinXP EXCEL:2000 VBA:使えません&回答不可 】です。 ┏━┯━━┯━━┯━━┳━━┯━━┯━━┓ ┏━┯━━┯━━┯━━┯━━┯━━┯━━┓ ┃表│ホーム│勝敗│得点┃得点│勝敗│アウェイ┃ .┃表│チーム│勝敗│勝点│得失│得点│失点┃ ┃@┝━━┿━━┿━━╋━━┿━━┿━━┫ ┃A┝━━┿━━┿━━┿━━┿━━┿━━┫ ┃ │札幌│ ● │ 1 ┃ 2 │ ○.│ 柏 ┃ ┃ │札幌│ ● │ 0 │−1.│ 1 │ 2 ┃ ┃ ├──┼──┼──╂──┼──┼──┨ ┃ ├──┼──┼──┼──┼──┼──┨ ┃ │山形│ ● │ 0 ┃ 3 │ ○.│仙台┃ ┃第│仙台│ ○ │ 3 │ 3 .│ 3 │ 0 ┃ ┃第├──┼──┼──╂──┼──┼──┨ ┃ ├──┼──┼──┼──┼──┼──┨ ┃ │水戸│ ○ │ 2 ┃ 1 │ ●.│徳島┃→ ┃11│山形│ ● │ 0 │−3.│ 0 │ 3 ┃ ┃11├──┼──┼──╂──┼──┼──┨→ ┃ ├──┼──┼──┼──┼──┼──┨ ┃ │草津│ △ │ 0 ┃ 0 │ △.│横浜┃→ 〜 〜 〜 〜 〜 〜 〜 〜 ┃節├──┼──┼──╂──┼──┼──┨ ┃ │愛媛│ ● │ 1 ┃ 2 │ ○.│湘南┃ 〜 〜 〜 〜 〜 〜 〜 〜 ┃ ├──┼──┼──╂──┼──┼──┨ ┃ ├──┼──┼──┼──┼──┼──┨ ┃ │神戸│ ○ │ 3 ┃ 1 │ ●.│東京┃ ┃ │愛媛│ ● │ 0 │−3.│ 2 │ 1 ┃ ┃ ├──┴──┼──╂──┼──┼──┨ ┃ ├──┼──┼──┼──┼──┼──┨ ┃ │ 対戦なし │ 0 ┃ 0 │ ▲.│鳥栖┃ ┃ │鳥栖│ ▲ │ 0 │ 0 .│ 0 │ 0 ┃ ┗━┷━━━━━┷━━┻━━┷━━┷━━┛ ┗━┷━━┷━━┷━━┷━━┷━━┷━━┛
33 :
名無しさん@そうだ選挙にいこう :2006/04/27(木) 15:10:49
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 - 【4 VBAでの回答の可否】 - 【5 検索キーワード 】 エクセル VBA セキュリティ Excel2003で[ツール]→[マクロ]→[セキュリティ] [信頼できる発行元]タブの [Visual Basicプロジェクトへのアクセスを信頼する]の チェックボックスがグレーになっていて、チェックできません。 他のPCのExcel2003ではチェックできるのですが 何か設定とかあるのでしょうか?
先日はご回答ありがとうございました。お蔭様で、表Aからチーム順位表を作成することができました。 さて今回は、表@(対戦表)から表A(当節成績表)を作成したいと考えております。 表@の入力項目はチーム名・得点で、勝敗記号は得点から自動設定します。 表@のチーム名から表Aのチーム名(北から南の順)を検索し該当チーム欄の得点、失点、勝敗を表@ より転記します。(表Aの勝点、得失欄は得点、失点データを基に自動設定します) そこで質問です。チーム名の検索とデータの転記ですが、LOOKUP関数ではチーム名が昇順(漢字コード 順?)になっていない為にうまく検索できません。また、表@のアウェイチームの成績がホームチーム成績 の並びと逆になっているのも問題かと思います。この表@から表Aを作るよい方法はないでしょうか。 アドバイスのほど、よろしくお願いいたします。
35 :
名無しさん@そうだ選挙にいこう :2006/04/27(木) 15:41:27
>>26 すみません、996でした。
どなたかよろしくお願いします。
36 :
名無しさん@そうだ選挙にいこう :2006/04/27(木) 16:04:00
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 excel関数 文字列操作 逆 左右 「abcd」を「dcba」という順序に変換したいです よろしくお願いします
37 :
名無しさん@そうだ選挙にいこう :2006/04/27(木) 16:26:14
>>35 もうあきらめなよ。
ここでそんな風に頑張ってもレスはつかないよ。
って書くと教えたがり厨が教えるだろうけどね。
38 :
名無しさん@そうだ選挙にいこう :2006/04/27(木) 16:52:04
お初です。 エクセルで、数千もの莫大な行になるデータを扱う実験を行っています。 そこで、質問なのですが、オートフィルタ機能などを使って、【測定時間】という 列の、整数秒のみ、0.1、0.5、1、1.5、2・・・とあるものの整数のみを抽出するには どのようにしたらいいのでしょうか? これがわからず、作業が前に進みません・・・ 宜しくお願いします。
>38何回も登場するこのコピペは 同一人物なのか それともただの愉快犯か 何日間も膨大なデータ処理が止まっているようだけど 質問が変わらないという事は、全く急いで無いみたいだね
エクセルでおこづかい帳つけたいです どれがいいですか?
41 :
名無しさん@そうだ選挙にいこう :2006/04/27(木) 17:26:05
エクセルは演算ソフトだけど、それ以外のことは超未熟だと割り切った方が良い。 ページ分割した場合の各ページを認識できないから、F5も使えないし 印刷機能が非常に弱い。
42 :
名無しさん@そうだ選挙にいこう :2006/04/27(木) 17:36:39
【1 OSの種類 .】 Windows XP SP2 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 グラフタイトル セルの内容 セルB1に 私は セルC1に エクセルが セルD1に 苦手です と入れているとします。 グラフタイトルにセルの内容を入れることをしています。 B1とC1とD1の内容を続けて入れる場合には =Sheet1!$B$1:$D$1 とすれば出来ます。この場合、グラフタイトルは「私はエクセルが苦手です」となります。 これを、セルC1を含めない「私は苦手です」と表示させるにはどうすればよいのでしょうか? 隣接していない複数のセルの内容をくっつけてグラフタイトルにしたいのです。 お願いします。
43 :
名無しさん@そうだ選挙にいこう :2006/04/27(木) 18:14:21
セルB1に 私は セルC1に エクセルが セルD1に 得意です。 って入れればできるよ
44 :
名無しさん@そうだ選挙にいこう :2006/04/27(木) 18:40:16
>>42 _=(Sheet1!$B$1,Sheet1!$D$1)
45 :
42 :2006/04/27(木) 18:49:13
>>44 ありがとうございます。
しかし、「参照が正しくありません。項目、値、サイズに対する参照は、1行または1列でなければなりません。」
というエラーダイアログが表示されてしまいます。
>>42 タイトル用の作業セル作ればいいんじゃね?
そこに=B1&D1とか
>>36 StrReverse("abcde") ってこと?
>>34 左にチーム名があるかどうかをcountif関数とかで判定して、
if関数組み合わせればいけるんじゃね?
=if(countif(左範囲,チーム名)>0,左にあるときの処理,右にあるときの処理)
49 :
42 :2006/04/27(木) 19:20:47
>>46 その手がありました!
ありがとうございます。
50 :
名無しさん@そうだ選挙にいこう :2006/04/27(木) 20:01:05
【1 OSの種類 .】 Windowsxp 2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 医療 医療系、リハビリで今回の改正の集計されている方いますか? 患者情報、訓練時間、セラピスト別の集計です。
>>35 こんなん?ちょっと自信無し
Dim d, r As Range, rr As String
Set d = CreateObject("Scripting.Dictionary")
For Each r In Selection '範囲固定なら In Range("A1:B10")とか
rr = CStr(r.Value)
If d.Exists(rr) Then
d(rr) = d(rr) + 1
ElseIf rr <> "" Then
d.Add rr, 1
End If
Next
Dim a, b, i, s
a = d.Keys: b = d.Items: i = 0
'a(i)に値、b(i)にその数が入ってるので、それをチェックする
While (i <= UBound(a))
If (b(i)) >= 5 Then s = s + a(i) & ":" & b(i) & vbCrLf
i = i + 1
Wend
MsgBox s
>>48 ありがとうございます。
早速試しましたが、COUNTIFで行けそうです。
問題は「左にあるときの処理,右にあるときの処理」なのですが、
COUNTIFで見つけた時のセル位置(行位置)を取得する関数などがあるのでしょうか。
重ねての教えて君ですみません。
背景に色を”1”とカウントする方法はありませんでしょうか・・・ 悩みまくって禿げそうです。
>>52 前提がおかしい
LOOKUPが使えないって言うけど表@Aの他にチーム名昇順の表を用意すればすむ話
でもあなたは自分に慣れたフォーマットだけで苦労して集計したいんだろうからいいや
教えたがり君が面倒くさい解決方法を考えてくれるでしょう
>>53 Excelの関数に背景色へアクセスできるものはないのでVBAを使う
他の教えたがり君が説明してくれるまでもっと禿げてて
56 :
名無しさん@そうだ選挙にいこう :2006/04/27(木) 23:58:46
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 テーブル 印刷 タイトル行 一行目がテーブルタイトル。 それ以降がデータ行が並んでいるテーブルがあります。 データ行はVBAで生成され可変長です。 このテーブルは印刷されることが前提です。 データ行がある程度多いと、複数ページに分かれて印刷されてしまいます。 このときテーブルのタイトル行を印刷された各ページ頭に挿入したいんですが、どうしたらいいんでしょうか。 あるセルが何枚目に印刷されるのかって命令が無いんで、どうしようかなぁと考え中
58 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 00:13:06
>>57 ファイル→ページ設定→シート→印刷タイトル
59 :
前スレの966です。 :2006/04/28(金) 00:16:01
前スレの
>>986 さん
=SUM(IF(YEAR(DATE(YEAR(B1:B3),MONTH(B1:B3)-3,1))=2005,A1:A3))
この数式を使って試してみたんですが、#VALUE!と出てしまいます。
それと、Ctrl+Shift+Enter の意味がよくわからなかったんですが。
60 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 00:36:50
61 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 00:37:33
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 テーブル 印刷 タイトル行 一行目がテーブルタイトル。 それ以降がデータ行が並んでいるテーブルがあります。 データ行はVBAで生成され可変長です。 このテーブルは印刷されることが前提です。 データ行がある程度多いと、複数ページに分かれて印刷されてしまいます。 このときテーブルのタイトル行を印刷された各ページ頭に挿入したいんですが、どうしたらいいんでしょうか。 あるセルが何枚目に印刷されるのかって命令が無いんで、どうしようかなぁと考え中
62 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 00:38:17
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-20 あたりの注意書きやQ&Aも読もう。
★4 質問テンプレは必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。
これを書かなかった場合は、以後まともな回答は付かないと思ってください。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。
「VBAって何?」って場合はとりあえず「否」に。よくわからないけど使ってみたいってなら
「可」にして、
>>10-15 あたりの解説を参考に使ってみよう。
63 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 00:40:45
64 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 00:41:07
462 名前:449です :2006/04/27(木) 22:44:05
>>454 さん、
>>458 さん、
素晴らしいですね!お陰さまで楽できました(^ - ^)何のお礼も出来ませんが、本当に助かりました。
ありがとうございました!!!
463 名前:名無しさん@そうだ選挙にいこう :2006/04/27(木) 23:48:14
LAN経由で別PC内のEXCELファイルを開いていたのですが、誤ってデータの入ってないファイルを上書き保存してしまいました。
ファイル保存してあるPCでFINALDATAやSuperファイル復活を試してみたのですが、復旧不可能でした。
何か良い方法は無いでしょうか?
65 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 00:42:10
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-20 あたりの注意書きやQ&Aも読もう。
★4 質問テンプレは必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。
これを書かなかった場合は、以後まともな回答は付かないと思ってください。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。
(省略されました・・全てを読むにはここを押してください)
66 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 00:43:42
/ ̄ ̄ ヽ, _/\_/\_/\/|_ / ', \ / {0} /¨`ヽ {0} < ジャンケンポン! > l ヽ._.ノ ', / \ .}゙i 「i ノ `ー'′ '、  ̄|/⌒\/\/⌒\/ ̄ ノ | l | ヽ /⌒ ⌒ヽ ト、 | | | l { /} / /i /ヽ ヽ ヽ ヽ 〈、 i、 | |.ム / ! ( 〈.| | \ \ . ヽ ヾ,、_rL | | _r}∠>=‐' / −−− .\\ | \ \/)_ \ : ∵爻、 ヽ |! j゙ソ゛.: . / /  ̄ ̄ ノ \ 三) ヽ ∵ ヾk l||! _}i}∴ ∵ / / ∠_  ̄ ̄ \ ∵{=、, cr炎ro _fiヾk: :/ −− | f\ ノ  ̄`丶. ヽ∠__ノァt-、 /,仝yハ ∠rtゝ-‐ ' | | ヽ__ノー─-- 、_ ) .ゞニヾハ. }K以ムハ //> ′ . | | / / .>、ヽ }ニネネ冫:i/∠、 | | ,' / ./へ\ `ー八‐‐'_/' へヽ / / ノ | ,' .〃 >,才¨^¨弋ヽニニヾk / / | /
67 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 00:44:48
}゙i 「i ノ | | ヽ ト、 | | l { /} ヽ ヽ 〈、 i、 |.ム / ! \ : ∵爻、 U /_r}∠>=‐' / \ ∵ ∩ヾk∩ U / j゙ソ゛.: . / ヽ |_:|∵{|_:| ./ ̄ ̄ ヽ, _}i}∴ ∵ / ヽ| /^/^, .|, / ', _fiヾk: :/ _/\_/\_/\/|_ ⊂、し'し' つt-、 {0} /¨`ヽ {0} ∠rtゝ-‐ ' \ / ヽ ノゞニヾハ ヽ._.ノ //> ′ < UNO!! > .| | >、リ `ー'′ ヽ / \ (  ̄ ̄⌒ ⌒ヽ  ̄|/⌒\/\/⌒\/ ̄ ` ̄ ̄`ヽ /ヽ ヽ | | \ \ −−− ‐ ノ / \ \/) / ノ \ ξ) / ∠_  ̄ −− | f\ ノ  ̄`丶. | | ヽ__ノー─-- 、_ ) − _ . | | / / | | ,' / / / ノ | ,' \ / / | / \ /_ノ / ,ノ 〈 \ ( 〈 ヽ.__ \ \ ヽ._> \__)
68 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 00:50:32
__ i<´ }\ , - 、 ヽ.._\./ .ンく r-兮、 __ ∠`ヽ.! / ヾニEヲぐ ,ゝ-> /_`シ'K-───‐-、l∠ イ アッガイ最強だぜ! l´__,/l\、_ ̄0¨0)゙@Yヘ, -┤ . l'___|⌒ヾ''ー==、ーr='イ i二| / .」 i /./7r‐く lー! . f. ヽ‐i人.∠'< _i. l,.-ゝ. トiヘヘ「ト〈 `X トレi7__| 〉ト:トハj`! i. / トー┤lルj,リ /‐+----+‐l iー--i---ヾ'〃 . l_i____i__| |___i,__i_|
69 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 02:46:21
fdsadfsafds
70 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 02:46:57
VW11.5でそのやり方で読み込むと、データ崩れまくり。
A&AもJWCの操作方法を取り込むなんて路線は、
口だけだったんじゃないの。
951 名前:1 :2006/04/23(日) 18:43:31
>>950 え、そうなの?
なんか適当なこと言ってごめんなさい
>>947 でも以前、手が足りなくなったときにVWを使ってる事務所に外注出したことがあったんだけど、
その人は、設定次第で結構いけるよって言ってたから。。
実際、送られてきた図面は問題なくjwwで読めたし。
レイヤと線色も、こちらが指定したとおりにおおむねなってた。
まぁ確かに、こちらから向こうに送った図面はベースになる簡単なものだけだったけど。
で、データはどういう風に崩れたの?
>>61 ファイル 〜 ページ設定... 〜 シート 〜 印刷タイトル 〜 行のタイトル
>>53 EXCEL4.0マクロのGET.CELLとか使えば取得できるけどめんどい
googleとかで調べてみれ
VBA使ってもいいならVBAで調べるのがいいじゃないかな
>>52 match関数でチーム名が出てくる順番しらべて、
それを元にindex関数で表から拾う場所を指定すればいいんじゃないかな
表の範囲がA1:C5として、A1:A5にチーム名があるような場合は
=INDEX(A1:C5,MATCH("水戸",A1:A5,0),2)
みたいな感じ
関数の使い方はヘルプみれ
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 オートフィルタ 表 比較 など・・・ 二つの名簿A、Bがあって、Aに含まれているがBには無い人、 つまりA−Bの名簿を作りたいのですが、これを自動でやる方法を探しています。 別スレでオートフィルタを活用せよとのヒントを貰いましたが、 どうも目的を果たす機能がそのなかに見つかりません。 二つの表を比較するような機能はオートフィルタの範疇にあるのでしょうか? ご存知の方いらっしゃいましたらご教授ください。
75 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 10:07:09
>>74 そのヒントはオートフィルタではなく
ABのデータを1列に並べてから
[フィルタ]-[フィルタオプションの設定]で
重複データを除いたデータの抽出
これじゃないかな
76 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 10:30:40
>>38 ,60
無視されたあげく
ついにキレちゃいました・・・・・・・・・・おだいじに!
77 :
36 :2006/04/28(金) 12:08:57
>>38 検索置換で.(ピリオド)*を検索
空白を置換にして、小数点以下部分を削除すればよいのでは?
一行コピーして別に設ければデータはそのままだし
79 :
74 :2006/04/28(金) 13:48:25
表を縦に並べて合成してみました。 データ>フィルタ>フィルタオプションの設定 で、 設定ボックスが開くのですが、どの辺に 「重複データを除いたデータの抽出」と入力すればいいのでしょうか。 あと、これだとA+Bして重複データを一つにまとめる、という意味になるような気もします。 手元のエクセル指南本(初級)にはフィルタオプションの項がそもそもありません・・。 エクセルは卒論のグラフを書くときにちょこっと使った程度で関数やその他の機能は 全く使ったことがないので、正直かなり訳が分からない状態です・・。 もっかい本屋行ってきます。 よろしければもう少しアドバイスお願いします。
80 :
前スレの966です。 :2006/04/28(金) 14:07:51
>>79 単純にCOUNTIFで2になったものでいいじゃん
>>81 一方にしか無いのもを得たいのだから「1」では?
おっ、そだね。 >Aに含まれているがBには無い人 、だね。
>>73 さま。
ありがとうございます。
おかげさまで
>>32 の表Aが希望通りに完成しました。
感謝です!。本当にありがとうございました。
86 :
前スレの966です。 :2006/04/28(金) 19:25:50
>>84 それはSUMIFと同じではないでしょうか?
"3から5まで"の範囲の合計を求めたいんですが
○から○という条件指定って関数では出来ないんでしょうか
87 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 19:30:15
「3から5までかどうか」を調べる作業用の列を設ければいいんじゃね? IFとANDで出来るでしょ。
=SUM(B1:B5)-SUMIF(A1:A5,"<2",B1:B5)-SUMIF(A1:A5,">4",B1:B5)
89 :
前スレの966です。 :2006/04/28(金) 20:27:23
年度別の集計、出来ました!
>>88 さんのをヒントに色々と試したら出来ました。ありがとう!!!
数式内でもH17.5.5という表記が使用出来る事も分かりました。(皆さんにとっては常識でしょうけど・・・)
これまでシリアル値に置き換えないとダメかと思ってました。(汗)
ということで、年度別の集計を作成してみます。(機会があれば参考にして下さい!)
A列に上からH17.3.3、H17.5.5、H17.6.6、H18.4.5とします。
B列に上から1,2,3,4とします。
平成17年度の集計ですが、答えは(2+3=)5となります。
その関数ですが、=SUMIF(A1:A4,"<H18.4.1",B1:B4)-SUMIF(A1:A4,"<H17.4.1",B1:B4)
となります。
回答下さった方々ありがとう!!
90 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 20:35:30
VBAで統計関数のpoissonを使いたいのですが 下のように書いても、認識してくれません Sub test() Cells(1, 5) = poisson(1, 2, True) End Sub どうしてでしょうか
91 :
74 :2006/04/28(金) 20:39:44
できました。 countif で1になるものをオートフィルタすることで目的のデータが得られました。 ありがとうございました!
92 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 20:52:13
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 グラフをJPEGか何かの画像データにすることはできませんでしょうか? キャプチャーソフトを使えば可能は可能ですが、何か遠回りしているような気がします…。
93 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 21:06:30
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 Application.CommandBars("Cell"). Controls.Addとして、マクロをショートカットメニューに追加したんですが、 ショートカットメニューの一つにマウスポインターを合わせると、さらに右にサブメニューが表示されるようなかたちにしたいのですが、方法がわかりません。どなたかお教え願えますでしょうか。
94 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 21:08:21
Excelに関する質問は、ここで!
/)_/) ( ・分かる人はできるだけ回答して下さいませ。
< ゚ _・゚> .。oO( ・回答がなくてもキレないで。急いでいても催促は3日以上開けて。
ノ) / | ( ・自己解決したらその解決手段を他の人の参考の為に書いてね。
\(_,,,_,,,)
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-20 あたりの注意書きやQ&Aも読もう。
★4 質問テンプレは必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。
これを書かなかった場合は、以後まともな回答は付かないと思ってください。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。
「VBAって何?」って場合はとりあえず「否」に。よくわからないけど使ってみたいってなら
「可」にして、
>>10-15 あたりの解説を参考に使ってみよう。
・前スレ
http://pc8.2ch.net/test/read.cgi/bsoft/1143177051/
95 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 21:08:54
dhffiodjfsdklafgjsdkl;j;jdkfghjkdfs;ajkdsalf;jdsklfjdksl;fjkdslsfjakldfjdkslafjkdl;safjkdls;ajfkdls;ajfkdl;sajfkdls;ajfkld;sa
96 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 21:17:52
連休突入でションベン厨ドモが湧いてきたようだな
97 :
名無しさん@そうだ選挙にいこう :2006/04/28(金) 23:08:17
98 :
まりも :2006/04/29(土) 00:16:33
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 シートの合体
http://2lbox.org/s/uploader/uploader.cgi/DOTS1.xls ・・・(1)
http://2lbox.org/s/uploader/uploader.cgi/GTOTAL.xls ・・・(2)
(1)のようなBOOKがあります、その中にはシートが多数あり
その1つ1つが表になっています。
BOOK はDOTS1.XLSだけではなく、DOTS2 , DOTD5と多数あります。
BOOKの数は28ファイルです。(これは1ヶ月分で、何年分もあります)
その1つ1つが(1)のBOOKのようなデータです。
その28のBOOKの中のシートを(2)のようなTOTAL.XLSというBOOKの中の1つのシートに
まとめたいです。
(BOOK)TOTAL の列Aは各BOOKの各SHEETの所属するブック名を取得して、そのシートのアイテムの
所属するBOOK名
(BOOK)TOTAL の列Bは各BOOKの各SHEETの$D$3を取得して、そのシートのデータに
属するもののコード。
(BOOK)TOTAL の列Cは各BOOKの各SHEETの$B$3を取得して、そのシートのデータに
属するもののコード。
(BOOK)TOTAL の列Dは各BOOKの各SHEETの$C$4を取得して、そのシートのデータに
属するもののコード。
これらを自動で実現出来るような事を出来る方がいらっしゃいましたら協力していただきたい
と思って相談に来ました。よろしくお願いいたします。
99 :
名無しさん@そうだ選挙にいこう :2006/04/29(土) 01:53:02
使用しているのはエクセル2003です。 質問なのですが、VBAでワークブックを開くとすぐに vbModalでUserFormが表示されるようにしております。 そこで、後ろにあるワークシートやメニューなど全てが 全くの未使用で邪魔なので完全非表示にしたいのですが どのようなコードを書けば実現できるでしょうか? よろしくお願いします。
100 :
99 :2006/04/29(土) 01:54:40
追伸ですが、要するにUserForm以外全て非表示の状態で起動させたいのです。 よろしくお願いします。
Excelが要らないならVBで作ってください
102 :
99 :2006/04/29(土) 02:57:42
>>101 それはごもっともですが、そこをなんとかお願いします。
103 :
99 :2006/04/29(土) 03:04:59
自己解決しました。
104 :
名無しさん@そうだ選挙にいこう :2006/04/29(土) 05:58:46
前スレ980で、Excelのハイパーリンクで画像を呼び出すとき 関連付けしてる「Windows 画像とFAXビューワー」で呼び出したい(どうしても 閲覧には向かない「Photo Editor」で開いちゃうので困る)という、質問をしたものです。 (環境: OS XP Pro、Excel2002) 親切な方に Public Declare Function ShellExecute Lib "SHELL32" Alias "ShellExecuteA" (ByVal hWnd&, ByVal lpOperation$, ByVal lpFile$, ByVal lpParameters$, ByVal lpDirectory$, ByVal nShowCmd&) As Long Sub JPG画像を開くテスト() Dim hWnd As Long Call ShellExecute(hWnd, "Open", ThisWorkbook.Path & "\" & "○○○.jpg(開きたいファイル名)", "", "", SW_SHOW) End Sub というマクロを教えてもらい、 「ThisWorkbook.Path & "\" & "○○○.jpg(開きたいファイル名)」のところを、写真のファイルパス文字列が 生成されているセルを指定する形にアレンジしてやってみました。お、大成功。いい感じで開きました。 しかし、翌日会社のPCでやってみて気づいたのですが、自分のPC内のフォルダーにある写真は問題なく開けるのですが LAN上の他のPCに繋がっている共有フォルダ(外付けHDDに入ってる)のそれはどうしても開けません。 パクリパクリばかりでVBAの知識は殆どない私。上記のマクロのどこをどうイジッたら、うまくいくのでしょうか?誰か助けてください。
105 :
名無しさん@そうだ選挙にいこう :2006/04/29(土) 07:33:51
Excelに限った話ではないんですが,Officeプログラム全般で,いろいろな設定がありますよね(ツール->オプションで選ぶやつ). あれってスコープはどれくらいなんですか. 何をいってるのかというと,設定を変更してOKしたとき,その設定はどういう範囲で有効になるかということです. セッション? ドキュメント? ユーザー? プログラムのインスタレーション? おそらく設定項目ごとに違うと思うんですが,そういうのがまとめてあるサイトってないですかねえ.
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 ? 【5 検索キーワード 】セル、カーソル 今までシート内でのセル移動に、カーソルキーを使っていたのですが、 いつからか、カーソルキーを使うと、ターゲットのセルは動かず、 シート全体が右や上など、カーソルの方向に動くようになっていました。 オプションのプルダウンメニューも見てみましたが、それらしきものはなく、困っています。 知らぬうちに、ショートカットキーのようなものをさわってしまったのでしょうか? MX610というチルト付きのマウスを使っています。 この左右チルトでは、画面が左右に動きますので、カーソルキーはセルの移動に使いたいのです。 このスレ内をセル、カーソルで検索してみましたが、 こんな簡単なことについてはありませんでした。orz どなたか教えてください。 お願いします。
107 :
名無しさん@そうだ選挙にいこう :2006/04/29(土) 13:25:12
>>106 キーボードのScrolLockキーを押しちゃってるとか
レスどうもです。 ScrolLockは、ディスプレイ切り替えのため、 キーバインドしているので使っていません。 念のため押してみたら、ディスプレイが切り替わるだけでした。ozr
>104 ThisWorkbook.Path以下を直接指定汁。 "\\共有HDDの名前\フォルダ\フォルダ\○○○.jpg" >108 107の云うとおりScrooLockがonの状態みたいだから キーアクセを外してoffにして再設定かな。
110 :
104 :2006/04/29(土) 15:32:46
レスどうもです。 キーボードの問題ですか。 設定し直してみます。 どうもでした。
111 :
名無しさん@そうだ選挙にいこう :2006/04/29(土) 16:26:26
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 色情報 参照 エクセルで参照元セルの色情報をもってくることはできますか? セルA1が黄色いセルだとしてセルB1に“=A1”でA1を参照 させたいのですが、この時、色情報(書式)も参照してB1が 黄色くなるようにしたいのですが
112 :
名無しさん@そうだ選挙にいこう :2006/04/29(土) 16:42:07
【1 OSの種類 .】 WindowsXPhome 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 エクセル グラフが表示されない ユーザー関数 など ものすごく簡単なことかもしれませんが。。。 ユーザー関数で求めた値で簡単なグラフを作成したのです。作成時は表示されていたのですが、保存し、再起動させると グラフ内のデータ部分のみが表示されません。軸やタイトル凡例は表示されています。 ちなみにユーザー関数は(関係ないと思いますが) Public Function テーラーの寿命方程式V(C, T, N) テーラーの寿命方程式V = T ^ N / C ’ CとNは定数です End Function と切削工具の寿命を求めるものでそれをVとTの対数グラフにしただけです。 ほかのグラフ、ユーザー関数でも同じような現象がおきます。 ユーザー関数を普通の関数の組み合わせで置き換えると表示されるので、ユーザー関数を使っていることが原因だと思われます。
すいません自己解決しました 単純に式が間違ったままファイルを保存して 修正後ユーザ関数登録アドインを保存せずファイルのみを保存していたみたいです
114 :
名無しさん@そうだ選挙にいこう :2006/04/29(土) 17:11:34
【1 OSの種類 .】 WindowsXPhome 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 不可 【5 検索キーワード 】 書式設定 書式設定を標準に設定していても 「平成18年9月15日」と打つと勝手に日付用に変更されてしまいます。 書式設定を固定することって出来ないのでしょうか?
あるいは、日付の中からそれ様のを選ぶ。 書式の標準てのは、入力された値について 数か文字列か日付か時間かというように、 EXCELがその分類を判断して それぞれに見合った初期設定された形式で 勝手に表示しますということ。
117 :
名無しさん@そうだ選挙にいこう :2006/04/29(土) 18:07:09
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excel 関数 Excelの文字列操作の関数で、文字列を特定の文字列を抽出・置換することはできますが、 抽出した文字列を「置換」するのではなく、「削除」することはできますでしょうか? 「置換」の欄に、スペースを入力して、文字が見えないようにすることはできるけど、 スペースが挿入されるので、文字の位置がずれて、見栄えがよくないですよね? 文字列を検索して「削除」する方法があったら教えて下さい。
関数でやりたいならSUBSTITUTE(だったかな・・?) 置換でしたいなら置換後の文字は何も入力しなければその文字が消せる
119 :
117 :2006/04/29(土) 18:13:13
>>118 早速のレスありがとうございます。
置換後に何も入れなければよかっただけなんですね。
何か入れないといけないのかと思っていました。
SUBSTITUTE関数ははじめて聞きました。
調べてみます。
どうもありがとうございました。
120 :
117 :2006/04/29(土) 18:23:33
実は、さっきの質問の意図なのですが、 行3 :日本2004年度1月 日本2004年度2月 日本2005年度3月 アメリカ2005年度1月 アメリカ2005年度10月 ロシア2004年度8月 ロシア2006年度12月 と上記のように行方向に入っている表があり、今文字列が入力されている行より上に、 国名と年を移動?させたいと思って、置換や関数を使ってうまくできないものかなと思って質問しました。 こんな感じにしたいと思っています。 行1 ; 日本 アメリカ ロシア 行2 : 2004年度 2005年度 2005年度 2004年度 2006年度 行3 : 1月 2月 3月 1月 10月 8月 12月 検索・置換・関数を使って、うまく簡単にする方法はありますか? よろしくお願いします。
文字列操作関数でそれそれ切り出して、セルの結合は手動かな。 RIGHT関数とかMIDとかLENとかね
ああ、あとFIND関数もね
123 :
名無しさん@そうだ選挙にいこう :2006/04/29(土) 21:32:44
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか . 】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 DATE、WEEKDAY 株式指標の傾向を分析したく毎日記録してます。 日付と曜日の項目をオートフィルで一年分作りたいのですが、土日が空行となり操作性の面からも不要です。 土日を飛ばしてオートフィルは可能でしょうか? (現時点では、土日が入ると、前日差を出す時に金曜の値を土・日にも書き込まないといけないので) また、他に良い方法があれば教えてください。 フォームはこんな感じのフォームにしたいのですが(ズレが心配ですが・・・) A B C D E F・・・・ K 日付 曜日 日経平均 NYダウ NYナス 日経前日差 1 4/3 月 17383.31 2 4/4 火 17292.91 -90.40 3 4/5 水 17243.88 -49.03 4 4/6 木 17489.33 245.45 5 4/7 金 17563.37 74.04 6 4/8 月 17456.58 -106.79 ・ ・ ・ ・ ・ ・ よろしくお願いします。
125 :
123 :2006/04/29(土) 21:38:13
>>124 ありがとうございます。
効率よく削除する方法はありますか?
書き込み途中だった で、2週間分ほど作って手作業で土日を消してその2週間分からオートフィルすればOK
127 :
123 :2006/04/29(土) 21:44:39
わかりました!やってみます。出来なかったらまた来ますけど・・・ ありがとうございました!
月〜金を2回繰り返してオートフィル
129 :
d :2006/04/29(土) 21:50:56
>>123 >土日込みで作った後に土日削除
>効率よく削除する方法はありますか?
オートフィルタで「土」を選んで行削除、「日」も同様でいかがでしょうか。^^
日付をオートフィルするなら一日目の日付を入力して A2に =IF(WEEKDAY(A1)=6,A1+3,A1+1) としてオートフィル
131 :
123 :2006/04/29(土) 22:37:14
>>128 >>126 さんの提案である、準備段階の書き込みに、やらなければいけない書き方あるようですが、読み取ることができず・・・。
(同じ日付の繰り返しになったり、「コピーサイズが合わない」等のエラーメッセージが出てしまいます)
初心者過ぎてすみません。
>>129 なるほど!だったんですが・・・土曜日を消した途端、#REFが・・・。
128さん同様のレスです。すみません。
>>130 できました!日付・曜日とも完璧です。
これから式の意味を紐解いてみます。
皆様、ありがとうございました!
132 :
名無しさん@そうだ選挙にいこう :2006/04/29(土) 23:26:42
【1 OSの種類 .】 Windows 2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 - 【4 VBAでの回答の可否】 - 【5 検索キーワード 】 エクセル フィルター 抽出 日付で、まとめて1年分抽出して削除という事はできますでしょうか? (2004年度分だけ残し、2005年度分は削除) オートフィルターで抽出はできたのですが まとめて1年分の抽出ができず 2005/1/1 分を表示 → 削除 2005/1/3 分を表示 → 削除 2005/1/5 分を表示 → 削除 と手間がかかって仕方がありません。 よろしくお願いします。
>>132 ?
質問の意味が良く分かりませんが
オートフィルオプションで
2005/1/1以上 AND 2005/12/31以下
を指定すればいいのでは?
134 :
132 :2006/04/30(日) 00:18:39
誤って雑談スレの方に書き込んでしまったので、コピペになりますが宜しくお願いします。 グラフを作成したいのですが、うまくいきません・・・ 3列のデータ項目があって、20行程度のサンプルが入力されている表があって、その表の隣に積み上げ横棒を配置したいと思っています。 3つのデータの合計数を比較出来るグラフにしたいのですが、何故か表の一番したのデータをあらわすグラフが一番上に、表の一番上のデータを表すグラフが一番下にという風に上下が全く逆のグラフが作成されてしまうのです。 普通に系列毎に列全部を指定しているのですが、やり方がおかしいのでしょうか?
やり方がおかしいのです
137 :
d :2006/04/30(日) 13:41:03
>>93 メニューを階層化するには追加するコントロールをType:=msoControlPopupと
する必要があります。
以下、シートモジュールに書く例です。^^
Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)
Const myMenu As String = "myMenu"
Dim Pop As CommandBarPopup
Cancel = True
With Application.CommandBars("Cell")
.Controls(1).BeginGroup = True
Set Pop = .Controls.Add(Type:=msoControlPopup, before:=1, temporary:=True)
With Pop
.Caption = myMenu
With .Controls.Add(Type:=msoControlButton)
.Caption = "Menu-1"
.OnAction = "Menu-1"
End With
With .Controls.Add(Type:=msoControlButton)
.Caption = "Menu-2"
.OnAction = "Menu-2"
End With
End With
.ShowPopup
.Controls(myMenu).Delete
End With
End Sub
Dim Pop As CommandBarPopup Set Pop = .Controls.Add(Type:=msoControlPopup, before:=1, temporary:=True) With Pop ↓ 3行分を1行に With .Controls.Add(Type:=msoControlPopup, before:=1, temporary:=True)
【1 OSの種類 .】 XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 - こんにちは 今回新しいPCに変えたのですが エクセルの内容はUSBメモリに保存したのですが 新しいPCに読み込ませて上書き保存しようとすると 保存できません と でます前のPCはバージョンは覚えていませんがエクセル2003より前なのは確かです 保存できるようにしたいのですがどうにかなりますか? よろしくお願いします 長文失礼しました
>>139 単に読み取り専用属性が付いてるだけと違う?
レスありがとです プロパティから見ると読み取り専用のところにはチェック入ってないです それに属性自体もかすれた?ような色でチェックがつけれないようになってます
>>141 一度「名前を付けて保存」で別名として保存をしてみたら?
新しいブック作ってそこにシートを全部コピーしてみた? あとは、USBメモリ上のファイルから実行してるなら一旦HDにそのファイルを移動させて みたり・・
145 :
名無しさん@そうだ選挙にいこう :2006/04/30(日) 18:38:38
>>139 そのUSBメモリ、ひょっとして書き込み禁止スイッチとか付いてない?
>>144 おとなしく新しいブックに全部コピーします。。結構データあるので時間かかりそうですが、がんばってみます
>>145 USBメモリには上書き防止のスイッチ等はついてないです
お騒がせしました
レスしてくれた方々有難うございました
147 :
名無しさん@そうだ選挙にいこう :2006/04/30(日) 23:08:17
>>137 正直レス諦めてました。ありがとうございました!助かりました。
【1 OSの種類 .】95 【2 Excelのバージョン 】97 【3 VBAが使えるか .】かも 【4 VBAでの回答の可否】可 【5 検索キーワード 】 マクロで文字として"="&"SUM"をいれたのに、入らないときがあります。標準書式で。なぜ?
>>148 式入力するならFormulaを使う
例
ActiveCell.Formula = "=SUM(" & "A" & ActiveCell.Row & ":B" & ActiveCell.Row & ")"
150 :
名無しさん@そうだ選挙にいこう :2006/05/01(月) 03:16:54
お初です。 エクセルで、数千もの莫大な行になるデータを扱う実験を行っています。 そこで、質問なのですが、オートフィルタ機能などを使って、【測定時間】という 列の、整数秒のみ、0.1、0.5、1、1.5、2・・・とあるものの整数のみを抽出するには どのようにしたらいいのでしょうか? これがわからず、作業が前に進みません・・・ 宜しくお願いします。
そんな痛い子
>>150 ちゃんにもお返事来てるから
レス読みなおしてごらんって言っても無駄だろうな。
そういえば・・・・
確か
>>60 で切れてたね、もお大丈夫?痛い子ちゃん
VBAのコードを教えてください。 【1 OSの種類 .】XP HE 【2 Excelのバージョン 】 2000 【3 VBAが使えるか .】 少し 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 「一つ前にもどる」というコードがあったと記憶してますが、そのコードを教えてください。 例) Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Range("c5") Is Nothing Then Exit Sub Application.EnableEvents = False If Day(Range("c5")) <> 21 Then MsgBox "日付は21日で入力" 'ここに日付が21じゃなかったら、前の状態にもどすというのを入れたい。 End If Application.EnableEvents = True End Sub
VBAの質問です。 【1 OSの種類 .】 XP Pro(SP2) 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 DisplayAlert テンプレート ExcelテンプレートでVBAを動作させています。 保存せずにExcelを閉じる際に、DisplayAlert = Falseで保存確認メッセージを表示させないよう設定して いるのですが、[×]ボタンで終了させる時にDisplayAlertがFalseにかかわらず、メッセージが表示されてしまいます。 [×]ボタンとは別途に終了ボタンを作成し、そちら側では Application.Quit で終了しています。 DisplayAlertをFalseにする処理はWorkbook_BeforeCloseで行っているため、どちらも通ると思うのですが・・・ テンプレートのまま閉じると、必ず保存確認メッセージが表示されるのでしょうか? '閉じる前の処理 Private Sub Workbook_BeforeClose(Cancel As Boolean) If ThisWorkbook.Saved = True Then 'アプリケーションのメッセージを表示しない Excel.Application.DisplayAlerts = False '保存されてないが、特定のセルに値が入っている場合 ElseIf Len(ThisWorkbook.Worksheets("sheet1").Cells(22, 2).Value) > 0 Then 'アプリケーションのメッセージを表示しない Excel.Application.DisplayAlerts = False End If End Sub
156 :
名無しさん@そうだ選挙にいこう :2006/05/01(月) 11:54:21
>>151-152 確かにうざいコピペかもしんないけど、そんなこと言わずに教えてやろうよ
>>150 そういう場合はね
(省略されました・・全てを読むにはここを押してください)
157 :
155 :2006/05/01(月) 11:55:40
わかりづらかったので追記を・・・。 作成した終了ボタンではメッセージが表示されずに終了します。 条件を満たしている時でもメッセージが表示されるのは、[×]ボタンで終了した時のみです。
158 :
名無しさん@そうだ選挙にいこう :2006/05/01(月) 12:10:41
質問なのですが、Windows XP、Excel2002を使用しております。 単純に1ミリ秒単位のWaitを置く方法はありますでしょうか?
159 :
158 :2006/05/01(月) 12:12:21
すみません。テンプレに則ります。 VBAの質問です。 【1 OSの種類 .】 XP Pro 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 vba wait 単純に1ミリ秒単位のWaitを置く方法はありますでしょうか?
160 :
153 :2006/05/01(月) 12:28:40
>154 おお!そうだ。 サンクスデス
>>155 保存しないで閉じるという事なら
ActiveWindow.Close Savechanges:=False
162 :
名無しさん@そうだ選挙にいこう :2006/05/01(月) 12:57:17
>>158-159 寸法は画面の解像度で相対的なものだし・・・・
SI単位で言われてもオイラ困っちゃう
163 :
158 :2006/05/01(月) 13:10:10
レスありがとうございます。 自己解決しました。
164 :
名無しさん@そうだ選挙にいこう :2006/05/01(月) 13:47:04
>>162 え?何言ってるの?
寸法のことなど言ってないだろ?
>>158 はウェイトタイムのことを言ってるんだろ。
まあいろいろ方法はあるし自己解決したらしいからいいけど。
>>161 早速のレスありがとうございます。
確かにその方法でもメッセージを表示させずに閉じられるのですが、
Excelのアプリケーション自身が残ってしまうんですよね・・・。
保存メッセージを出さずに、かつアプリケーションも終了させる方法として
Application.Quit と Application.DisplayAlerts = False の処理で
自作の終了ボタンを作ったのですが・・・。
今デバッグしてみたのですが、
どうも[×]ボタン押した時に Application.DisplayAlerts = False を通っても
Falseに変更されずにTrueのまま処理されてしまっているみたいです・・・何故だorz
[×]ボタンを押せないようにするような処理にした方がよさそうですね・・・
ありがとうございました。
166 :
名無しさん@そうだ選挙にいこう :2006/05/01(月) 15:52:11
【1 OSの種類 .】 XP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 vba userform gettickcount サイの目が1〜6までループしていて、Shiftキーを押すと停止し、 1なら大当たり、6なら当たりで恒常ループを抜け、 それ以外ならはずれでループを抜けないという処理がしたいのですが、 セルを使ったものは成功しますが、 ユーザフォームを使ったものがどうしても出来ません。 画面に何も表示されなくなりフリーズのような状態になります。 Shiftキーを押すと判定のみ表示されるのですが・・・
167 :
166 :2006/05/01(月) 15:54:07
コードは以下のようになります。 Option Explicit Declare Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Long Declare Function GetTickCount Lib "kernel32" () As Long Public myGameFlag As Boolean Private Sub start() UserForm1.Show Dim i As Integer Dim myStartTime As Long Dim myWaitTime As Integer myWaitTime = 500 myGameFlag = True
168 :
166 :2006/05/01(月) 15:54:38
Do While myGameFlag = True myStartTime = GetTickCount Select Case UserForm1.TextBox1.Text Case 1 UserForm1.TextBox1.Text = 2 Case 2 UserForm1.TextBox1.Text = 3 Case 3 UserForm1.TextBox1.Text = 4 Case 4 UserForm1.TextBox1.Text = 5 Case 5 UserForm1.TextBox1.Text = 6 Case 6 UserForm1.TextBox1.Text = 1 End Select pressKey Do While GetTickCount - myStartTime < myWaitTime pressKey Loop Loop End Sub
169 :
166 :2006/05/01(月) 15:55:09
Private Sub pressKey() If GetAsyncKeyState(16) <> 0 Then If UserForm1.TextBox1.Text = 1 Then MsgBox "大当たり!" myGameFlag = False ElseIf UserForm1.TextBox1.Text = 6 Then MsgBox "当たり!" myGameFlag = False Else MsgBox "はずれ!" End If End If End Sub
170 :
名無しさん@そうだ選挙にいこう :2006/05/01(月) 15:55:51
エクセルファイルのプロパティ-概要-作成日を変更する方法ってありますか? ちなみにoffice2000です。
171 :
166 :2006/05/01(月) 15:57:13
UserForm1.TextBox1.Textの部分がユーザフォームなのですが、 この部分をRange("A1").Valueなどのセルにした場合は正常動作します。 良い方法はないでしょうか?
試してないけど DoEvents とか
173 :
166 :2006/05/01(月) 16:44:36
>>172 ありがとうございます。
DoEventsは試してみましたが、フォームは表示されますが、
数字が回転していない状態になり、
Shiftキーも受け付けないというような状態になってしまいます。
170はマルチ
質問です 例えばセルA1に数値を入力すると セルB1でIF文を使い範囲内であれば○ ネストして違う範囲では△ 偽は×という風に作ります A1の数値がB1の○の範囲からどれだけ離れていて △の範囲からはどれだけ離れているというのを出すような式は作れますか? (数値10で○範囲3〜5 △範囲2〜6なら答え○=+5 △=+4みたいな)
【1 OSの種類 .】 WindowsXP Professional 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 =MAX(L16:N17,C29:N30,C42:N43) =MIN(L16:N17,C42:N43,C29:N30) で、最大値・最小値を出しているのですが。 このL16:N17,C42:N43,C29:N30の間に#DIV/0!が入ると、#DIV/O!が最大・最小になり検出?されてしまいます。 #DIV/0!を無視させることはできますでしょうか? #DIV/0!が出る原因は、#DIV/0!が参照しているセルが未入力の為です。
177 :
名無しさん@そうだ選挙にいこう :2006/05/01(月) 17:35:23
>>175 ○=10-5,△=10-4:貴方が書いてる通りで出来てるのでは?
>>176 IF関数で#DIV/0!を出ないようにする
178 :
166 :2006/05/01(月) 17:57:30
問題点を簡素化するため、コードを書き換えました。 問題点は「ループ実行中、ユーザフォームが表示されない」だと思います。 ユーザフォーム内には、CommandButton1があります。 そのボタンをクリックするまで、 「そのボタンのCaptionが、1秒毎に1ずつ増える」というのをループします。 そのボタンをクリックすると、ループから抜け、プログラムは終了します。 【ThisWorkbook】 Option Explicit Sub Workbook_Open() UserForm1.Show vbModal End Sub 【Module1】 Option Explicit Declare Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Long Declare Function GetTickCount Lib "kernel32" () As Long Public myRunFlag As Boolean
179 :
166 :2006/05/01(月) 17:58:02
【UserForm1】 Option Explicit Sub UserForm_Initialize() Dim i As Long Dim myStartTime As Long Dim myWaitTime As Long myWaitTime = 1000 myRunFlag = True Do While myRunFlag = True myStartTime = GetTickCount CommandButton1.Caption = CommandButton1.Caption + 1 Do While GetTickCount - myStartTime < myWaitTime Loop Loop End Sub Private Sub CommandButton1_Click() myRunFlag = False End Sub
180 :
166 :2006/05/01(月) 18:02:22
ユーザフォームを表示する、または常に表示させる命令があれば 解決するような気がしないでもありません。
181 :
166 :2006/05/01(月) 18:03:17
でもループ中にUserForm1.showを書くと、 その時点でループが終了してしまうようです。
OnTimeで書き換えるかrepaintでいいんじゃね?
183 :
176 :2006/05/01(月) 18:16:57
>>177 #DIV/0!が返ってくるセルに
=IF(C4:C34="","",AVERAGE(C4:C34))
にするとVALUEが返ってきてしまうので、参照範囲を狭めて
=IF(C4="","",AVERAGE(C4:C34))
にしたら、空白が返ってくるようになりました。
ありがとうございました。
184 :
166 :2006/05/01(月) 18:22:31
>>182 レスありがとうございます。
repaintは初耳でして、ループ内にUserForm1.Repaintを入れてみましたが、
やはりユーザフォームは表示されませんでした。
また、DoEventsを入れても制御不能になるのは防げるものの、表示はされません。
GetTickCountをOnTimeで書き直すというのを今からやってみます。
185 :
166 :2006/05/01(月) 18:34:22
OnTimeやSleepなど試してみましたが、どれも同じでした。 リアルタイムでユーザフォーム内のCaptionやTextなどを、 書き換えるのが、こんなにも難しいこととは思いませんでした。 こういったことをさらっとやってのけるユーザフォームゲームはすごいです。 ソースを見ても、どの部分がこの問題を解決させてるのか判断できません。
186 :
名無しさん@そうだ選挙にいこう :2006/05/01(月) 18:39:45
ExcelからWordへコピー貼り付けをしたんですが枠線がワードに表示されません どうすれば枠線と一緒にコピーできますか?
187 :
166 :2006/05/01(月) 18:52:49
なんとか解決しました! Sub UserForm_Initialize()をSub UserForm_Activate()に書き換えて、 ループ内にUserForm1.RepaintとDoEventsを書くことで、 なんとかユーザフォームを表示させたまま、 リアルタイムで1ずつ増えていくことに成功しました。 ありがとうございました。
>186 罫線じゃなくて「枠線」?
190 :
166 :2006/05/01(月) 19:06:10
あれ?Repaint無しでもいけました。 どうやらSub UserForm_Initialize() ~~~~~~~~ ↑ これが問題だったようですね。
191 :
名無しさん@そうだ選挙にいこう :2006/05/01(月) 19:24:32
>>189 ,188
解決しました
罫線→表のグリッド線表示ONでいけました
192 :
名無しさん@そうだ選挙にいこう :2006/05/01(月) 20:35:53
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 -いいえ 【4 VBAでの回答の可否】 -いいえ 【5 検索キーワード 】 集計 出席簿を作っているのですが名前と日数をLOOKUPで参照させるとして、 項目 A B 1日 1 2日 2 3日 1 : : 31日 と任意の数字が入ります。Aの数字が10に達した時点でB列へ表示させる方法 です。
>>192 口調からして質問じゃ無いよね。
単なる報告?
そんなことせずに勝手に進めていいよ。
コピー&ペーストで移動する または Sub 出席簿() Dim i As Integer Cells(2, 2).Activate For i = 2 To 4 'ここは行数によって変わります If Cells(i, 2).Value >= 10 Then Cells(i, 2).Cut Destination:=Cells(i, 3) End If Next i End Sub
195 :
名無しさん@そうだ選挙にいこう :2006/05/01(月) 22:03:00
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 -いいえ 【4 VBAでの回答の可否】 -いいえ 【5 検索キーワード 】 集計 表現方法と内容に間違いがありましたので再投稿します。 出席簿を作っているのですが名前と数値をVLOOKUPで参照しようと思います。 項目 A B 1日 1 2日 2 3日 1 : : 31日 と任意の数字が入ります。Aの数字が10に達した時点でB列へ表示させる方法 です。 なにか問い方法はありませんか?
196 :
名無しさん@そうだ選挙にいこう :2006/05/01(月) 22:05:27
なんだ。 だったら手動でいいじゃん。 両方とも同じ参照にして A列を10以下なら表示する B列を10以上なら表示する とすればいいのでは? 無視されたな…orz
>>195 この書き方でわかったね。ネタだったってことが。
これ以上踊らされないように今後この質問は徹底無視で。
数字じゃなく式だけを表示させる方法を忘れてしまいました どなたか教えてください
201 :
名無しさん@そうだ選挙にいこう :2006/05/01(月) 22:41:08
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 -いいえ 【4 VBAでの回答の可否】 -いいえ A1:A100の範囲に、数値がランダムに入力されています。 この範囲から、最も右側に入力されている数値を関数で取り出したいのですが、 何か良い方法はありませんでしょうか。
右ってどこよ?
203 :
名無しさん@そうだ選挙にいこう :2006/05/01(月) 22:50:30
>>201 「エクセル技道場」と言うサイトにわかりやすい例が有ります
205 :
名無しさん@そうだ選挙にいこう :2006/05/01(月) 22:56:33
>>195 Aは入力値ですか、それとも式ですか?
>名前と数値をVLOOKUPで参照
この文と下表の関連性も判らない
もう少し細かい説明を所望
206 :
名無しさん@そうだ選挙にいこう :2006/05/01(月) 23:02:42
ネタではないです。 >197様、助言ありがとうございます。
207 :
201 :2006/05/02(火) 00:05:58
説明不足ですみません。 例えば、「A1」に100、「A40」に650、「A70」に300、「A95」に700、 と入力されていたとします。 すると、一番右側のセルは「A95」なので、700を取り出したいのです。 その他の、例えば「A2」のセル等は値が全く入力されていません。 A1:A100は時系列のような扱いになっていて、最新の値を取り出すような イメージです。
>>192 =195=201=207
なんでもかんでも思い立ったらすぐ聞けばいいってものじゃない。
少しは自分で考えなさい。
まぁどうせ考えてもわからなかったとか言い出すんだろうけど
君の「考えた」は考えたうちに入らない。
やはり説明が分かりませぬ 私のエクセルとは違うんでしょうね
>>207 「A1」も「A40」も「A70」も「A95」も同じA列なので右のセルも左のセルも
ありませんよ?
説明が上手く出来ないならキャプチャとってupするとかせめてそれぐらい
努力しよう。
EXCELに保存した来賓400人分の名刺を作りたいのですが、ご教示お願いいたします。 1.現在はA列に会社名B列に役職名C列に名前で500人分あります 2.市販の名刺用マルチカード(A4サイズに10枚)に連続して印刷したいです。 3.フリーのラベルソフト等もいくつか見てみましたが、 EXCELシートからダイレクトに挿入できませんでした。 仕上がりは1つの名刺サイズに以下のように印刷できればいいです。 (株)○○会社 ○○ 取締役 ○○ 太 郎
212 :
名無しさん@そうだ選挙にいこう :2006/05/02(火) 10:55:13
>>211 エクセルは印字位置の微調整が面倒だから
市販のソフトの方がいいよ
>フリーのラベルソフト等もいくつか見てみましたが、
>EXCELシートからダイレクトに挿入できませんでした。
CSV形式で保存すれば、たいていのソフトで読めるよ
説明書を見ればエクセルデータからのインポートは
載っているはずです。
213 :
名無しさん@そうだ選挙にいこう :2006/05/02(火) 11:45:07
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 少々 【4 VBAでの回答の可否】 可 1.あるセルに日付が入ってるのですが、違うセルにその月の最後の日付を表示したい のです。簡単な方法はないでしょうか。 2.そのシートから曜日および別シート参照で祝日を表示させたいのですがうまくいかない、、orz =IF(ISNA(VLOOKUP(B8,祝日リスト!$A$1:$D$59,4,FALSE)),CHOOSE((WEEKDAY(((DATE(YEAR(B1),MONTH(B1),B8))))),"日","月","火","水","木","金","土"),VLOOKUP(B8,祝日リスト!$A$1:$D$59,4,FALSE)) 間違ってるところを教えてください。お願いします。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 VBスレで荒れた空気を読まずに誤って質問してしまいましたので こちらで再度質問させていただいてもよろしいでしょうか? 条件によって変数そのものを変えたいんですが、出来ますでしょうか? 例えば a = a + 10とあった場合、 c = falseならaのままでいいんですが、 c = trueならaの部分をbに変えたいんです。 ただし、こういう状況が多いので二重には書きたくありません。 if c = false then a = a + 10 else b = b + 10 end if のような書き方は効率が悪いので、もっと簡単な書き方がしたいのです。 どうかご教授お願いします。
>>213 1は
=DATE(YEAR(A1),MONTH(A1)+1,0)
翌月の0日目つまり今月の最終日
216 :
213 :2006/05/02(火) 12:03:49
>>215 ありがとうございます。考え方か、、、、単純なことなのに、、、
2番目も簡単にできるのだろうか??
>>214 >>3 ・7
Excelの操作に関係ないことは、例えExcelのVBAとして実行するとしてもスレ違い
>>217 そこをなんとかお願いします。
該当スレは荒れていて何も期待できない状態です。
ヒントだけでもいただければ非常に助かります。
219 :
名無しさん@そうだ選挙にいこう :2006/05/02(火) 12:23:12
VBAって何ですか?マクロのことですか?
220 :
名無しさん@そうだ選挙にいこう :2006/05/02(火) 12:23:32
>>220 そちらのスレで答えていただければ幸いです。
Yes,it is. じゃねえか?
Yes, It's. じゃねえか?
225 :
名無しさん@そうだ選挙にいこう :2006/05/02(火) 13:49:31
【1 OSの種類 .】 Windows** 【2 Excelのバージョン 】 Excel** 【3 VBAが使えるか .】 はい・いいえ 【4 VBAでの回答の可否】 可・否 【5 検索キーワード 】 Googleやヘルプでの検索キーワード =A1*B1、=A1*B2、=A1*B3、=A1*B4とA列だけ固定で、B列だけひとつづつ ずらすにはどうしたらよいですか?
>>225 列方向入力なら絶対参照と相対参照を使い分ければ良い。
そうでないなら具体的に。
227 :
名無しさん@そうだ選挙にいこう :2006/05/02(火) 14:04:06
こんにちは、パソコン初心者でデータ処理をしたいのですが。 【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 データを違うファイルからリンクするときは、 '[File名.xld]Sheet名'!セル でリンクできるのですが、 このFile名自体をリンクすることってできますか? うまく表現できませんが、File名とセルの値が一緒にしているので できたらすごく効率があがるのですが。 可能ですか? よろしくお願いします。
説明が意味不明で可能かどうかすらわからん。 つーか > 【2 Excelのバージョン 】 Excel って何よw そりゃExcelの何かなのはわかってるってばw
229 :
227 :2006/05/02(火) 14:50:52
>226 書き忘れです。すみません。Excel2003です。 File名のところを、入力するんじゃなくて、リンクしてもってきたいんです。 たとえば '[Name.xls]Sheet1'!$B$4 ってやるとNameってFileのSheet1のB4のセルへリンクしますよね? これを '[(Fileの名前の入ったセル).xls]Sheet1'!$B$4 みたいな参照がしたいんです。 説明下手ですみません・・・
231 :
213 :2006/05/02(火) 15:50:26
自己解決しました。参照セルが日付になってなかった、、、、
232 :
名無しさん@そうだ選挙にいこう :2006/05/02(火) 16:29:17
【1 OSの種類 .】 Windows 2000 【2 Excelのバージョン 】 Excel 2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 2つのエクセルファイル(A,B)を作成。 Aは、月別の得意先別、部門別ファイル Bは、Aを参照して作成する、部門別の得意先、月別のファイル。 Bのみ閲覧できるように、ファイルを移動する。 すると、Bをひらくたびに参照先を探すのですが、 これを参照しなくなるようにはできますか? 保護では無理でした。
233 :
名無しさん@そうだ選挙にいこう :2006/05/02(火) 17:26:23
>>232 例1)オプション/計算方法/手動で擬似的に
例2)ファイルB全体をコピー/値貼り付けで参照式をなくす
例3)ファイルAのシートを非表示にしてファイルBを移動しない
例4)etc.
234 :
名無しさん@そうだ選挙にいこう :2006/05/02(火) 17:45:36
コメントをよく使うのですが、行を挿入するといつの間にかコメントのボードが ペシャンコに潰れています。行を挿入してもつぶれないように設定できますでしょうか? あと、コメントの文字はデフォルトでサイズ9の太字になってますけど、設定で変える事はできますか? 宜しく指南お願いします。
235 :
名無しさん@そうだ選挙にいこう :2006/05/02(火) 19:51:40
>205 Aの値は別の式から得られた答えです。 VLOOKUPで名前を参照して値を導こうと思っていました。 説明へたくそですが、1日から31日まで1回出席すれば10はすぐに来ますが、 どの日にちでも10回超えればB欄へ値を出力できればと。 こんな説明ですがよろしいでしょうか?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 if 関数 A1が#N/Aでない場合、A1の内容をC1に入力する。 A1が#N/Aの場合、B1の内容をC1に入力する。 このような作業をしたいのです。よろしくお願いします。
C1に=IF(ISNA(A1),B1,A1)とすれば?
238 :
名無しさん@そうだ選挙にいこう :2006/05/02(火) 20:52:29
>>234 >行を挿入してもつぶれないように設定できますでしょうか?
コメントの外枠で右クリック→コメントの書式設定→プロパティ→「セルに〜サイズ変更しない」を選択
>コメントの文字はデフォルトでサイズ9の太字になってますけど、設定で変える事はできますか?
コメントの外枠で右クリック→コメントの書式設定→プロパティ→フォント
239 :
名無しさん@そうだ選挙にいこう :2006/05/02(火) 22:58:56
ここで質問するより、他のところの方が大人な対応&的確ですよ・・・ ここは人のあげあしを取るのが好きな人間ばっかりみたい。 所詮2ちゃんねるか。
↑脈絡の分からないコメント
>>239 あなたがそう思うなら、他の人のために、その他のところに案内してあげてもいいのでは?
ここに来てる人は、他のところを知らないから来てるのかもしれないし。
所詮2ちゃんねるはその通りだけど、あなたの何も実のない捨て台詞は、他の人以上に
2ちゃんねるに染まってるように思えますよ。
/ヽ /ヽ / ヽ / ヽ ______ / ヽ__/ ヽ | ____ / ::u:u::::::::::\ | | // \ :u:::::::::::::| | | | ● ● u::::u::::::::| なにこれ・・・・ | | .| u ::::u::u:::::::| | | | (__人__丿 ..u..:::::::u:::::::::::/ | |____ ヽ .....:::u:::::u:::::::::::::< └___/ ̄ ̄ :::::::::::::::::::::::::| |\ | :::::::::::::::::::::::| \ \ \___ ::::::::::::::::::::::::|
>>237 ありがとうございました
連休が明けたら試してみます。
244 :
名無しさん@そうだ選挙にいこう :2006/05/03(水) 00:16:54
別に、年が明けてから試してもらってもいいんだけどね。
245 :
名無しさん@そうだ選挙にいこう :2006/05/03(水) 00:49:52
。質問しづらいけど、一つお願いします。 範囲 A1:D10 のセルの数値が全て100なら、という条件式の書き方を教えてください。 = IF ( A1:D10 = 100 , ←これだとダメみたいなので
>>246 ヒント:配列数式か論理和かユーザー定義関数
>>1 ★1〜4に反してるので、
>>4 ━回答者の心得━に従い
ヒントのみで回答は伏せる
248 :
名無しさん@そうだ選挙にいこう :2006/05/03(水) 07:54:34
>>246 =IF(COUNTIF(A1:D10,"=100")=COUNT(A1:D10),
意味:100だけの個数と全部の個数が同じなら
ルールに縛られていないと安心できない人が意地悪するけど、
無視しとけばいいよ
でもテンプレがあった方が答えやすいのも確かな事なのでヨロシク
教えたがり厨の言い訳?
論理積使わずに論理和でやるんだ。すげーなwwwwww
251 :
名無しさん@そうだ選挙にいこう :2006/05/03(水) 08:49:16
抽象的な質問で申し訳ないが、良いコードってどういうコード? 悪いコードの例でもいいです。
252 :
名無しさん@そうだ選挙にいこう :2006/05/03(水) 09:17:53
そりゃ漏電してるコードだろ
253 :
名無しさん@そうだ選挙にいこう :2006/05/03(水) 09:22:46
>249こいつ、おもしれ 答えたくなけりゃ傍観しとけばいいのに
良いコード ・人間の目で見た可読性(読解性)と可視性(視認性)に優れている ・仕様変更や機能追加などがしやすい ・PCが高速で処理出来る ・人為的バグが皆無 ・例外処理が完璧 つまり人が読みやすく解りやすく、事後改変が楽で、処理が高速で、不都合が起きない物。 その為に具体的に何をすればいいのかはスレ違いなので自分で調べよう。 当然悪いコードはこの逆だが可読性と可視性は相反することが多いので バランスの良いところを自分で見つけるしかない。
255 :
名無しさん@そうだ選挙にいこう :2006/05/03(水) 10:04:48
>>251 悪いコード: やたらコメントの多いコード
良いコードはコメントなしでも読める。
>>254 可読性なんて人によってちがうんじゃない?
素人の可読性と玄人の可読性は大違いだと思う。
257 :
名無しさん@そうだ選挙にいこう :2006/05/03(水) 10:29:50
>>250 質問者ではないのですが、後学のため論理積でのやり方を教えてください
(論理積=AND,論理和=ORとの使い分けを覚えたいので)
>>257 250ではないがこういうこと?
=IF(AND(A1=100,A2=100,A3=100,A4=100,A5=100,A6=100,A7=100,A8=100,A9=100,A10=100),"オール100","オール100でない")
AND(A1=100,A2=100, ... ,D10=100)
別に
>>248 は論理和じゃないと思うけど。
260 :
258 :2006/05/03(水) 11:14:10
A10:D10だった…orz 30個までしか指定できないね この方法ではムリポ
入れ子できなかった?
262 :
257 :2006/05/03(水) 11:27:33
>>258-260 さん、ありがと
現在のイメージとしては、論理積は直接的で論理和は間接的かな
今から勉強します
追伸
>>246 さん、割り込んですみません
263 :
258 :2006/05/03(水) 11:30:06
264 :
名無しさん@そうだ選挙にいこう :2006/05/03(水) 12:00:16
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 『Activecell.NumberFormatLocal = String型変数 & "@"』 として、セルに書式を設定するマクロを使用しています。 この時に、上のString型変数に"h"や"m"や"g"などといった書式設定上意味を持つ文字列が入ることもあるのですが、この時にエラーが出てしまいます。 このような文字が変数に格納された場合に、文字列として扱わせる方法はありますでしょうか。
>>264 String型変数 = "m"
String型変数 = """" & String型変数 & """"
Range("a:a").NumberFormatLocal = String型変数 & "@"
1文字ならmやgの前に「!」を付けてもいいよ。
NumberFormatやFormat関数なら「!」じゃなくて「\」
267 :
264 :2006/05/03(水) 12:51:15
>>266 教えていただいた方法でできました。どうもありがとうございました!
268 :
名無しさん@そうだ選挙にいこう :2006/05/03(水) 18:14:17
すみません質問です 【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 セルに <10 と入力した場合 セルの表示は <10 のままで 0 と認識して欲しいのですが どうしたらいいでしょうか?
>>268 表示と値を別に持つことは出来るが、
それは表示形式として表示させたい値を入力する方法
セルに何かを入力しちゃったら、それが認識される値だ。
とりあえず <10 という表示で 0 と認識させたければ
セルに0と入力し、表示形式のユーザー定義を "<10" にすれば良い
それ以上のことは表計算ソフトであるExcelの範疇ではないのでよろしく
270 :
名無しさん@そうだ選挙にいこう :2006/05/03(水) 18:36:59
268です ありがとうございました
271 :
246 :2006/05/03(水) 20:32:09
全て100なら、という条件式 IF(COUNTIF(範囲, "=100")=COUNT(範囲) は、 100以外が一つでもあれば、IF(COUNTIF(範囲,"<>100") と書いて 真偽を逆にしたほうが、式が簡単になるということに気づいた。orz
272 :
246 :2006/05/03(水) 20:47:19
つまりこれが論理和より論理積という意味だったのか! orz orz
微妙に違う
まあ
>>250 の納得の仕方が何かヘンだったということで
275 :
名無しさん@そうだ選挙にいこう :2006/05/04(木) 01:14:53
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━ 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 単位、通貨とうとう セルの単位を円にできません。書式でないんですがどうすればいいんでしょう。
276 :
名無しさん@そうだ選挙にいこう :2006/05/04(木) 01:58:07
277 :
名無しさん@そうだ選挙にいこう :2006/05/04(木) 14:02:59
初心者ですみません教えて下さい ▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━ 【1 OSの種類 .】 Mac.OS-X 【2 Excelのバージョン 】 Excel2001 【3 VBAが使えるか .】 ?? 【4 VBAでの回答の可否】 【5 検索キーワード 】 セルの高さ、幅の単位の設定はどうしたら良いのですか? 現在幅10.00、高さ16.00と 表示をされていますが、 この表示ならば縦長にならないとおかしいと思うのですが、 見た目は普通と同じ様にセルは横長になっています。 書式→行(もしくは列)で設定を試みましたが、 単純に設定高さ(幅)を変更出来るだけなので根本的解決に なりません。 セルの高さ、幅の表示数値の変更並びに設定方法を どなたか分かる方、教えてください。 宜しくお願いします。
>▼行の高さ・列の幅の単位について >行の高さ:ポイント >列の幅:文字数 だそうな。
279 :
名無しさん@そうだ選挙にいこう :2006/05/04(木) 14:25:47
>>278 ありがとうございます。
でも少々??です。
もう少し具体的に教えて頂けたら、、、、助かります。
281 :
名無しさん@そうだ選挙にいこう :2006/05/04(木) 14:53:16
>>280 有り難うございました。
つまり2002以前では縦横の数値の単位を同一にするって事自体不可能
って事なんですね。事務所で使ってるXPに入っている2003では
センチ、ミリ他の単位が何であるか不明では有りますが同じ単位が
表示されていたのでセルを当然に正四角形にする事が出来ましたが
以前は無理だったんですね。こんな簡単な事が出来ないはず無いと
思ってムキになっていました(笑)
ありがとうございました。
282 :
名無しさん@そうだ選挙にいこう :2006/05/04(木) 14:55:14
簡単な方程式にあてはめれば出来ますよ。
283 :
名無しさん@そうだ選挙にいこう :2006/05/04(木) 14:56:49
オートシェーブで正方形作ってそれに合わせるとかね〜
284 :
名無しさん@そうだ選挙にいこう :2006/05/04(木) 15:00:30
幅1=8.714ピクセル 高1=1.333ピクセル
284は間違い そもそもピクセルは長さの単位じゃないから意味無いし
286 :
名無しさん@そうだ選挙にいこう :2006/05/04(木) 15:17:19
幅1=高6.573 は?
287 :
281 :2006/05/04(木) 17:46:14
結局正方形をスケールにして
>>283 さんに近い方法でやりました。
2003が使いやすかったので苦労しましたぁ。
みなさんありがとうございます。
288 :
名無しさん@そうだ選挙にいこう :2006/05/04(木) 20:06:19
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 Excel2003以前で作成したファイルを開いた状態でExcel2003で作成したファイルを開こうとすると やたら重くなり、開くまで1分ぐらいかかってしまいます。 しかし、Excel2003以前で作成したファイルを開いたまま、もうひとつExcelを起動させそちらのフォームで Excel2003で作成したファイルを開くと瞬時に開きます。 これってバグですか?
【1 OSの種類 .】 Windows 2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 多少 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 セル 塗りつぶし 色 などなど・・・ セルの塗りつぶしはデフォルトで黄色になっていますが、 これを別の色に変えることはできるのでしょうか? ツール → オプション → 色 にはそのような機能は見つかりませんでした。 よろしくおねがいします。
290 :
sage :2006/05/05(金) 03:57:41
291 :
名無しさん@そうだ選挙にいこう :2006/05/05(金) 10:55:10
>288 もっともっと、いろんなパターンでファイルを開いてから それでも分らなかったら質問しな。 >289 もっともっと、いろんな操作を試してから それでも分らなかったら質問しな、
>>289 セルを選択し
書式>セル>パターン
で変えられますよ。
>>291 おいクソ暇人、質問に答えるよりも長い煽りしてんじゃねえよ。
とっとと失せろ住人気取りのバカ粘着!
293 :
名無しさん@そうだ選挙にいこう :2006/05/05(金) 11:15:05
今日も今日とて家の中
連休ずっと家の中
一人ぼっちで家の中
ルール厨
>>292 ツライだろうけどガンバって
遅くなっちゃたけど、じゃあ行って来ます(^^♪
294 :
名無しさん@そうだ選挙にいこう :2006/05/05(金) 12:08:09
当方Mac 買おうと思ったらExcel 2004 古いですね。近々新しいジージョンがでるってお話はないんでしょうか
エクセルCSVフアイルのカンマを一括して全てのセルから外す方法を教えてください。 宜しくお願いします
298 :
名無しさん@そうだ選挙にいこう :2006/05/05(金) 16:28:50
> エクセルCSVフアイル そんなものはありません。Excelではcsvファイルも扱えますが、 csvファイルExcelのファイルではなく、単なる区切りテキストの一種でtsvやprnの仲間。 Excelでインポート出来るってだけで、関係ないファイルをExcelファイル扱いしないように。
300 :
296 :2006/05/05(金) 17:02:18
>>298 解決しました。ありがとうございました。
301 :
名無しさん@そうだ選挙にいこう :2006/05/05(金) 17:46:14
>>299 ボ、ボク、テンプレ通りに書いてくれないとわかんないんでつ
あらあら、お顔が真っ赤ですよ
304 :
名無しさん@そうだ選挙にいこう :2006/05/06(土) 01:00:40
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 会社のタイムシートで出勤時間と退社時間を入力すると 例えば 出10:00 退20:30 とするとなぜか拘束時間が10.50ってなってしまいます ちなみに式はこうなってました↓ =IF(OR(D10="",E10=""),"",(E10-D10)*24) どうすれば10.30ってでるようになりますか?
>>304 式から*24を削除、表示形式を[h]:mmに
306 :
名無しさん@そうだ選挙にいこう :2006/05/06(土) 01:44:38
307 :
名無しさん@そうだ選挙にいこう :2006/05/06(土) 02:15:17
小数点がある場合には表示して、無い場合には表示しないユーザー書式設定が知りたいです。
>>307 少数点以下のことだろうか?
標準ではダメなのかな。
#.#…
と表示させたい小数点以下第何位までかを指定するのはどーだろ?
>>308 ありがとうございます。
とすると式の答えに小数点以下が無い場合
20.
等と余計なコンマが入ってしまうのですが、これはしょうがないのですか?
>標準ではダメなのかな。
はい、"cm"や "端から"等と文章を付加したいもので。
>>308 申し訳ありません、説明が可笑しかったです。
標準では、小数点以下第2位まで表示してしまうのですが、
小数点以下は一桁にしたいので色々試行錯誤しています。
311 :
名無しさん@そうだ選挙にいこう :2006/05/06(土) 07:20:14
>>307-310 まずは「書式」をヘルプで検索しろ
いろんな表示方法があるから好きなのを使え
312 :
名無しさん@そうだ選挙にいこう :2006/05/06(土) 07:33:48
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-20 あたりの注意書きやQ&Aも読もう。
★4 質問テンプレは必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。
これを書かなかった場合は、以後まともな回答は付かないと思ってください。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。
「VBAって何?」って場合はとりあえず「否」に。よくわからないけど使ってみたいってなら
「可」にして、
>>10-15 あたりの解説を参考に使ってみよう。
313 :
名無しさん@そうだ選挙にいこう :2006/05/06(土) 09:06:52
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2000
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 折れ線グラフ,空白セル,プロット
折れ線グラフについて質問です。
グラフの元データのセルがIF関数の場合、
特定の条件を満たす要素をプロットしないことは可能でしょうか。
※テンプレ
>>9 の逆で、折れ線を切る
例えば、グラフの元データのセルの一つに
=IF(A1 > 0, A1, "")
のようなIF関数が入力されており、且つA1セル値が0以下の場合、
グラフに該当する要素をプロットしない方法です。
上の式の""の部分を、未入力セルへの参照にしたり、
駄目もとでFALSEを入れてみるなど試しましたが、
どうしてもグラフからは0として認識されてしまいます。
『未入力』を返す関数や定数が有ればと探してみましたが、
それも見つけられませんでした。
お分かりになる方、ご回答宜しくお願いいたします。
314 :
名無しさん@そうだ選挙にいこう :2006/05/06(土) 11:34:56
315 :
313 :2006/05/06(土) 12:05:55
>>314 レス有難うございます。
散布図も試しましたが、どうやら同じようです・・。
316 :
名無しさん@そうだ選挙にいこう :2006/05/06(土) 13:37:37
【1 OSの種類 .】 Windows 2000 【2 Excelのバージョン 】 Excel 2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 はい 状況:VBAを使って、ガントチャート(作業工程表)を作っています。各行に配置された 「作業開始」と「作業終了」セルを読み取り、カレンダー部分(画面の右半分)に図形 を描画します(長方形です)。各Shapeの名前は、作業の名前にしてあり、日付セルが変化すると イベントが発生し、該当部分のグラフが再描画される仕組みです。 質問:逆に、カレンダー内のこの図形を動かすことで、セルの値を変更したいのですが、 図形の大きさ(または配置)が変更されたときにイベントを発生させる方法は あるのでしょうか?想像するにWorksheets.Shapes.Changeのようなイベントです。 お分かりになる方、ご回答宜しくお願いいたします。 図形でなくても、他にもっと良い方法がある場合は、教えてください。
>>316 シェイプにイベントは無い。
図形関係でイベントがあるのはコントロールの方なので
これのイメージコントロールを使えば、お望みのことが出来るよ。
やり方はVBでのコントロールのサイズ変更と一緒。
あとはWeb上にサンプルもあるし、
>>3 ・7ってことなのでよろしく。
319 :
307 :2006/05/06(土) 16:45:44
【1 OSの種類 .】 Windows 2000
【2 Excelのバージョン 】 Excel 2002
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
数式の結果に、小数点以下が出る場合には表示し、無い場合には表示しない書式設定が知りたい。
#.#
0.0
の書式設定だと小数点以下が無い場合にもコンマだけ出てしまう。
なぜ標準を使わないかは、小数点第2位は要らないからです。
>>311 の方は勘違いされたみたいですが、文字列を加える書式などは知っています。
勿論HELPは見ましたし、ググってもみました。
こんな簡単なことが出来ないはずはなく、
私が大きな勘違いをしているを思うのですが、つっこんで下されば幸いです。
320 :
名無しさん@そうだ選挙にいこう :2006/05/06(土) 17:02:51
>>319 書式では[.]を消す事は出来ない
代替案として
・ROUND関数で四捨五入し書式を標準にする
(入力値でない場合)
・書式を[0.0]としあきらめる
(数値の誤認を防ぐためにもこの方法が良いと思う)
>>319 VBAでは出来るけど、表示形式設定では出来ない。
何度か同じ質問来てるので、これも
>>15-16 に加えた方がいいかもね。
322 :
名無しさん@そうだ選挙にいこう :2006/05/06(土) 17:40:41
>>233 ありがとうございます。
シートが30近くあるので、ちょっと大変そうです。
323 :
しろうと :2006/05/06(土) 23:45:58
【1 OSの種類 .】 Windows2000Pro 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい(少しだけ) 【4 VBAでの回答の可否】 どうしても無理なら可 セル結合した場合、その値を参照するには左上のセルを参照しなければならないようですが 既に大量のセル結合したデータがありしかもその結合されてるセルの数が固定でないのですが 指定したセルを含む結合の左上を参照する方法があるでしょうか? わかりにくいので例.A1からA5をセル結合していてC列にA列+B列の値を入れたいのですが C1の場合=(A1+B1)でOK、C2で=(A2+B2)とするとA2の値が0しかとれません。 このC2に=(*+B2)の*のところに自分を含む結合セルの値という意味の関数をいれたいのですが そのようなことができる関数はあるでしょうか?
>>323 意味が分からん
なぜC2には=$A$1+B2ではだめなのか?
わざわざ=A2+B2にする理由がないのではないか。
325 :
しろうと :2006/05/07(日) 00:21:14
>324さん 説明不足ですみません $で対応するとなると結合したセルの数だけ手打ちが生じますが データが先にできてしまっていてその結合したセルの数は膨大なのです。 だから関数で1個うまくつくってそれを下に引っ張ってコピーしたいのです。
>>323 Function TraceMerge(arg1 As Range)
TraceMerge = arg1.MergeArea(1)
End Function
して
=TraceMerge(A1)+B1
のような感じで、あとは必要な処理を追加して
327 :
名無しさん@そうだ選挙にいこう :2006/05/07(日) 00:29:50
>>323 >結合されてるセルの数が固定でないのですが
一定でないなら無理
なにか規則性を見つけ多いパターンで式を作って残りを修正するか
セル結合を解除してデータを整理する:後の事考えるとこれがいいんじゃね
328 :
234 :2006/05/07(日) 15:36:06
>>238 返事が遅くなってすみません。
ありがとうございました。
329 :
しろうと :2006/05/07(日) 16:04:35
>323です >326さんの言われるようにやってみたのですが、マクロ関数?を貼り付けた後に 参照している値を変えても計算結果が反映されないようです 計算方法を手動にしたら先頭のセルだけに値が反映されました 再計算実行してみても同じのようです 自動計算か、せめて手動計算でも再計算操作「F9」で値が反映されるやりかたないでしょうか? 質問ばかりですみません >327さんの言われるように規則性があればなんとかなるんですけどね・・
>>323 表計算と関係ないレイアウトに凝りすぎて、後の手間を面倒くさくしてる例だねぇ。
俺が担当者だったら、後のことも考えて改修するところだけど。
関係者が無知だと、見かけにこだわってばかりで話にならないこともあるし。
がんばってくだされ。
331 :
名無しさん@そうだ選挙にいこう :2006/05/07(日) 16:52:55
シート0、1、2、3・・・とあり、 シート1のA1のセルにシート0のB1 シート2のA1のセルにシート0のC1 シート3のA1のセルにシート0のD1といったように入力をしていきたいのですが、 自動入力の方法はありますでしょうか?
>>331 > 自動入力の方法はありますでしょうか?
うん、あるよ。
VBAでシートのインデックスと参照カラムを関連付けて
ループで一発。
あとは
>>4 ☆
333 :
名無しさん@そうだ選挙にいこう :2006/05/07(日) 19:55:02
Excel 2004 を買おうかと思ってるんですが 下記の様のものをつくれるのか知りたいてす。作れるんでしょうか? 【枠内に配置されてる不規則な三つに数字の奇数偶数を判別して並び通りに表す】 A[1,5,2] B[12.3.21] ↓ A[奇数-奇数-偶数] B[偶数-奇数-奇数] 【1〜9はAとして、10から19はB、20〜29はCとして表す】 A[1,5,2] B[12.3.21] ↓ A[A-A-A] B[B-A-C] 【AB数字の出現回数と回数毎の色づけ】 A[1,5,2] B[2.4.5] ↓ 現時点での出現回数(一回は黒、二回は赤、三回は青と色彩で回数を表示) 1→1回 2→2回 3→0回 4→1回 5→2回
>>333 2004はMac版で、俺はMac持ってないので
とりあえずExcel97、2000、2002、2003の話だが全て可能だ。
335 :
名無しさん@そうだ選挙にいこう :2006/05/07(日) 22:37:37
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 出来れば否 シート1に社員の住所、氏名などの(10項目ほど)データが作ってあって、 一人づつに違う番号が振ってあり、全員で50前後データがあります。 シート2にシート1の項目に合った名簿のテンプレがあり、 10人分表示できるようになっていて、番号を入力すると シート1で同じ番号が振ってある社員のデータが 表示されるようになっているのですが、シート1で辞めた社員のデータを 新入社員のデータに上書き保存したのに、シート2では既に無い 辞めた社員のデータが表示されてしまいます。 何でこんな事になってしまったのか分からないのですが、とても困ってます。 何か解決方法はないでしょうか?よろしくお願いします。
336 :
名無しさん@そうだ選挙にいこう :2006/05/07(日) 22:51:31
>>335 ドコからリンク貼ってるのか見れば良いじゃん
違うとこからとってるんだろ
別のブックを参照してるならありそうだけどな。 同じ番号に別人のデータを上書きしたのに、ってことですか? 番号も変えたってことですか? 本当に辞めた社員のデータが表示されていますか? その場合、そのセルの式はどうなってますか?
338 :
335 :2006/05/07(日) 23:11:44
レスありがとうございます。
>>336 社員のデータがあるシートは、データベースという名前になっていて
それを参照するようにテンプレでは関数を組んであります。
>>337 >同じ番号に別人のデータを上書きしたのに、ってことですか?
番号は変更無しで、社員データだけ変わったという感じです。
辞めた社員というのは事故で亡くなってしまった人なので間違いありません。
住所とか、健康診断の日付とか、結構頻繁に変える事が多いのですが、
たぶん2年くらいちゃんと表示されてました。
セルの式は事務所のPCなんで、今分かりませんorz
明日事務所に行ったら、何処をよく調べると良いですか?
再計算してなかったりして
340 :
名無しさん@そうだ選挙にいこう :2006/05/08(月) 00:30:17
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-20 あたりの注意書きやQ&Aも読もう。
★4 質問テンプレは必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。
これを書かなかった場合は、以後まともな回答は付かないと思ってください。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。
「VBAって何?」って場合はとりあえず「否」に。よくわからないけど使ってみたいってなら
「可」にして、
>>10-15 あたりの解説を参考に使ってみよう。
341 :
名無しさん@そうだ選挙にいこう :2006/05/08(月) 00:33:26
自動計算がとめてあるシートをもらったのですが戻すのがわかりません。 これを元の自動計算ができるようにするのと、 自動計算を切る方法を詳しい方教えていただけますでしょうか。 よろしくお願いします。
342 :
名無しさん@そうだ選挙にいこう :2006/05/08(月) 00:35:12
>341ですが windowsXP excel2000 VBA使えません。 VBA 否 検索キーワード 自動計算 よろしくです。
>>341 [ツール]→[オプション]→[計算方法]タブ
345 :
名無しさん@そうだ選挙にいこう :2006/05/08(月) 01:43:52
>>344 自動計算の件、わかりました。
助かります、ありがとうございました。
346 :
名無しさん@そうだ選挙にいこう :2006/05/08(月) 02:48:03
この質問に答えられる方いらっしゃいますか? 今、手元に約100万行挿入されているテキストがあるのですが これを外部データの取り込み→データーの取り込みでワークシート上に読み込もうとしています。 読み込めたのですが、100万行は読み込めませんでした。最大で6万5千行くらいでした。 100万行を全てワークシート上へ読み込むためにはどうすればよいでしょうか? 外部データ取り込みを15回程度すれば約100万行読み込むことは可能なのですが 最初の行は0から6万5千行まで、次のシートは6万5千行から13万行、次のシートは13万行から19万5千行 みたいな感じで読み込むことはできますか?テキストウィザードで何行目から読み込むかを設定できるのですが 最大3万5千行までからしか読み込むことができません。 良い方法無いでしょうか?
>>346 全部自動化したいんだったらVBAで小分けにして取り込むしかないかなあ。
つーか、その作業が頻繁にあるならまだしも、1回ならテキストエディタからコピペすればいいじゃん。 テキストエディタで 1) 行ジャンプ→65001行 2) Shift + Ctrl + Home 3) 切り取り(Ctrl + X) Excelで 1) シート移動(Ctrl + PgDw) 2) 張り付け(Ctrl + V) 1回の作業が、キー操作に慣れてる人なら5秒、そうでなければ10秒としても 16回やって2〜3分。毎日何度もこの作業をやるんじゃ、煩わしいことこの上ないが 1度だけなら掲示板に質問して回答を待つより遙かに早く目的を達成できる。 もしテキストが1列データではなく列区切りのあるものならテキストエディタではなくCSVエディタでも使えばいい。
>>320-321 ゴールデン・ウィークでPCを起動する暇がありませんで、お礼が遅くなりました。
ありがとうございました、疑問が解決しました。
出来ないと言うことが分かったので他の方法を探してみます。
350 :
名無しさん@そうだ選挙にいこう :2006/05/08(月) 11:13:56
>>346 ネタだよね。
エクセルをバックエンドとして使う気じゃないよね。
まあExcelで扱うべきデータじゃないわな
352 :
名無しさん@そうだ選挙にいこう :2006/05/08(月) 12:33:13
時間を計算したいのですが、48時間表記。 なぜか[h]:mmとしても1900/1/1 2:00などと裏で変わっているようで、計算が出来ない、、 どうすればよろしいでしょうか? excel2003 WINXPです。
>>352 > 裏で変わっているよう
裏で変わるも何も、Excelの日時データはシリアル値という値で管理されてる。
整数部が年月日、小数部が時分秒。
時刻だけ入力しても、そこには日付概念も付いてくるし、逆に日付だけ入力した場合も然り。
そのことを踏まえて計算すればよろし。
354 :
名無しさん@そうだ選挙にいこう :2006/05/08(月) 14:31:56
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 できれば否 単純にSUM関数で足し算をしたいだけなのですが、 なんだかおかしいんです。 例えばA1のセルに「=SUM(A2:A5)」と入れると、 A1のセルにはそのまま「=SUM(A2:A5)」と表示され、 A2からA5のセルに何を入れても反応しません。 どのような原因が考えられますでしょうか。
オプションの表示の数式にチェックが入っている
>>354 [ツール]-[「オプション]の「表示」の「数式」にチェックが入ってたら外すと治るよ
357 :
354 :2006/05/08(月) 14:57:31
「ツール」→「オプション」→「表示」→「ウィンドウオプション」の 「数式」ですよね? チェックは入ってないです・・・。
じゃ[セルの書式][表示形式]が文字列になってんじゃね?
359 :
354 :2006/05/08(月) 16:19:17
それでした・・・ありがとうございます!
360 :
346 :2006/05/08(月) 16:40:57
皆さんありがとうございます。
私が行いたいことはサーバーからその100万行内のデーター1行1行を
アクセスがある度、読み込みphpファイルに書き込みしようとしていたのですがレスポンスアウトに
なってしまったので分割してやろうと思っていたのです。
特にタブなどは入っていないので
>>348 さんのやり方でやらせていただきます。
私はWindowsのコマンドを勉強した方が良さそうですね。。
私はドラッグで囲んで切り取りシート貼り付けみたいな感じで
やってたので結構時間かかったんですよね。
この作業は何度も行いますので
>>348 さんの作業をUWSCで自動化してみます。
ありがとうございました。
361 :
名無しさん@そうだ選挙にいこう :2006/05/08(月) 16:46:14
1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 初歩的な事なのですが、いつも悩んでいるので、、、、 IF関数でたとえば条件が複数ある場合 例 B5セルが1または5または23またはABDの時C5セルは問題なしと表示 わからないんです。 ,で区切ったり、and、+いろいろやったけど、最後は同じ関数でつなげてしまう、、、、それだと長い、、、、 教えてください。
>>361 ヘルプで論理関数を調べよう
又は:OR
>>361 C5セルに
=IF(OR(B5=1,B5=5,B5=23,B5="ABD"),"問題なし","条件に当てはまらなかった時の処理")
1 OSの種類 .】 Windows 98 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 不可 計算機で200を12で割って6を掛ければ答えは99.999999… となるはずですがエクセル上で =(200/12)*6 という式を入れれば 四捨五入されて"100"という答えになってしまいます。 ROUNDDOWNを使いたいので非常に困っています。 どのような式ならば四捨五入を回避できるのでしょうか。
365 :
名無しさん@そうだ選挙にいこう :2006/05/08(月) 19:45:34
>>364 >ROUNDDOWNを使いたいので非常に困っています
質問する前にROUNDDOWNを使かってみろ
ところでその計算には有効桁は存在しないのか?
366 :
名無しさん@そうだ選挙にいこう :2006/05/08(月) 20:06:27
なんのためにAccessがあるのか…
367 :
名無しさん@そうだ選挙にいこう :2006/05/08(月) 20:13:02
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 不可 セルを選択したときに、その列と行に薄い色をつけることはできますか? たとえば、F15を選択しているときは、F列と15行が全部薄く色が付くような・・・ 大きい表を作っていると正しいセルに入力しているか不安になるので。。 方法があれば教えてください
368 :
名無しさん@そうだ選挙にいこう :2006/05/08(月) 20:17:03
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 バブルチャート バブルチャートを作成したのですが データラベルを表示することができません。 どうしたらいいのでしょうか? A列 B列 C列 D列 さる 5000 0.8 24 いぬ 6000 1.2 13 きじ 2000 5.4 34 X軸がB列、Y軸がC列、バブルサイズがD列のとき、 各バブルにA列のラベルを付けたいのです。
369 :
名無しさん@そうだ選挙にいこう :2006/05/08(月) 20:45:14
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 否 【4 VBAでの回答の可否】 可 すみません教えてください。 ある列があり、その範囲の中に当てはまる文字がいくつあるかというのはどうすればいいのでしょうか? =COUNTIF(C8:C38,OR("佐藤","大島","伊藤","木島","金田")) これではうまくいかない、、、、 頼みます。
370 :
check :2006/05/08(月) 21:03:17
Excelのバージョン:[2000] OS Windows2000 エクセルの日付の表示形式をH15.03.06にするように ユーザー定義にてgee.mm.ddで作成入力しました。 そのセルをダブルクリックすると2003/3/6となります。 もしくは、そのセルを選択すると、数式バーには同様に 2003/3/6と表示されます。 これは、、仕方のない現象なのでしょうか? それとも、、そのままの表示形式にはならないのでしょうか? いろいろと検索いたしましたが、ヒットしませんでした。
>>369 =COUNTIF(C8:C38,"佐藤")+COUNTIF(C8:C38,"伊藤")+COUNTIF(C8:C38,"木島")+COUNTIF(C8:C38,"金田")
372 :
369 :2006/05/08(月) 21:14:02
>>371 やっぱそのめんどうな方法しかないのでしょうか、、、
選択肢が多いと、、、、、
374 :
名無しさん@そうだ選挙にいこう :2006/05/08(月) 21:25:16
11:30を11.5hourのように表示したいのですけど、無理でしょうか?
>>374 A1に11:30とあったとすると
=HOUR(A1)+MINUTE(A1)/60 & "hour"
と別セルに入れて表示するのは?
377 :
374 :2006/05/08(月) 21:54:55
375>> それだと24:00以上だとできないないような? 37:30を37.5hにしたいのです。
=A1*24 だな
379 :
374 :2006/05/08(月) 22:15:08
378 繰り上がってしまう、、、
>それだと24:00以上だとできないないような? 374にはそんなことは書いてないが?
381 :
374 :2006/05/08(月) 22:18:23
ごめんなさい書式設定し忘れてた、、、 できました。ありがとう。
382 :
名無しさん@そうだ選挙にいこう :2006/05/08(月) 22:34:36
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 日付が今までは2006/5/15みたく表示されていたのに、なぜか 2006 5 15みたいにしか表示されません。 セルの書式設定の日付の選択肢の中も、スラッシュが抜けています。 一体全体どうしたことでしょうか?
383 :
名無しさん@そうだ選挙にいこう :2006/05/08(月) 22:52:08
>>382 なんと言う事でしょう!
それは匠の業が、こんな所にも発揮されていました
384 :
check :2006/05/08(月) 22:52:21
370さんへ 文字列はやってみました。 編集するときに西暦に直すとわかりづらいのです。
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 不可 【5 検索キーワード 】 エクセル 保存 ブックを開き、何も変更せず閉じようとすると、保存のダイアログが出てくるのですが、 いったい何が原因なんでしょうか?
ファイルが97形式であるなどの理由で再計算が生じている
388 :
名無しさん@そうだ選挙にいこう :2006/05/09(火) 01:40:22
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel97 【3 VBAが使えるか .】 いいえ =IF(I17="1",(IF(OR(E18<=M17,E19<=M17,E21<=M17,E22<=M17,E23<=M17),-H17*$M$10,"")),"") の、 OR(E18<=M17,E19<=M17,E21<=M17,E22<=M17,E23<=M17) の部分を もっと簡潔に記述する方法はないでしょうか? よろしくお願いいたします. 自分、VBAはわかんないです ><
>>389 MIN(E18,E19,E21,E22,E23)<=M17
>>382 フォントが壊れてるとか?違うフォントでも駄目?
>>386 そのブック内になんか再計算する関数式とかあるんじゃないの?
=today()とかそれ系。
393 :
389 :2006/05/09(火) 08:47:13
>>390 >
>>389 > MIN(E18,E19,E21,E22,E23)<=M17
レスありがとうございます。
でも、それだと、
[時系列に順番に比較して条件合致したら返す]
ということにならないんです。 ><
つまり、
E(n)には順番に毎日のデータが入ってきて、
それが E(n)<=M17 の条件を満たしたら
その日 に-H17*$M$10を表示する。
というようにしなければならないんです。
しかし、
> MIN(E18,E19,E21,E22,E23)<=M17
だと、一番小さいE(n)との比較になってしまいます。
例えば、E19がE23より大きい値であっても、
E18からひとつずつ順番に参照して、 E19<=M17 を満たしたら-H17*$M$10を表示する。
というようにしなければならないんです。
すみません、まだよろしくお願いいたします。
>>393 言ってることわかりません。
「時系列に順番に比較」を言うなら、元のOR()は、与えられた条件を全部評価して、
「一つでも真になるものがあれば真を返してる」だけ。順番は関係しません。
あなたの説明不足でなければ、何か誤解してるんじゃないかと思う。整理してみてください。
395 :
389 :2006/05/09(火) 10:19:36
>>394 わかりにくくてすみません。
やりたいことは、
あるモノの購入価格と、その後毎日変動する価格とを比較して、
その後の価格(n)<=購入価格
E(n)<=M17
になったらその場で売って精算、
ということなのです。
これでわかりますでしょうか・・・
ORじゃだめだろそれ?
397 :
389 :2006/05/09(火) 10:27:47
>>396 そ、そうですね・・・
未熟なんで、思いつくやり方がそれしかなかったんで
そもそもORを使うのは正しくないとは思っていたんですが
他に思いつかなくて・・・ ><;
しかし、時系列に比較しても売るのは今以降しかないわけで 時系列に比較する意味自体が無いのかもしれない。
399 :
名無しさん@そうだ選挙にいこう :2006/05/09(火) 10:47:26
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい(初心者) 【4 VBAでの回答の可否】 可 日付の入ったセル(例えば2006/5/1)からその月の最終日(例の場合31)を取得する方法を教えて下さい。 くだらない質問で申し訳ありません。
>>399 ワークシート関数か VBA 関数かわからないんで、考え方だけ。
「翌月の1日(例えば2006/6/1)」を求めて、そこから1日引く。
401 :
名無しさん@そうだ選挙にいこう :2006/05/09(火) 11:36:45
>>400 なるほど、できました。ありがとうございます!
402 :
名無しさん@そうだ選挙にいこう :2006/05/09(火) 12:54:06
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 イメージなんですが、A(1+x)みたいに参照先を変える事は出来ないでしょうか?
403 :
名無しさん@そうだ選挙にいこう :2006/05/09(火) 13:10:29
404 :
389 :2006/05/09(火) 13:23:10
お世話になります。 結局、IF関数のネストというやつで対応しました。 =IF(I19="1", (IF(E20<=F19-H19,-H19*$M$10, IF(E21<=F19-H19,-H19*$M$10, IF(E22<=F19-H19,-H19*$M$10, IF(E23<=F19-H19,-H19*$M$10, IF(E24<=F19-H19,-H19*$M$10, "未売却") ) ) ) ) ),"") しかし、今は、E20〜E25 までが参照対象なので いいのですが、 今後、E20〜E300とか参照する必要がある場合、 どんどんIF文をだらだら追加しなければなりません。 今後そうなりそうなので困っております。 お知恵を頂けると幸いです。 m(_ _)m
>>404 IFはそんなにたくさんネストできないからね
VBA覚えたほうが早いと思う
407 :
389 :2006/05/09(火) 14:23:09
408 :
名無しさん@そうだ選挙にいこう :2006/05/09(火) 14:28:06
>>398 VBAを使わないのであれば、一発で出そうとせず
別の列に=Fn-Hnを計算し、それを判別する。
409 :
名無しさん@そうだ選挙にいこう :2006/05/09(火) 16:43:52
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか 】いいえ 【4 VBAでの回答の可否】 いいえ あああ いいい いいい ううう ううう ううう えええ 上記のようなデータがあるとして、 数値が変わる境目で罫線を引いて見やすくしたいのですが どうすればよいのでしょう。 (上記のデータならば1.3.6.7行目に) 宜しくお願いいたします。
>>404 というか、「どこ」に「なに」を表示したいの?
「あるセル」(固定)に「売るべき日」を表示したいのか
「売るべき日のセル」(可変)に「ここで売れ」と表示したいのか
とかさっぱりわからん
>>409 列全体を選択して条件付き書式
数式で=NOT(A1=A2)
書式で下罫線を選択
412 :
名無しさん@そうだ選挙にいこう :2006/05/09(火) 16:51:20
>>409 本スレでおなじみの「条件付書式」でどうぞ
413 :
409 :2006/05/09(火) 17:02:35
ありがとうございました! 解決致しました!
414 :
389 :2006/05/09(火) 18:24:07
415 :
名無しさん@そうだ選挙にいこう :2006/05/09(火) 20:21:43
設計w
416 :
名無しさん@そうだ選挙にいこう :2006/05/09(火) 20:48:29
Excelでグラフの書式ってコピー&ペーストすることはできないのでしょうか? 複数のグラフを作成するときに、一番最初に作ったグラフに設定した書式をコピーして 使いまわせたらなと思うのですが。 Excelのバージョンは2003です。 VBAでの回答は不可でお願いします。
417 :
名無しさん@そうだ選挙にいこう :2006/05/09(火) 20:59:24
Excelで行が700行ぐらいある表があります。 1行にひとつの商品についての品番コードや単価などが入力されています。 その表が2つあり、一つは旧リストで、もうひとつは新リストです。 旧リストと新リストとで、品番を基準に、どの項目(列)が内容が変更になっているか調べたりするのには どの関数を使って、どうやって調べるのがいいでしょうか? アドバイスお願いします。 例) 品番 品名 区分 ラベル 単価 量 重さ 1 675498 ○○○ AB8976 001 45.67 300 1300 2 3 〜 700 といった感じです。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excel 関数 照合
418 :
名無しさん@そうだ選挙にいこう :2006/05/09(火) 21:04:47
ちょっと前に同じ質問があったね なにかの問題なの?
>387 >392 再計算が必要な関数は使ってないんですけどねぇ.... 一度ワークシート内を全部検索してみます。 ありがとうございました。
>>416 グラフのユーザー定義のあたりを調べてごらん。
書式(?)を登録できるよ。
421 :
416 :2006/05/09(火) 21:16:21
>>420 ありがとうございます(・∀・) !!確認してみます。
422 :
416 :2006/05/09(火) 22:05:02
>>420 すみません・・・
やっぱりユーザ定義では、書式は登録できませんでした。
わたしのいうところの書式とは、グラフの種類だけでなく、円錐を使った場合は、その角度や
グラブの棒やプロットエリアに設定した色やグラデーションもすべて含めてもしくは
エリアごとに分けてでも、書式のコピー&ペーストができないものかというつもりでした。
コピー、ペーストは知らんが そのグラフをデフォルトにしてグラフを作り続ければ良いんでないの?
>>416 確かグラフをコピーして、貼り付け先のグラフを選択して、
編集-形式を選択して貼り付けだかで、「形式」(だったかな?)とか選ぶとコピーできなかったっけな?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 文字列操作 日付/時刻 月│日│時│分│秒│月/日 時:分:秒│ 4 │13│.1..│.0.│.0..│ 4/13 1:00:00 │ 5 │ 3│13│33│45│ 5/3 13:33:45 │ 月 日 時 分 秒 の数値をそれぞれセルに入力して、最後のセルで 「月/日 時:分:秒」と表示させる方法があったら教えて下さい。
427 :
416 :2006/05/10(水) 01:13:05
何度もすみません・・・
ユーザー定義のところで書式も(色やグラデーションも)一緒に登録できました・・・。
>>423 きっとユーザー定義のところことを仰ってるんですよね。
>>424 わたしのやり方が間違っていたのかもしれませんが、試してみたら、形式を選択して貼り付け
みたいな感じのは出ませんでした。
どうもご迷惑おかけしました。
>>417 VLOOKUPあたりで出来る。
調べた結果をどう表示したいのか書いてないが、
関数でってことは別シートにでも出すつもりなんだろうから。
429 :
名無しさん@そうだ選挙にいこう :2006/05/10(水) 11:24:38
>>425 最後のセルのデータ形式はどうするの?文字orシリアル値(連続番号)
文字なら =A&"/"&B&" "&C&":"&D&":"&E
シリアル値なら
>>426
「折り返して全体を表示する」 を設定すると、入力画面上ではセル内の文字が全て表示される。 ところがプレビュー画面では確認できても、これを印刷すると切れてしまう。 プレビュー画面で表示されたのに印刷すると切れてしまう文字を 正しく印刷させるためには、 ・セルの高さ、幅を変更するときの「←|→」の「|」の上でクリック すると正しく印刷するようにセルの高さ(あるいは幅)を自動調整してくれる。 しかしこれだとセルのサイズがフルに大きくされてしまい、レイアウト的に 希望と違うものとなってしまう。 セル内で改行したいときは ・改行したい行の最後の文字の後で「alt-Enter」する ってのは知っているんだけど、これだといちいち改行設定しなければならず また微妙に数文字分サイズを変更したいときには、再び全行で設定 しなおさなければならず、きわめて非効率である。 そこで質問ですが、セル内に自由に文章を記入し、セルサイズをユーザーの 希望で設定し、そしてセル内の文章を自動で折り返し表示させ、切れることなく 印刷するにはどうすればよいでしょうか? またセル内で行間を開けて(行間サイズを設定して)表示する方法は無いですか? (「alt-Enter space」では無くて)
>>430 無いよ。wordとかでやってね。Excelは印刷駄目なんだよ。
>>431 どうもです。
やっぱり無いですか?原稿がEXCELで入るので、コピペミスを出さないように
そのままEXCELで使いたかったんですが・・・
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 テキスト text 出力 ファイル 1行 エクセルのセル内のデータを1行ごとに結合してテキスト形式に出力を行いたいのですがうまくいきません。 上記のキーワードで検索をかけて作成した構文を以下のように作成したのですが実際にはファイル保存の ダイアログを出すことなく自動で上書き保存をかけたいのです。どのようにすればよいでしょうか? Dim xlAPP As Application ' Applicationオブジェクト Dim intFF As Integer ' FreeFile値 ChDir "A:\" ' Applicationオブジェクト取得 Set xlAPP = Application ' 「名前を付けて保存」のフォームでファイル名の指定を受ける xlAPP.StatusBar = "出力するファイル名を指定して下さい。" ファイル名 = xlAPP.GetSaveAsFilename(InitialFileName:="A:\フロッピーに保存する名前", _ FileFilter:=””, Title:=テキストファイル処理) ' FreeFile値の取得(以降この値で入出力する) intFF = FreeFile Open ファイル名 For Output As #intFF Print #intFF, ”結合された文字列” Close #intFF
>>433 Sub Test()
Set fs = CreateObject("scripting.filesystemobject")
Set f1 = fs.createtextfile("A:\ファイル名.txt")
f1.writeline "結合したデータ"
f1.Close
End Sub
でいいんでない?
現在エクセル2003を使用しているのですが「OR倫理演算子」の使用方法がわかりません。 ワークシート関数では使い方がわかるのですが、VBAのモジュール内での使用方法が不明です。 グーグルなどで調べてみたのですが使用例なども載っているところがなく困っております。 どなたかわかるかたおられますでしょうか?
>>435 ヘルプは見ましたか?
たとえばこんな感じ
If A = A' Or B = B' Then
C = C'
End If
>>435 わかるけど
>>3 ・7ね。
OR演算子の仕様はVB準規だから。
というか、ExcelVBAではなくVBの解説探せば腐るほど見つかるわけだが。
倫理だお
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 4点q0=(8,0,0),q1=(0,5,0),q2=(10,10,0),q3=(6,0,0) を制御点とする3次のベジェ曲線、Bスプライン曲線を それぞれ作図したいのですが、どのようにすれば正しく作図できるでしょうか? エクセルを使って2次(zが0なので)のグラフを作成したのですが。 それと、パラメータtを少なくとも0.1刻みで変化させて曲線をプロットする、 という条件もあるのですが…。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 \ 表示形式 金額 条件付き書式 計算後の合計金額を各桁ごとに振り分けて表示しているのですが、 わからなくなってしまいました。 桁は各セルに百万、拾万、万、千、百、十、一とあり、 セルJ20に出た合計金額から、 以下のような式を入れて、 それぞれの桁のセルに該当数値を入れています。 (これは万の位です) =ROUNDDOWN(RIGHT(J20,5)/10000,0) ここまではうまくいったのですが、 金額の合計額が2万円ならば、 拾万のセルに¥マークを、 3千円ならば万のセルに¥マークを付ける事は可能でしょうか? if文を使うような気もしますが、 どう指定していいかがわかりません・・・ それから、同じく該当桁に数値が入らない場合、0を表示させたくないのですが、 これも可能でしょうか? (現在は一番上の百万の位のみ、 表示形式をユーザー指定#で表示しないようにしてますが、 他の桁は0と表示する場合もありますので、手動で0を消しています。) 長くなりましたが、よろしくお願いします。
441 :
名無しさん@そうだ選挙にいこう :2006/05/10(水) 21:32:42
>>440 lenで文字数をカウントしてそれ以下なら\を入力でいいんじゃないの
=if(len(j20)>5,MID(RIGHT(j20,5),1,1),"\")
>>440 最大で¥記号を含めて8文字として
=MID(REPT(" ",7-LEN($J$20))&"¥"&$J$20,ほげ,1)
「ほげ」の部分は何文字目かを指定する
443 :
名無しさん@そうだ選挙にいこう :2006/05/11(木) 10:05:32
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 ○○○*2 ○は任意の式だと理解して下さい、絶対参照にしてあります。 この式の"×2"の数字の"2"を増分2ずつ横にコピーしたいのですが 何か良い方法がありますか? 縦にもコピーしたいのですが 縦の場合には"×2"を任意のセル記号に変えて( 例えばGG2 ) コピーし 置換処理でセル記号を"×"に戻してやればいいかなと思っています。
>>443 理解するのメンドウ、完成形の例題書いて!
それとセル記号って何?
現在文字列置き換えの関数「Replace」を使用して置き換えをしているのですが、どうやらこの関数は VB6基準では使えるのですがVB5では使用できないみたいなのです。 そこで過去のエクセルのVBAのバージョンの一覧の様なものが載っているサイトなど知っていれば お教えください。「VBA バージョン エクセル 」等で検索はしたものの該当のサイトは検索できませんでした。 検索方法がだめなのかもなのですが・・・。
446 :
443 :2006/05/11(木) 11:08:15
>>444 失礼しました。
( ○○*2 )*( ○○*2 )
↑この式を横方向に
( ○○*2 )*( ○○*2 ) ( ○○*4 )*( ○○*4 ) ( ○○*6 )*( ○○*6 ) ( ○○*8 )*( ○○*8 )
↑こうなるように増分2でコピーしたいのですが
通常はオートフィルでは"*2"等は数値が増えてくれませんよね。
これをどうにか出来ないかな?と思いまして
>>443 増分1の別のセルを参照*2するのはどう?
449 :
名無しさん@そうだ選挙にいこう :2006/05/11(木) 11:42:07
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 できれば否 セルA1には数式が入っており,他のセルの値によって 数値(例:1,0.85など)又は,エラー値(#NUM!)が返ってきます. で,エラー値が返ってきたときにはセルA1の値を"0"にしたいのですが, if文を使って, =if("数式"=#NUM!,0,"数式") とやってみたのですが,うまくいきません. どのようにしたらよいのでしょうか.
452 :
名無しさん@そうだ選挙にいこう :2006/05/11(木) 12:39:10
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 lotus1-2-3のファイルをエクセルで開きたいのですが、 状況としては、拡張子が 「.123」→エクセルで開けない 「.wk4]→エクセルで開ける 拡張子が「.123」のファイルをエクセルで開く方法はありますか?
>>452 OpenOfficeで開けるみたいだからOpenOfficeで開いてExcelで開ける形式で保存し直すとか
454 :
名無しさん@そうだ選挙にいこう :2006/05/11(木) 13:46:06
>>453 できました!! ありがとうございます!!
455 :
名無しさん@そうだ選挙にいこう :2006/05/11(木) 14:14:21
例えばA1のセルに開始時間として18:00、A2のセルに終了時間として19:30 この開始から終了までのの時間数を計算して A3のセルに表示したいんですが、1:30ではなく1.5と表示したいんです。 つまり6分=0.1、30分=0.5、1時間なら1という感じで表示されるように 計算したいんですがどうすればいいでしょうか? ウィンドウズXPホームエディション マイクロソフトエクセル?よくわからないんですが2年くらい前のだと思います すいませんVBAというのがよくわからないので もしわかるかたがいたら
456 :
預言者 :2006/05/11(木) 14:19:31
時待たずしてルール信者がやってくるであろう
457 :
名無しさん@そうだ選挙にいこう :2006/05/11(木) 14:22:50
455ですルールがよくわからないので質問おかしかったらすいません、 VBAはよくわからないので否でお願いします。
458 :
448 :2006/05/11(木) 14:24:22
>>455 A3=(A2-A1)*24
表示形式を標準に
>>455 A3の表示形式を数値とかにして
=(A2-A1)/"1:00"
でいいんじゃね?
>>455 =HOUR(A2-A1)+MINUTE(A2-A1)/60
でもいける
462 :
名無しさん@そうだ選挙にいこう :2006/05/11(木) 14:34:46
459さんありがとうございます 試してみたんですが0:00になってしまいます・・・
463 :
名無しさん@そうだ選挙にいこう :2006/05/11(木) 14:36:36
459さんありがとうございました。 表示形式標準にしたらできました 459,460,461さんどうもありがとうございました。
464 :
名無しさん@そうだ選挙にいこう :2006/05/11(木) 14:49:13
455です、度々すいません 例えば21:00から翌日6:00でその間を同じように計算すると 9とでてほしいところが-15とでてしまいます。 0:00をまたいでしまうからでしょうか? これもうまくできるようだったら教えて下さい。 よろしくお願いします。
24時間以上を扱わないなら =MOD(1+A2-A1,1)*24
466 :
名無しさん@そうだ選挙にいこう :2006/05/11(木) 15:13:39
465さんありがとうございます。 今職場のみんなで感激してます。 ありがとうございました!!
467 :
おっかしいなー :2006/05/11(木) 15:27:53
「Do Until〜Loop」のなかにもうひとつ「Do Until〜Loop」を入れても動くと思ったんですが、 Do Until Do Until Loop Loop Do-LoopのなかにDo-Loopがあると内側のDo-Loopがスルーされるなんてことないですか? Excel2000です。
コード示せ
Untilの条件式が最初からTrueなら当然無視される。 これは内側(2つ目)も外側(1つ目)も関係ない当然の動作。 そうでなければ無視されない。
470 :
467 :2006/05/11(木) 16:07:41
>>468-469 ありがとん。
コード膨大なのでいくつからわけても数十回書き込みしないといけないみたい。
印刷してにらめっこしてみます。
解決しなかったらコート゛縮めてもいちど質問します。
マクロ解除、シート保護解除で sheet("基本")のRange("E51")に おまけ:base64->txt 2回 YTJWcGMybHVlbUZwYlhWemFYTmhiZz09==== これを漢字で −−−−−−−−−−−−−−−−−−−−−−−−−− 知人が書いていたモノですが、 全く意味が解りません。 解説おながいします
ここ最近PC不良で先ほどやっと復活しました。いろいろとご指導ありがとうございました。 >>マクロ解除、シート保護解除でsheet("基本")のRange("E51")に EXCELのメニューが非表示となっておりマクロ解除の項目が出てきませんでした。 >>おまけ:base64->txt 2回YTJWcGMybHVlbUZwYlhWemFYTmhiZz09====これを漢字で もう少し解りやすくお願いいたします。m(_ _)m
koko de kiku?
474 :
名無しさん@そうだ選挙にいこう :2006/05/11(木) 17:20:44
>>471-472 知人に解説して貰ってください。
連絡取れないとか教えてくれないとか後付けの苦しい言い訳はしないように。
他の人も簡単な質問だからといって、嬉々として答えないように。
聞くべき相手と場というのはわきまえてもらわにゃならんからな。
475 :
440 :2006/05/11(木) 17:43:22
返事遅くなってすみません。
早速回答していただいた
>>441 さん、
>>442 さんありがとうございました。
いろいろ試してみた結果、
>>442 さんの式を使わせていただきました。
最初合計金額の消費税の切り捨てをしてなくて、
変な数値になってしまいましたが、
それを直したら、綺麗に完成できました!
今回はありがとうございました。
476 :
名無しさん@そうだ選挙にいこう :2006/05/11(木) 18:52:48
>>474 勝手に仕切るなよ馬鹿。
答えたい人間が答えるのは勝手だろ。
477 :
名無しさん@そうだ選挙にいこう :2006/05/11(木) 19:06:14
>>476 =471-472
自己防衛のつもりか
>知人が書いていたモノですが
他人のデータパクってんじゃないの
>476,477 雑談スレからのコピペに熱くなるなよ ただのマルチか、それを装ったモノマネ厨だよ
480 :
名無しさん@そうだ選挙にいこう :2006/05/11(木) 23:30:47
入力規則のリストを使ったセルにリスト以外の文字を打つ方法ってありますか?
482 :
名無しさん@そうだ選挙にいこう :2006/05/11(木) 23:47:25
>481 ありがとうー
483 :
425 :2006/05/12(金) 00:44:00
>>426 >>429 どもども。
実用にはちょっと改良(?)が必要なんですが、参考になりました。
ありがとうございました。
484 :
名無しさん@そうだ選挙にいこう :2006/05/12(金) 11:34:36
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 単純な質問なのですが、たとえば複数の関数を使って値を表示させたいのですが どうすればよいのでしょうか? &を使うと値が2個つながって出てしまうし、+だと#valueと出ます。 単純に式を2つつなげたいだけです。よろしくお願いします。
&" "& ではだめなのか?
486 :
名無しさん@そうだ選挙にいこう :2006/05/12(金) 11:38:24
>>484 式を2つつなげたいの意味が分からん。
足し算がしたいのか?
490 :
484 :2006/05/12(金) 12:26:12
ごめんなさい。自己解決。 if関数で条件分岐させました。 よろしければもう一つ。 データの入力規則で新規に値が入力された場合、自動的にリストに追加させることは 出来ないでしょうか?
491 :
名無しさん@そうだ選挙にいこう :2006/05/12(金) 13:37:56
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 すみません何もないとき何もしないは IF("",""でわかるのですが ある場合は IF(d10=not(""), でしょうか? 条件付き書式に入力したいのですがうまく動かない。
>>491 何をしたいのか意味がわからん、日本語で質問してくれ
493 :
名無しさん@そうだ選挙にいこう :2006/05/12(金) 13:57:06
>>491 =IF(D10<>"","正","誤")
494 :
名無しさん@そうだ選挙にいこう :2006/05/12(金) 13:59:58
変数のデータ型定義で教えてください。自然数のおっきい数字なんですが、 Integerでも足りず、Longでもまだまだ足りません。 国家予算よりも大きい数百兆円のような桁の数字なんですが、どう定義したら オーバーフローしないでしょうか? 小数点以下はありません。負の数字もありません。正の整数のおっきい数字です。 よろしくお願いします。
495 :
494 :2006/05/12(金) 14:11:48
自己解決しました。Variantっていうのにしたらエラーなくなりました。
496 :
491 :2006/05/12(金) 17:13:58
すみません。わかりずらくて。 こういう事をしたいのですが頭がこんがらがって、、、、 条件付き書式でセルの色を変えます。 1.条件はC列に何も入力されていない場合は何もしない 2.C列に入力されていたらここのセルに値が入力されていない場合色をつけるというのです。 ただし、条件付き書式はすでに2つ使ってありますので1つだけしか使えない。 よろしくお願いします。
497 :
491 :2006/05/12(金) 17:27:47
今までは2個使って動かしていたのですが、 他の条件が増え1つしか使えなくなったのです、、、
>>496 その条件を普通に条件式にしましょう。
条件付き書式1つで充分ですから。
499 :
名無しさん@そうだ選挙にいこう :2006/05/12(金) 17:43:08
>>496 わかりずらいと言って行間を空けるのはチョットね!
ISBLANK,NOT等の関数を調べてみてはどうですか
>>496 「C列に入力されていたら」と「ここのセルに値が入力されていない場合」で
ANDを使えばいい
501 :
484 :2006/05/12(金) 21:23:35
やはり追加では回答がないですか。 データの入力規則で新規に値が入力された場合、自動的にリストに追加させることは 出来ないでしょうか? という質問でしたがvbaしかないのかなぁ??
502 :
491 :2006/05/12(金) 21:25:03
500さん ありがとうです!! できました。でも、論理的にさっぱり・・・・orz
>>501 VBAしか無いけど、VBAなら過去ログに回答あるので必要なら自分で漁れ
504 :
501 :2006/05/12(金) 22:51:34
漁ってみたが、見つからない。 ヒントだけでもお願いします。 このスレッドにないのであれば探せませんが、、、
過去ログなんだからこのスレじゃないでしょ。 このスレ内だったら「スレ内検索しろ」で終わるし。 ちなみにhtml化されてない過去ログは、●もってないなら にくちゃんねるとかで見れるから。 つまり ヒント:にくちゃんねる ってとこか。 専ブラのログ検索やWebブラのページ検索使えば全て1〜1000まで 全て読み返す必要なんて無いんだからあとは自分で探そうね。
506 :
ありんこ :2006/05/12(金) 23:59:56
ピボットテーブルでマイナス数値とプラス数値のデータ集計ってどうやったらできるか誰かご存じないですか?
>>490 範囲を大きめに取っておけば?
データが重複の場合はリストに含めないとかならややこしいけれど。
VBAならこんな感じか?
Private Sub Worksheet_Change(ByVal Target As Range)
Range("A1:A25").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
"c30:c55 "), Unique:=True
End Sub
A1:A25が入力エリア
C30:C55が入力規則のリストの参照エリア
508 :
名無しさん@そうだ選挙にいこう :2006/05/13(土) 11:26:15
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 否 【4 VBAでの回答の可否】 可 ファイル名をあるセルが変更されたらダイアログを出して保存させたいのですが うまくいかないのです。 A7セルの値が変更されたらファイル名をA7&(O3)とし ダイアログを表示させたいのですが、できない お願いします。
509 :
名無しさん@そうだ選挙にいこう :2006/05/13(土) 11:57:55
>>508 自分では何もせずあわよくばVBAコードを書いてもらい楽しよう
って考え、オレ好きだよ。でわどうぞ、、、
Sub ExcelDialogSaveAs(FirstPath As String, SaveType As Integer)
Application.Dialogs(xlDialogSaveAs).Show(FirstPath, SaveType)
If ActiveWorkbook.Saved = False Then
ActiveWorkbook.Save
End If
ActiveWorkbook.Close
End Sub
Showメソッドの構文は「Show(arg1, arg2, ..., arg30)で、
引数arg(n)に値を設定して初期表示される内容を変更して。
510 :
508 :2006/05/13(土) 12:30:57
>>509 ごめんなさい。せっかく書いてもらったのですが良くわからない。。。
私は
If Target.Address(0, 0) = "A7" And Target.Text <> ""
Then ActiveWorkbook.SaveAs Filename:=Target.Text & "()"
を
Dim fname As Variant
If Target.Address(0, 0) = "A7" And Target.Text <> "" Then
fname = Target.Text & "( )"
Application.Dialogs(xlDialogSaveAs).Show
とか変えてみたのですが、だめみたい、、、
変更お願いします。
511 :
名無しさん@そうだ選挙にいこう :2006/05/13(土) 12:49:41
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ(vbaでないと無理?) 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 罫線 format cells |A |B│/|/│赤│ | ←/は斜め罫線 |A │B│/ |/│赤| │ |A │B│/│/│赤│ │ ←赤はセルの色 | | ←結合化セル | A |B|/|/|赤 | | という表の入力値を |A |B│/|/│赤│ | という見出しを作り差分が合ったところを知りたいのですが 関数では値のみしかチェックできない? 斜め罫線やセルの色もチェックしたいのです。また途中に何も入力されてない結合化セルがあります。 ほぼ、上記セルと一緒なのでコピーで出来るはずなのですが、先日おかしい値があったと、、、、 3人でチェックしたのですが見つからない?? 嫌がらせ?それなので完璧マクロで発見しようと思ったわけです。 長文、および愚痴すみません。 よろしくお願いします。
512 :
511 :2006/05/13(土) 12:51:12
|A |B│/|/│赤│ | ←/は斜め罫線 |A │B│/ |/│赤| │ |A │B│/│/│赤│ │ ←赤はセルの色 | | ←結合化セル | A |B|/|/|赤 | | こうです。へたくそすみません。
513 :
名無しさん@そうだ選挙にいこう :2006/05/13(土) 13:05:31
>>511 意味不明
>関数では値のみしかチェックできない?
そんなことはない
514 :
名無しさん@そうだ選挙にいこう :2006/05/13(土) 13:50:25
>>511 きちんと質問の形になった日本語で書かないと意味が分からんよ。
差分て何と何の差分?差分が合うって?
「結合化セル」じゃなくて「結合セル」と言った方がいいね。
「先日おかしい値があったと、、、、」省略せずに最後まで書いて下さい。
「嫌がらせ?」ってどういう意味?誰かに嫌がらせされたって事?
「完璧マクロ」って、自分で意味分かってる?
515 :
511 :2006/05/13(土) 18:38:51
わかりずらくすみません。 単純に 先のような表があり たとえば10の行を切り取ります。 その切り取った列を参考に11行〜下の列を較べていくのです。 それで違っているところをどうにか表示したいのです。 内容はセルの値、罫線、セルの色です。フォントの色、種類は問いません。 ただし空白セルは飛ばします。 以上です。
516 :
508 :2006/05/13(土) 19:03:55
If Target.Address(0, 0) = "A7" And Target.Text <> "" Then ActiveWorkbook.SaveAs Filename:=Target.Text & "()" にくっつけて Dim fname As Variant If Target.Address(0, 0) = "A7" And Target.Text <> "" Then fname = Target.Text & "( )" Application.Dialogs(xlDialogSaveAs).Show ファイル保存のダイアログいまだに悩んでおります。 だれかうまく動かしてください。 下の方に変えると保存名は()だけになってしまう。 どうすれば??
fname = Range("A7").Text & "( )" Application.Dialogs(xlDialogSaveAs).Show fname
518 :
508 :2006/05/13(土) 19:43:11
ありがとうございます。 ただ寸前の差で出来てしまった。少し違うけど。 ありがとうございました。
519 :
名無しさん@そうだ選挙にいこう :2006/05/13(土) 20:39:20
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 否 【4 VBAでの回答の可否】 可 A列である値があったらその行のR列の値を足していって トータールの値を出したいのですがどうすれば? vlookup?find?countif?
>>515 以下のマクロを入力して
=GetXXX(知りたいセル)
とすればそのセルの斜め罫線と色の情報が文字列で読み出せる
その文字列を比較すればOK
続く
Function GetXXX(a As Range) Dim s As String Dim c As Range Dim i As Variant Dim r(1) As Integer r(0) = xlDiagonalDown r(1) = xlDiagonalUp s = "" For Each c In a s = s & "*" For Each i In r s = s & "(" With c.Borders(i) s = s & Hex$(.Color) s = s & "," & .Weight s = s & "," & .LineStyle End With s = s & ")" Next s = s & "(" With c.Interior s = s & Hex$(.Color) s = s & "," & .Pattern End With s = s & ")" Next GetXXX = s End Function
523 :
名無しさん@そうだ選挙にいこう :2006/05/13(土) 21:52:00
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 マクロの記録程度なら・・・ 【4 VBAでの回答の可否】 複雑なものは不可 同じ内容のシートが32有ります。 シート名が、 マスター、1日、2日、3日・・・・31日となっております。 何とかして、年度は、2006。月は5のように指定する事で、 1日〜31日シートのA1セルに2006/5/1〜2006/5/31を入れたい。 年度と月の指定は別のシートを使用しても、ユーザーフォームでも良いと思いますが、 ユーザーフォームに入力した値をVBAで取得する方法も難しいです。 知恵をかしてください!
>>523 別のシートに書いた年月を参照していいなら、ワークシート関数のDATEだけで済みます
525 :
523 :2006/05/13(土) 22:24:31
早速の回答、有難うございます! 今日明日位で努力してみます。 分からなかったら再質問します。 ヨロシクお願い致します!
セルに一日しか入れさせたくないのですがどうすればいいのでしょう。 dayを他の日にちにするとエラー表示させたいのですが。 入力規則でしたいのですが文がどうすればいいのかさっぱりです。 not(day(1))とかやってみたのですがよく仕組みがわかりません。 よろしくです。
Excel以前に表計算というものを理解してない悪寒
529 :
名無しさん@そうだ選挙にいこう :2006/05/14(日) 05:17:10
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 ブックの中に張り巡らせた数式を、一発で数字(値)に直すやり方はありませんか? ブックはたくさんあり、しかもページも多く、一ページごとに無効化するのは結構大変です。 リンク貼ったまま提出すると不都合なんです。
VBA否なら、「コピー→張り付け(値)」が一番速い方法。 操作を自動化する手段があるのに、それを自ら拒否してるんだから大変なのは仕方ないな。
>>530 THX
VBA以外に方法はなしか。敷居高いなぁ。
エクセルはなんとなく使えてここまで来たけど、VBAは、どこらへんから手をつけていいか分からない。
ちゃんと習ういい機会かもしれん
532 :
名無しさん@そうだ選挙にいこう :2006/05/14(日) 08:50:18
>529 シート全体を選んで値張り付けがそんなに大変なのかな 仕事の段取りしだいだと思うが、
533 :
名無しさん@そうだ選挙にいこう :2006/05/14(日) 11:45:54
コントロールボタンでつまづいています。 For i = 1 To 6 With Controls("CommandButton" & i) .Caption = KoumokuMeishou End With Next i 「subまたはfunctionが定義されていません」でControlsのところが黄色くなります。 機能させるにはどうしたらよいのでしょうか? よろしくお願いします。
534 :
名無しさん@そうだ選挙にいこう :2006/05/14(日) 12:58:46
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 ヘッダーに書いてある内容を同じファイル内の全てのシートにリンクさせる事はできますか? 何処か一箇所を変えると他も一緒に変わってくれると大変助かるのですが・・・ セル内でのやり方はわかるのですがヘッダーで同じ事もできるのでは?と思いまして。 よろしくお願いします。
535 :
名無しさん@そうだ選挙にいこう :2006/05/14(日) 13:05:32
>>529 Ctrl+A,Ctrl+C,Alt+E,S,Vをブック×シート数だけ繰り返せばいいだけだから
大変といっても高がしれてるような気がするけど。
この部分だけでも「マクロの記録」で登録してもいいしね。
536 :
d :2006/05/14(日) 13:22:20
>>533 >With Controls("CommandButton" & i)
With Me.Controls("CommandButton" & i)
でいかがでしょうか。^^
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 15日経過する事に荷物一つにつき200円プラスして 荷物の出し入れも考えれるコインロッカーみたいな計算式を作りたいんですがうまくできません IF関数とか使えばいいんですかね? よろしくお願いします。
539 :
名無しさん@そうだ選挙にいこう :2006/05/14(日) 14:07:49
>>538 えっと。。。具体的にお願いできますか?
無知ですみません・・
?? 経過日数を15で割って小数点以下切捨てして200かけるだけじゃ駄目なのか?
542 :
名無しさん@そうだ選挙にいこう :2006/05/14(日) 14:34:55
>>540 そうゆうことですか!
ありがとうございます 無事解決しました。
>>530 >>532 >>535 どうもです、いつか 必ずやってくるであろうと思っていた、「VBAを勉強する日」は、実は今日だったようです。
ちょっといじってみるか・・・のつもりが、意外に面白く、特に急ぎでもない仕事を遠回りしながら徹夜しました。
「初めてで、参考書も何もなしで、ここまでやるとは、自分の才能が怖(ry」などとは微塵も思ってないけど、
マクロをほんの少し触れたのが嬉しかったです。
仕事自体のペースはサッパリですが。
で、そのページって全部で130ページもあるんですよ。コレを毎月繰り返すくらいなら、リンク貼った意味が無い・・と。
その作業はVBAでも単純作業の繰り返しだから、全然別なマクロ作ってましたけどね。なんか面白くなってきたから。
もう、ど素人なもんで、マクロ名のリネームの仕方が分からなかったり、エラーが出ても原因など分からずまた作り直したりと、
もう無茶苦茶です。
オートSAMとか使えない(基本中の基本なんだろうけど、使わなくてもあまり困らない気がする)
くせにVBA使おうとしてるのが滑稽で・・・
徹夜のヘンなテンションで長々と書きましたが、読まれないなら、最後に一言だけ読んでもらえたら幸いです。
VBAをやるキッカケ作ってもらって、ありがとうございました。寝よう。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 少しだけ 【4 VBAでの回答の可否】 出来れば否 【5 検索キーワード 】 参照 抽出 挿入 契約書、請求書、内訳書等をそれぞれ別のシートに分け、入力用のシート(仮に「入力」シートとします)のデータが、それぞれのシートに反映されるようにしています。 データは三ヶ月ごとに、変更のあった箇所に追加されます。 こちらのFAQにあった通り、INDIRECT関数を使って、行を削除・挿入しても参照するセルが変わらないようには出来ました。 しかしさらに、セルが空白の時は何も表示させないようにすることになり、IF関数を使って見たのですが、今度は参照するセルがずれるようになってしまいました。 作った式は下記の通り。 IF(入力!A1="","",INDIRECT("A1") どこをいじれば、参照するセルをずらさないように出来るでしょうか。 どなたかご教授ください。
常に A1 を参照させたいのだったら、$A$1 にすればよい。 意味はヘルプで「絶対参照」を検索。
>>544 はじめのA1と後のA1が同じものを指してほしいなら両方ともINDIRECTにするかしないか統一すれ
547 :
544 :2006/05/14(日) 17:15:25
>>545 >>546 レスありがとうございました。
絶対参照は挑戦していたので、546さんの方法で試したら、解決しました。
本当にありがとうございました!
548 :
533 :2006/05/14(日) 18:09:04
>>536 ありがとうございます。
しかし今度はメソッド、データメンバが見当たりませんとでてしまいました。
そのコントロールボタンは何に属してるの?
550 :
名無しさん@そうだ選挙にいこう :2006/05/14(日) 20:48:50
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 単純なことなのかもしれませんが教えてください。 例)A1からA100までに数字が並んでいる。 その中から100以上の数値だけ抜き出して その合計をA101に出したい。 この場合はどんな関数を使ったらいいのでしょうか?
>>550 1) B列に論理式で100以上の値を出し、B列範囲の合計をA101に出す
2) 配列数式で論理式の返した値をSUM
配列数式使えないなら1、作業列使いたくないなら2
配列数式使えないけど作業列使いたくないなら、配列数式の使い方を勉強して2
=SUMIF(A1:A100,">=100",A1:A100)
554 :
名無しさん@そうだ選挙にいこう :2006/05/14(日) 21:13:22
>551-553 ありがとうございました!
555 :
名無しさん@そうだ選挙にいこう :2006/05/14(日) 21:14:26
>551 ガンバ
このコードを簡潔な形に書き換えるとどうなるか,教えてください。 if(x>0)or(x<-2))and(x^2<1)then cells(1,1).value="Yes" end if
557 :
556 :2006/05/14(日) 21:32:55
間違えました、こっちです。 if((x>0) or (x<-2)) and (x^2<1) then cells(1,1).value="Yes" end if
if x>0 or x<1 then cells(1,1).value="Yes" end if
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 VBを少しだけいじった程度です 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 データ 並び替え ランダム シャッフル C2 田中 C3 鈴木 C4 佐藤 C5 太田 のように、ある列に何名かの名前が入っているとします。 このデータをランダムに並び替える方法を教えていただけないでしょうか? 目的は、このメンバーの座席表の並び替えです。 別シートに座席表が作ってあって、この名前を参照しています。 データを並び替えることで、席替えをしたいのです。 どうかよろしくお願いいたします。
>>559 RANDで値を振ってそれをキーに並べ替え
561 :
名無しさん@そうだ選挙にいこう :2006/05/15(月) 07:27:42
VBAでメールソフトを起動させメール作成したり送受信できますか?
562 :
511 :2006/05/15(月) 14:05:44
>>513 >関数では値のみしかチェックできない?
そんなことはない
罫線やセルの色の関数みつかりません。教えてください。
cellでもそのようなパラメータみつからない。
お客様まことに残念ですが 罫線やセル色の関数だけがありません
564 :
511 :2006/05/15(月) 15:33:06
ってことはやはりvbaか、、、、、、 522のやつやってみたけど動かないんです、、、orz
565 :
名無しさん@そうだ選挙にいこう :2006/05/15(月) 17:08:04
>>561 できるよ。メーラーがOfficeOutlookなら更に簡単。
566 :
511 :2006/05/15(月) 17:32:55
ごめんなさい出来ました。
>>521 ,522 ありがとうございました。
【1 OSの種類 .】 Windows XP PS2 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 少々 【4 VBAでの回答の可否】 可 例えば、Range("A1") = Int(9 * Rnd + 1)として 1から9までの乱数を発生させたいのですが、 いったんExcelを終了して、再度起動すると同じ ローテーションで乱数が発生します。 毎回ランダムな順番で乱数を発生させるには どうすればいいでしょうか? よろしくお願いします。 srandみたいにしたいんです。
568 :
名無しさん@そうだ選挙にいこう :2006/05/15(月) 17:51:52
WindowsXPのPS2ならおれも欲しい
569 :
567 :2006/05/15(月) 17:54:41
PS2→SP2 です。 PS3が欲しいです。
>>567 引数でローテーションが代わるので、現在の時刻とかをいれてやればいい
Rnd(Now)みたいに
571 :
名無しさん@そうだ選挙にいこう :2006/05/15(月) 17:58:27
572 :
567 :2006/05/15(月) 18:01:52
>>570 >>571 ありがとうございます。
Randomizeを1行入れたら解決しました。
ども。
VBにもRandomizeってあったのか N88を思い出す・・・
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 ちょっと 【4 VBAでの回答の可否】 少可 【5 検索キーワード 】 Excel 連勝数 白星 黒星 例えば○=勝 ×=負として その日の勝敗を入力していくものとします。 例: ○×○○○×××○○・・・・ (右が新しいデータとします) で現在の連勝数(この場合2)をカウントすることができるでしょうか? ○と×以外には「休み」もあります、休みは連勝数を遮らない条件とします。
575 :
561 :2006/05/15(月) 20:18:38
>>565 そうなんですか!
ありがとうございます
576 :
名無しさん@そうだ選挙にいこう :2006/05/15(月) 20:32:11
A B C D E F G H I J K 1 勝敗 ○ ○ × ○ 休 ○ ○ ○ × ○ 2 連勝 1 2 0 1 1 2 3 4 0 1 3 現在の連勝 1 B2 =IF(B1<>"×",SUM(A2,IF(B1="○",1,0)),) C2 =LOOKUP(2222,2:2)
577 :
名無しさん@そうだ選挙にいこう :2006/05/15(月) 20:33:07
↑ずれてしまってすみません
578 :
名無しさん@そうだ選挙にいこう :2006/05/15(月) 20:36:57
1行目に○×データがあるとして A2:=IF(A1="○",1,0) B2:=IF(B1="×",0,IF(B1="休み",A2,A2+IF(B1="○",1,0))) C2:B2をコピー
579 :
名無しさん@そうだ選挙にいこう :2006/05/15(月) 20:46:14
VBAプログラミングで無限ループに入っちゃったようなのですが、このままEXCEL2000を 強制終了するとまだ保存していないコードが消えてしまいます。 今回保存するの忘れてました。 orz 強制終了しないでコードを保存するにはどうすればいいですか?
コード実行の強制停止をすれば良い。
>>1 ★1〜4を無視してるので、こっちも具体的な方法は教えないでおく。
空気読めず嬉々として教える子が出てくるかもしれんが。
581 :
名無しさん@そうだ選挙にいこう :2006/05/15(月) 23:02:40
★★ ルール命君のご登場 ★★
582 :
名無しさん@そうだ選挙にいこう :2006/05/15(月) 23:04:28
escキー押しっぱなしだっけ?
>>581 お前もなんのかんの言ってルール気にしてるんだなw
584 :
名無しさん@そうだ選挙にいこう :2006/05/15(月) 23:07:25
↑意味不明
586 :
名無しさん@そうだ選挙にいこう :2006/05/15(月) 23:20:58
>>580 みたいに教えないと言いつつ教えてる人って
「俺本当は詳しく知ってるんだよ。知らない訳じゃ無いんだよ」
ってアピールしたいんだろうなあ。
可愛いね(´・ω・`)
回答は質問者の方を向いてしろ。みっともねえ。
588 :
名無しさん@そうだ選挙にいこう :2006/05/16(火) 00:22:25
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 VBA 再計算 例として ・セルA1に"1"と入力したらセルB2に"リボン"と表示させるようにしたいと思っております。 セルB2にIF関数を埋め込む方法でなく セルA1に"1"を入力した直後にマクロが起動し、 マクロプログラムによって"リボン"を記述したいと思っております。 このセルA1への入力がトリガーとなるような仕組みを作りたいのですが なかなかヒントがつかめません。 どうかお知恵を拝借したいと思います。 よろしくお願いします。
>>588 Worksheet_Changeイベントを使用する
590 :
名無しさん@そうだ選挙にいこう :2006/05/16(火) 00:50:09
>>589 まさにこれです。
思い通りの動作を実現することができました。
本当にありがとうございます。
586
592 :
574 :2006/05/16(火) 09:37:17
576,578さん、ありがとうございました。
593 :
名無しさん@そうだ選挙にいこう :2006/05/16(火) 14:52:10
エクセル2003 ウィンXPです。 VBAで以下の様に記述しました。 Range("G16").Select ActiveCell.FormulaR1C1 = "=IF(F16="","",SUM(start:end!F62))" G16のセルに =IF(F16="","",SUM(start:end!F62)) と入力される予定だったのですが実際には、 =IF('F16'=",",SUM(start:end!'F62')) の様に不可解な’が入ります。 どうしたもんでしょうか?
FormulaでなくFormulaR1C1じゃなきゃだめ?
>>593 ダブルクォーテーションを更にダブルクォーテーションで括る
596 :
593 :2006/05/16(火) 15:31:06
FormulaR1C1の件は、マクロの記録からコードを書いたので・・・。 結果が同じであれば何でも良いです。 ダブルクォーテーションを更にダブルクォーテーションで括るとは、 Range("G16").Select ActiveCell.FormulaR1C1 = ""=IF(F16="","",SUM(start:end!F62))"" と言う事でしょうか? そうすると「構文エラーです」と表示されてフォントが赤くなります。 関数の計算式をVBAでセルに入力するのに特殊な記述法が有るのでしょうか?
>>593 Range("G16").Select
ActiveCell.Formula = "=IF(F16="""""","""""",SUM(start:end!F62))"
他に方法があるのかしれないが、私はしらん...
598 :
593 :2006/05/16(火) 16:25:02
>597 有難うございます! 何だか分からんが出来ました。 どういう理由でエラーが出ていたのでしょうか? 他のセルにも様々な関数、計算式を入力する様にして有ります。 まったく同じ様式では無いので原因を教えて頂けると自己解決できそうです。
式として入力する"は"""と記述すると覚えておけばいいのでは? なんで?と聞かれてもそういうもんだとしか答えられない 詳しくはMSに聞いとくれ
600 :
593 :2006/05/16(火) 17:35:22
Range("C6").Select ActiveCell.FormulaR1C1 = "=SUM(start:end!B52)" ""の無い上記の場合ではB52の部分が'でかこわれます。 何らかの法則が有るようですので、色々と""で囲ってみましたが・・・。
601 :
名無しさん@そうだ選挙にいこう :2006/05/16(火) 20:09:21
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】
投資系の板から流れてきますた。
現在、エクセルで「価格帯別出来高チャート」を作っています。
http://www7a.biglobe.ne.jp/~sarasa-buu/dekidaka.html ↑
こんなふうに値段の横に同価格帯の累積出来高を表示させたいとトライ
しているのですが・・・
A B C
1日付 出来高 終値
2○○ ○○○ ○○
3○○ ○○○ ○○
・○○ ○○○ ○○
・
・
↑
上記のようにシートを用意してグラフを作ってみたのですが、
値段の折れ線はキチンと表示出来るのですが、横に表示させる
棒グラフが上手く出来ません。
横の棒グラフは行番号に相当する位置にしか表示出来なくて困ってます。
値段と関連付けて累積棒グラフにするにはどうしたらいいのでしょうか。
どうやらSIRIES関数を使うらしいまでは漕ぎつけたのですが、
使い方が分かりません。
どなたかご教授をお願いしますm(_ _)m
602 :
名無しさん@そうだ選挙にいこう :2006/05/16(火) 20:51:36
エクセルで連絡網みたいなものを作るにはどうしたらよいでしょうか?
604 :
名無しさん@そうだ選挙にいこう :2006/05/16(火) 22:32:48
>>601 価格別の出来高を別セルに作れば良いじゃん
605 :
名無しさん@そうだ選挙にいこう :2006/05/16(火) 22:43:17
>>604 さま
助け舟ありがとうございます。
出来高価格
1008254.8
513254.5
270254.6
367255.1
174255.6
118255.7
191255.3
304255.1
123255.2
174255.1
287254.8
438254.5
184254.6
95254.7
250254.8
117254.8
186254.9
109255.0
135255.1
79254.8
88254.7
こんな感じの5分足データ(かなり長いです)なんですけど、別セルで
どんな関数使えばよろしいのでしょうか?
606 :
名無しさん@そうだ選挙にいこう :2006/05/16(火) 22:47:50
あ、くっついちゃいましたすみません。 右から小数点第一桁含む200台の数字が価格ですm(_ _)m
607 :
名無しさん@そうだ選挙にいこう :2006/05/16(火) 23:18:36
出来高をA1:A10 価格をb1:b10 として c1:c10に価格を250.0から251.0として入力 d1に =SUM(IF($B$1:$B$10=$C1,$A$1:$A$10) って入力してcrtl+shift+enter でd1下に引っ張る
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 関数 オートフィル VLOOKUPで(F5,A3:B21,2,0)を入力、これを下にオートフィルでコピーしていくと (F6,A4:B22,2,0)(F7,A5:B23,2,0)・・・と検索値、範囲がズレていきますが、 範囲はズラさずに、検索値だけズラすといったことは可能でしょうか よろしくお願いします
>>608 絶対参照($つける)か範囲に名前をつける
>>609 できました!
ありがとうございました。
611 :
名無しさん@そうだ選挙にいこう :2006/05/16(火) 23:55:31
【1 OSの種類 .】 Mac OSX 10.4.6 【2 Excelのバージョン 】 Excel2004 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 改行、Excel セル内の改行を一括置換したいのですが どのようにやれば良いでしょうか? 具体的にはExcelシートからHTMLに書き出したくて セル内の改行を<BR>に置き換えたいです。 ex) こんにちわ。 おげんきですか? ↓ こんにちわ。<BR>おげんきですか?
>>611 検索する文字列の入力状態でCtrl+J
613 :
名無しさん@そうだ選挙にいこう :2006/05/17(水) 00:09:21
>>601 です
>>607 さん、ありがとうございます。
やってみたのですが、累積表示出ないです。
わたしの入力が変なんでしょうか。
もちと頑張ってみます。
614 :
611 :2006/05/17(水) 00:11:16
>>612 ありがとうございます。
やってみたのですが、テキストボックスに
[¥]のようなマークが入力されましたが
検索にはヒットしませんでした。
615 :
611 :2006/05/17(水) 00:13:00
バックスラッシュは入力できないのですね。 [¥]というのはグレーの四角の中に斜線3本です。
616 :
名無しさん@そうだ選挙にいこう :2006/05/17(水) 00:17:51
【1 OSの種類 】Windows2000 【2 Excelのバージョン 】Excel2000 【3 VBAが使えるか 】いいえ 【4 VBAでの回答の可否 】否 【5 検索キーワード 】表示形式 日付 ユーザー定義 「2006年5月」を、「6/5」と入力して「H18.5」と表示させる方法を教えてください。 日付というだけあって年月だけでは表示させられないでしょうか。
617 :
567 :2006/05/17(水) 00:28:48
618 :
名無しさん@そうだ選挙にいこう :2006/05/17(水) 00:29:23
>>613 入力した式に変な括弧付いてる?
配列数式でぐぐれ
>>616 表示形式→ユーザー定義でge.m
620 :
名無しさん@そうだ選挙にいこう :2006/05/17(水) 00:41:03
>>616 「ge.m」 → H18.5ではなくH18.6となるのでボツです。
>>617 「gee.d」 → 6/5はH18.5となりますが、
1/5も2/5も3/5も4/5も・・全部H18.5となってしまい、ボツです。
>>620 何?H18.5の5は何を表しているのか?
>>611 スマソ。WINと早とちりしました。MACで改行コードですね…。
これだとVBAしかないんじゃないか?
えっとmac版って[WEBページとして保存]ってないの? こう? Sub aaa() Cells.Replace What:=Chr(10), Replacement:="<BR>", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False End Sub なんか違う気がする…。
>>616 入力について
日付(時間)入力は日時連番に自動変換されるため
本年の場合「2006年5月」は、年を省略できるので
5/1 と日(任意)まで入力しなければなりません。
表示形式は前出の通り。
627 :
名無しさん@そうだ選挙にいこう :2006/05/17(水) 11:28:52
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 有給休暇の考え方なのですが、下記条件だとどのような式が簡単でしょう? vbaかな? 勤続 6ヶ月→付与日数10日 1年6ヶ月→11日 2年6ヶ月→12日 3年6ヶ月→14日 4年6ヶ月→16日 5年6ヶ月→18日 6年6ヶ月以上→20日 当該年度に新たに付与した年次有給休暇の全部又は一部を取得しなかった場合は その残日数のうち半数は翌年度に繰り越される(端数は切り上げ)
628 :
627 :2006/05/17(水) 11:42:21
こういう考え方では無理でしょうか? =OR(IF(H4+DATE(0,6,0)>TODAY(),I4+10,I4+0),IF(H4+DATE(1,6,0)>TODAY(),I4+11,I4+0))......
629 :
名無しさん@そうだ選挙にいこう :2006/05/17(水) 11:44:52
630 :
627 :2006/05/17(水) 11:59:11
なんかその前に日付の関数わかってなかった、、、orz 単純に関数で1年半後とか出せない自分が、、、、、yearとかで出せると思ってた。 シリアルかぁ、、どうやれば出せるんだ??
631 :
名無しさん@そうだ選挙にいこう :2006/05/17(水) 13:36:22
632 :
名無しさん@そうだ選挙にいこう :2006/05/17(水) 14:02:13
>>627 っていうか、最終的にどこに何をどうしたいのか、漠然としか判らん
日本語の勉強からし直してきて
633 :
627 :2006/05/17(水) 14:49:38
初心者です。一応使えてはいますが。 まず、今日の日付からそれぞれの対応日時を求め、表にしました。 =IF((DATE(YEAR(H4),MONTH(H4)+6,DAY(H4))<DATE(YEAR(TODAY()),MONTH(TODAY()),DAY(TODAY()))),"○","×") つまり、半年だとA1セルに○、1年半だとB1セルにも○と・・・etc それを表にしました。 そこから○の数を数え対応日数の式でつまずきました、、、、 countif?if(or?? 助言お願いします。 ただ後半の繰り越し日数の計算はさっぱり???
634 :
名無しさん@そうだ選挙にいこう :2006/05/17(水) 15:38:31
質問は正しい日本語で書いてください。 「、、、」とか「orz」とかいらないし、無意味に一行空きに書かないで下さい。 「計算はさっぱり???」と省略せずに「計算はさっぱり分かりません」とハッキリ書いて下さい。
635 :
627 :2006/05/17(水) 15:43:15
答えられないならしょうがないです。
636 :
名無しさん@そうだ選挙にいこう :2006/05/17(水) 15:46:45
637 :
627 :2006/05/17(水) 16:09:49
countifはわかったのですが、そこから○の数が0の場合0、1の場合10、2の場合は11・・・・6以上はすべて20の式で 訳がわからなくなってきましたどこでorを使うとかandなのかこんがらがってきました。 助けてください。
638 :
名無しさん@そうだ選挙にいこう :2006/05/17(水) 16:17:30
>>627 余った日数の扱い方が不明なので、無視して
DAYS360を利用して月数は出るよ
=ROUND(DAYS360(開始日,今日,計算基準)/30,0):とりあえず四捨五入してる
>>627 一発で出そうとせずに、
セル1:期間数を計算する
セル2:セル1の値を元にVLOOKUPで有給休暇を抽出
( 期間数と有給休暇の関連表を別セルに作っておく事 )
640 :
名無しさん@そうだ選挙にいこう :2006/05/17(水) 16:37:03
641 :
627 :2006/05/17(水) 16:50:19
639>> そうですよね。 まとめず先ほどの○数からvlookupで日数を求めることにしました。 ありがとうです。 あとは後半の 当該年度に新たに付与した年次有給休暇の全部又は一部を取得しなかった場合は その残日数のうち半数は翌年度に繰り越される(端数は切り上げ) のところです。たとえば2005年7月20日に5日持っているのが開始とします。 翌年度の2006年7月1日に半数を持ち越します(切り上げ) これを考えるとtoday()と繰り越し日を考えるようなのですが、毎年の繰り越し日を記述しておかなければ無理でしょうか?
642 :
名無しさん@そうだ選挙にいこう :2006/05/17(水) 17:14:29
>>641 はぁ?なにか勘違いしてない!
残日数は有給休暇の残りでしょ
643 :
627 :2006/05/17(水) 17:25:31
>>642 勘違いですか?
残日数は毎年基準のたとえば7月20日に入社した場合翌年の7月1日に持ち越されるので、毎年のタイミングがあると思うのですが?
そのため今日の日付と毎年持ち越される日との差を記述しておくしかないのか?と思っただけです。
わかりずらくて大変申し訳ありません。
644 :
いそぎさん :2006/05/17(水) 17:47:11
【1 OSの種類 .】 WindowsXP pro 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 シート 複数 同語 選択 エクセル 1つのファイルにいくつかのシートがあります。 2006年1月 2006年2月… 2005年1月 2005年2月… 2004年1月 2004年2月…など 特定のキーワードに当てはまるシートを一括で選択状態にしたいのですが 例) 2005年のシート全て 1月と書いてあるシート全て ctrlを押しながら順にシートをクリックする方法以外に いっぺんに選択する方法は無いですか?
うん。ないよ。 2003からブック全体検索機能付いたから。
あれ?2002だったかな? どっちにしろ2000じゃ無いよ。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 可(と言っても本見ながらの状態ですが) 【4 VBAでの回答の可否】 可 A列のセルを順番に見て行って(数不定)、各セルの文字列の中に"/"が必ず2個なければ 不採用にしたいです。 採用 → この行ののA〜Fを シート名 saiyou にコピー 不採用→ 何もせず "/"は続けて出ても離れていても良いんですけど e.g) 1155/dd/q → OK /s/r → OK 11//d → OK 22/d → NG という風にしたいんです。 つまり、ある文字列の中に検索対象の文字が何個あるかって判定をどういう風に書 けば良いか教えて下さい。
649 :
いそぎさん :2006/05/17(水) 18:48:25
>>648 splitで「/」を区切り文字として配列にしてみて、配列の要素数が2以上だったらOKという判定でいってみたよ。
セルA1だったら、
if ubound(split(range("A1").value,"/"))>1 then msgbox "OK"
とか。
あ、要素数が2以上じゃなく3以上(2より上)だね。ごめんごめん。
652 :
名無しさん@そうだ選挙にいこう :2006/05/17(水) 19:18:36
>>648 =IF(ISERROR(FIND("/",A1))+ISERROR(FIND("/",A1,FIND("/",A1)+1))=0,"OK","NG")
>>650 ,
>>652 素早い〜! 有難うございます〜。
いろんな書き方があるもんですね!
splitをそういう風に使うとは考えもしませんでした。
>>650 さん
>>652 さんのも勉強になりますm(__)m。
654 :
名無しさん@そうだ選挙にいこう :2006/05/17(水) 20:27:36
>>644 Sub tes()
a = InputBox("選択させたい文字")
For Each mysheet In Worksheets
If mysheet.Name Like "*" & a & "*" Then
If ActiveSheet.Name Like "*" & a & "*" Then
mysheet.Select (False)
Else
mysheet.Select
End If
End If
Next
End Sub
655 :
名無しさん@そうだ選挙にいこう :2006/05/17(水) 20:54:41
>>652 チョット聞いていい、
ISERROR+ISERROR
どうしてこれが成り立つの?
656 :
集計 :2006/05/17(水) 21:24:57
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 集計 データの集計を実行→集計行をデータの下に挿入させると、 集計するグループの基準及び集計フィールド以外のセルは空欄になってしまいますが、 空欄部分に直前の行のデータが反映させたいのです。 集計をかけた場合以下の通り表示されます。 A B C D 1 商品コード KEY番号 金額 入力日 2 001 A-1 \100 5/1 3 002 A-1 \200 5/1 4 003 A-1 \300 5/3 5 空欄 A-1集計 \600 空欄 6 総計 \600 A-5に直前のデータ003 D-5に5/3を表示させたいのですが、無理でしょうか? よろしくお願い致します。
657 :
集計 :2006/05/17(水) 21:37:26
>>656 すみません・・位置がずれていたようで・・・。以下の通りの場合です。
A B C D
1 商品コード KEY番号 金額 入力日
2 001 A-1 \100 5/1
3 002 A-1 \200 5/1
4 003 A-1 \300 5/3
5 空欄 A-1集計 \600 空欄
6 総計 \600
658 :
だいすけ :2006/05/17(水) 22:32:00
ピボットテーブルで”ここにアイテムをドラッグ”の右下の一番大きな四角に 対してアイテムを2つ入れると(円貨とドル価)、行方向に2つのデータが 出てきてしまいます。これを列方向に横に並列させて表示させることは可能でしょうか?
659 :
名無しさん@そうだ選挙にいこう :2006/05/17(水) 22:48:35
可能
>>1 ★1〜4を無視してるので、こっちも具体的な方法は教えないでおく。
空気読めず嬉々として教える子が出てくるかもしれんが。
660 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 05:51:29
>>655 (652じゃないけど通りかかったので)
あるセルの文字列のなかに、検索したいものがあるかないかを
検査するときの常套手段がこの式↓
=ISERR(FIND(検索文字,セル指定,開始位置)
結果がFALSEなら「あり」、TRUEなら「なし」です。
>>652 ではこれを二つ足し算してますよね。つまり、
=「1つ目の"/"があるかどうか?」+「2つ目の"/"があるかどうか?」
です。例えばその結果が、
「ある」+「ない」だったら、「FALSE」+「TRUE」になり、結果は「1」
「ある」+「ある」だったら、「FALSE」+「FALSE」なので、結果は「0」
661 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 05:56:32
いちいちこの様なレスをする意味が分らん
>>580 ,
>>659 気に食わなきゃスルーしとけばいいんだろ
なぜ?
言い分があるなら雑談スレに来い!
>>658 単純にその状態で「データ」というボタンを列見出しドラッグすればいいんじゃね?
たぶん「集計」とかになってるピボットテーブルの一番上のとこ。
664 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 09:57:34
>>648 三つ出た場合はどーすんの??
=IF(LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))=2,"OK","NG")
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 初心者 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 マクロ シート 左から 何番目 Sheets.Count 【6 検索サイト 】 すぐマク Happy!Happy!Island フォームを作成してボタンを配置しているのですが、 ボタンに記述している処理を特定のシートでしか実行できなくしたいです。 処理を実行する対象が1つのシートなら IF ActiveSheet.Name <> "シート名" Then Msgbox "このシートではムリ" , VbOkonly , "選択シートエラー" Exti sub End If と出来るのですが、対象が全35シート中の左から5番目以降の31シートにしたい場合、 「アクティブシートが左から4番目までのシートなら」という条件でストップさせたいのです。 ワークブック内のシートの数を取得するのは判ったのですが、 アクティブシートが左から何番目 の取得方法が判りません。 本屋ネットで色々調べてみたのですが見つけられなかったので、書き込ませて頂きました。 宜しくご教示お願い致します。
>>655 index使えばいいんでないかな?
if activesheet.index <5 then msgbox "muri"
>>665 ActiveSheet.Index
こんなことも調べられないようじゃ、その名に見合うまでの道のりはまだまだ相当長そうだな。
なんだ答えようと思ったら先に答えられているではないか 仕方がないからウィットに富んだジョークで誤魔化すか・・・ index使えばいいんでっくす
>>666-668 有難うございます!解決しました!!
Index…思いもつきませんでした
670 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 11:34:14
初歩的な質問ですみません。 方向キーを押すと画面全体がスクロールしてしまいます… 助けてください。
キーボードのScroll Lockキー押しちゃったんじゃない?
672 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 11:38:24
笑った
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 定数 変数 固定 代入 現在VBAを使って処理をおこなっているのですが、変数(定数)に値を代入したまま元の値(右辺)が変わっても変数(定数)は変わらないように するにはどうすればよいのでしょうか?下記のようなことがしたいです。 Sub テスト AA = Range("A1:D5").Value 'ターゲットの値をAAに代入する End Sub 上記AAに入れた値は右辺の範囲が変わった場合AAの内容も変わってしまいます。AAの内容を定数にするにはどうすればよいのでしょうか? 説明下手ですいません;w;
定数宣言はConst VB言語の仕様では、定数にはリテラル値かその算術演算値しか代入出来ない つーか674がやりたいのは定数化ではなく変数値の固定では? 変数がオブジェクト型やクラスのメンバでもなければ、勝手に書き変わることは無いはずだが。 ちゃんと正しい用語と正しい日本語文法で質問してくれ。
676 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 13:05:00
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 ある検索範囲から値があった場合は、○、ない場合は空白はどうやるのでしょう? vlookupとかだとN/Aって出ちゃいます。
>>674 final変数っぽい事やりたいならproperty let/getを使えば一応できるよ。
一回マクロ停止したりブック閉じたりすると初期化されるけど。
Private AA_ As Variant
Property Let AA(S)
If AA_ = "" Then AA_ = S
End Property
Property Get AA() As Variant
AA = AA_
End Property
としといて
Sub テスト
AA = 1
AA = 2
msgbox AA
End Sub
とか。でもそれ、変数の値いじらなきゃいいだけじゃない?
678 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 13:07:14
あ、あれ?書き込むところ間違えたみたいです。 雑談の方に書き込んでしまいました。 すみません、教えてください。。 他人の作ったファイルで、ヘッダにファイル名を呼び出すと拡張子までついてきます。 自分で作ったときにはこうなったことないので 正直どうしていいやらわかりません・・。 ひとしきり上司に罵られました・・。 ご存知の方、恐れ入りますが教えてください・・。 よろしくお願いします・・。
>>676 こういうことか?
=IF(A1="","",VLOOKUP……)
A1は仮だけど
680 :
676 :2006/05/18(木) 13:12:50
わかっていただけるかですが 例 A10:A40の範囲のセルの値が一個でもOKと入力されていれば B1セルに○と表示したいのです。それ以外の値や何も入っていない場合は空白です。 わかりますでしょうか?
681 :
647 :2006/05/18(木) 13:13:10
なかなかうまく説明出来ないのですが、最終的にしたいことは
「Worksheet_SelectionChange」で現在選択されている値を保存しておきたいのです。
そのあと、「Worksheet_Change」で範囲の値が変更or削除された場合その値をもとに
処理を行いたいのです。
結果、二つのプロシージャ間で使える変数(定数)が必要になり行き詰まったのです・・・。
これから
>>677 さんの方法で試してみます。
>>680 COUNTIFでOKが1以上なら○かな
=IF(COUNTIF(A1:A0,"OK")>=1,"○","") もう、お答えがありますね
684 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 13:44:56
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 次回車検日を自動で表示するのはどうすればいいでしょうか? today関数と比べるのはわかるのですが、毎回となると永遠に長い関数を入れないと駄目でしょうか。 単純に毎回そのブックを開いたときの日時から先の3年後の同月1日を表示させたいです。 よろしくおねがいします。
685 :
676 :2006/05/18(木) 13:47:26
Public aab Public aac Sub Worksheet_Change(ByVal Target As Range) MsgBox aac End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) aac = aab aaa = Target.Address() aab = aaa End Sub
>>684 =EOMONTH(TODAY()+DATE(3,0,0),0)+1
EOMONTHはアドインが必要
688 :
684 :2006/05/18(木) 14:20:22
アドインは組み込んでおけば誰に渡しても大丈夫なのでしょうか? アドインはよくわからないもので。
というか =DATE(YEAR(TODAY())+3,MONTH(TODAY()),1) でいいではないか
>>688 アドインは開くパソコンのExcelであらかじめ設定しないと正しく表示されません
689さんの方がいいみたいですね
691 :
684 :2006/05/18(木) 14:30:48
ただ書き忘れたので、後出しだと言われるとつらいですが、車検最初は3年であとは2年なんです。
そこが難しいです。
単純に3年だけなら
>>689 でOKだと思います。
1回だけIFか何かでくくればいいのかな?
>>691 そうですね
TODAYのが2009の車検日以下なら3年後それ以外は2年後を表示させればよろし
式は長くなるけど
693 :
684 :2006/05/18(木) 14:47:40
>>691 すみません説明不足で申し訳ない。
2009年とかではなく何台もある場合をかんあえてもらえないでしょうか?
つまりシート内にその車ごとに最初の取得日が表示されています。
そこから次回の車検日を表示させたいのです。
おわかりでしょうか?
誠に申し訳ない。
694 :
684 :2006/05/18(木) 14:49:25
またもや補足 表示はそのシート開いたtoday()から次回の車検日です。
だったら車検が一回目かそれ以降かで判断すればよいこと その車が中古なのか新車なのかはこっちではわかりませんので あしからず
>>693 取得日からの2年後を表示させるでいいのでは?
697 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 15:02:56
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excel 日付 作業報告書 上司にExcelの作業報告書のマクロを修正してくれと 頼まれたのですが、わかりません。 助けてください。 修正箇所としては月の最初の日を入力すれば31日まで 一気に表示にされるようにし、その隣に曜日を付け 祝日にも対応させ、土日・祝日を赤く表示しろと言われました。
698 :
684 :2006/05/18(木) 15:12:15
ここまで考えました。 他の場所に車検の一回目の有無を記載しておきます。 その値をvlookupでみてない場合は =IF(DATE(YEAR(C1),MONTH(C1),DAY(C1))>TODAY(),DATE(YEAR(C1)+3,MONTH(C1),DAY(C1)),"") ある場合は上記の2年バージョンってことですよね。 それを組み合わせることはできますよね?
699 :
684 :2006/05/18(木) 15:17:02
よく考えたら、これじゃC1セルの値が小さい場合や変化がないときいつも同じ値になってしまう。 C1セルも計算式入れるようですね。
>>698 VLOOKUPで探した結果がない場合はエラーになるので、エラーなら3年後、それ以外は2年後を表示する
でいいんじゃないの?
その式の最後の""は何なのか良く分かりませんけど
>>697 >【4 VBAでの回答の可否】 否
>上司にExcelの作業報告書のマクロを修正してくれ
マクロ使うのか使わないのかどっちだ?
とりあえず
>修正箇所としては月の最初の日を入力すれば31日まで
前日に+1すればいい
>一気に表示にされるようにし、その隣に曜日を付け
表示形式をAAAかWEEKDAY関数あたりで
>祝日にも対応させ、土日・祝日を赤く表示しろと言われました。
曜日はWEEKDAY関数でそれ以外の休日はテーブル作ってVLOOKUPやMATCHなどで引く
702 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 16:35:59
703 :
684 :2006/05/18(木) 16:43:36
>>700 ifでくくるつもりだったので""にしたのです。
でも
>>VLOOKUPで探した結果がない場合はエラーになるので、エラーなら3年後、それ以外は2年後を表示する
でOKですね。
ありがとう。
【1 OSの種類 .】 Windows Me 【2 Excelのバージョン 】 Excel 2000 【3 VBAが使えるか .】 微量 【4 VBAでの回答の可否】 可 セルにアルファベットのiだけを入力すると必ずIと大文字になります。 =LOWER("i")としてしのいでいるのですが、最初から小文字のiを 入力させるにはどうしたらいいですか? よろしくお願いします。 ちなみにExcel2003ではそういった現象は起こりません。
俺の2002でも'i'だけ入力で'I'にはならないから、はっきり言えないが 多分[オプション][編集][オートコレクト]あたりで i → I になってんのを削除すればいいんじゃないか?
706 :
684 :2006/05/18(木) 17:39:36
やはり駄目だ。行き詰まりました。 結局TODAYと見比べて基準日から足していくというループが出来ない。vbaかなやはり。 それかtodayより先の最初の車検日というのが関数で出来ればいいのですが思いつきません。 どなたか助けてください。
707 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 17:48:37
>>704 [オプション][編集][オートコンプリートを使用する]
のチェックをはずす
708 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 17:51:55
>>684 飛び散らかしたレスを読み直すのメンドウだから
条件を整理してもう一度レスしなおして
709 :
655 :2006/05/18(木) 17:59:45
>>660 わかりやすい説明アリガトウ
戻り値FALSEとTRUEが、0と1で計算に使えるなんて知らなかったよ
面白い事考えるね、まったく
711 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 18:12:45
エクセルのシートを開くたびに ”開いているブックには他のファイルへの自動リンクが設定されています、 このブックを更新し、他のブックを変更を反映しますか?” ”はい、いいえ” と毎回出てしまいますが、これを出さない方法はないでしょうか? 他のシートをコピーして新しいエクセルを作ったりしてるのですが どの時点でこれを出さなくするかわかりません。 よろしくお願いします。 【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2000 【3 VBAが使えるか .】 使えません(素人ですみません) 【4 VBAでの回答の可否】 不可 【5 検索キーワード 】 Excel 自動リンク
>>706 式はかなり長くなりそうなんで要点だけ
a = YEAR(登録日)
b = YEAR(TODAY())
c = ROUNDDOWN((b-a-1)/2,0)+1 <- 次回車検は何回目か
d = DATE(a+c*2+1, MONTH(登録日), 1)
多分こんな感じ
ただしa〜cの計算はYEARだけでやっていて正確ではないので
最後に
TODAY() > d
ならばdをさらに2年進めるという処理を加えなくてはならない
めんどくさそうだな
>>711 どういう状況か分からんが、おおかた
Book1からBook2にデータをコピーするときに
Book1の中に =Sheet1!A1 みたいな参照式が含まれていたんだろう
Book1からBook2にコピーするときに[形式を指定して貼り付け]で値だけコピーするか
Book2の中でBook1を参照しているセル(=[Book1]Sheet1!A1とか)を探して
[Book1]を全部削除する([置換]コマンドでできる)かすればいいんじゃないか
714 :
hiro :2006/05/18(木) 18:58:30
a_n=2(n-1)/(n-1)!の計算ができません。おしえてください。 nには数字がはいります。
715 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 19:06:45
>>714 説明不足
上手く説明できないなら具体例を上げよう
717 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 19:15:47
>>713 711です。
なるほど。そういう意味なんですね、そのように対処してみます。
ありがとうございました。
718 :
hiro :2006/05/18(木) 19:19:28
すいません。EXcelで数列a_n=2^(n-1)/(n-1)!の第1項から第10項までの 数表を作成したいのですが、計算ができません。教えてください。
>>664 レス、ありがとです。今回は2つ以上は出ないという前提です。
という思い込みが怖いのも確かですが w
この式も勉強させていただきます。
3つ出ようが4つ出ようが >=2 にしときゃ十分だろうがな
722 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 19:28:32
【1 OSの種類 .】 Windows*2000 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 入力値 異なるマクロ 入力した値によって、異なるマクロを実行したいと考えています。 たとえば、A、B、C、Dを入力できるようにしておいて、 Aが入力されたらマクロ1実行とするにはどうしたらよろしいでしょうか? もしくは、一つのマクロ上で行える方法でも構いませんので、よろしくお願いいたします。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━ 【1 OSの種類 .】 MacOS9 【2 Excelのバージョン 】 Excel 2001? 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excel 近似曲線 散布図で近似曲線を書く場合、その式の一部を固定したいのですが、できますでしょうか? 具体的に言うとy=xのグラフに乗るような点がいくつかある時に y=ax^2+bx+cの式で近似したいのですが、aが必ず負の値をとるようにできますか? 作りたい式はc=0なので、切片を0にするにチェックを入れてます そのまま近似すると、うまくいくときはaが-になるのですが 少し下に凸だとaが+になってしまいます excelでは無理でしょうか?
>>722 Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Value
Case 値1
Macro1
Case 値2
Macro2
End Select
End Sub
みたいな感じで
725 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 20:07:19
データの並べかえをするときに 「0021」と「000021」を同じ数値として並べかえてくれないんですが どうしたらよいでしょう
>>725 表示形式が違うだけで同じ数値ではありませんか
727 :
684 :2006/05/18(木) 20:37:57
>>712 たしかに面倒だと思います。
vbaが多少わかれば解けそうなのですが、どうなんでしょう?
ではもう一度
あるシートに車とその車の初年度登録日が記録されています。
1台ではなく複数追加もある。
そこからその車の次回車検日を表示させたいのです。
1.まだ1回も車検を受けていない車(新車)はそこから3年後の1日
2.2回目以降の車検は2年ごと。
単純に記録しておけばいいのですが、追加で車を購入(新車、中古問わず)した場合すぐにデータが出る仕組みにしたいのです。
つまり、シートを開いた日付から後の車検日を表示させる仕組みです。
ここが厄介なのかもしれない。
誰かとける人いないでしょうか?vbaコード書いてもらえるなら可です。
よろしくお願いします。
>>727 1と2の違いはシート上のどの項目で判断させようとしているのか?
>>725 それ文字列として入力されてるからだな
俺のExcel2002では、並べ替えするときに「数値に見えるものは数値として並べ替え」を選べるようだが
それが出ないなら、作業セル作って=VALUE(A1)とかして数値に変換してから並べ替え
731 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 20:52:56
>>726 「0021」が「002131」の上に来たりするのです
「00」をとればいいかとも思うのですが
2000近いリストでひとつひとつ取るのは…
>>723 >y=xのグラフに乗るような点がいくつかある時に
>y=ax^2+bx+cの式で近似
だとa=0,b=1,c=0にしかならないのでは?
どうしても違う値をとりたいなら何か特殊な条件なのだろうから
自前で処理したほうがいいでしょう
733 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 20:55:51
>>727 >シートを開いた日付から後の車検日を表示させる仕組
こういうことですか?
車を購入した時にシートを開いて登録日を入力
隣のセルに次回車検日(3年後)を自動表示
そのまた隣のセルに次々回車検日(2年後)を自動表示
「シートを開いた日付から」が、どう関係するのか良く分らないな
>>731 表示形式を統一すればいいんでしょ
1列選択するだけでは?
735 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 20:57:38
>>729 ありがとうございます
作業セルとかよく分かりませんが
ググったりしてやってみます
736 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 21:02:25
>>734 番号の列を選択して書式設定で
数値に統一したのですが駄目でした
関係あるかどうかわかりませんが
「0021」のセルをダブルクリックすると
なぜか「00」が消えて「21」になります
>>733 いや、次の車検日だけ表示できればいいってことでないの?
例えば登録日が2000/4/1で、今日が2006/5/18なら、次の車検日は2007/4/1とか
738 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 21:03:11
>>731 >「0021」が「002131」の上に来たりするのです
文字だから、それで正解
数値に一発で変えるには
コピー/形式を選択して貼り付け/加算
739 :
684 :2006/05/18(木) 21:20:34
>>737 その通りです。わかりづらくすみません。
740 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 21:31:47
一つのセル上でやろうとしてんのか VBAの方が楽だな
741 :
684 :2006/05/18(木) 21:37:02
>>740 複数でもかまわないのですが、どっちにしろ長くなりそうな気がして。
vbaがわかればいいのですが。
742 :
hiro :2006/05/18(木) 21:45:25
>>741 まあ面倒くさいからVBAにしとけ
VBエディタ開いて標準モジュールを追加
で、以下のコードを書く
Function NEXTSHAKEN(ByVal x As Date) As Date
y = Year(x) + 3
m = Month(x)
Do Until DateSerial(y, m, 1) >= Now
y = y + 2
Loop
NEXTSHAKEN = DateSerial(y, m, 1)
End Function
あとはワークシート関数同様、セルに=NEXTSHAKEN(A1)みたいな書き方で呼び出せる
A1のところは、最初の登録日が記入されてるセルな
744 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 21:52:40
>>743 VBAってそんな使い方できたんだ
しらなかった
functionかおぼえとこ
746 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 22:05:19
IDでてるよ(プ
747 :
684 :2006/05/18(木) 22:14:11
>>743 vbaだとすごく簡単にできるんですね。
vbaだとループまわすの簡単だから覚えたいのですがなかなか機会がなくて。
やはり覚えたほうがいいですね。
ありがとうございました。
748 :
名無しさん@そうだ選挙にいこう :2006/05/18(木) 22:45:32
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 計算式でトータル時間を表示させるときに単位にhourを使いたいのです。 でも15分のときは切り捨てたい。11:15は11hour、12:45は12.5hourとしたい。 roundを使うのはわかるのですが使い方がわからないです。 教えてください。
1時間を1になるようにに換算して2倍して小数以遠以下を切り捨てて2分の1にする
×以遠 ○点
あとFLOORでもいいよ
>>732 すいません書き方が悪かったですね
x,yが正の平面に、右上がりなかんじで点がいっぱいあるときに
それの近時曲線を引きたいのです
感じで言うと、右斜め上に伸びてる楕円ってとこでしょうか
一応2次曲線でも近似曲線を引いてくれるのですが
楕円の形によってはaが正の値をとるのです
aが負の値になるような近似曲線を、無理やりでも引いて欲しいのですが
xcelだとa<0みたいな条件をつけることはできませんかね?
>>753 できないと思うよ
a≧0に計算される場合に無理やりa<0としてもaはほぼ0になるだけだと予想されるので
a≧0の場合は線形近似を採用してはいかが?
>>754 むーやっぱりだめですか
回答ありがとうございます
756 :
名無しさん@そうだ選挙にいこう :2006/05/19(金) 08:16:31
あんまりExcel本来の使用法とは関係ないのですが 添え字、例えばx2の2を右下に小さく表示したいのですが どうすれば出来るのでしょうか?教えてください。よろしくお願いします。
757 :
名無しさん@そうだ選挙にいこう :2006/05/19(金) 08:21:02
>>756 2を選択して右クリックしてセルの書式設定
文字サイズを調整する
758 :
722 :2006/05/19(金) 08:29:13
遅くなりましたが、
>>724 さんありがとうございました。
759 :
748 :2006/05/19(金) 10:01:00
>>749 言われたとおりやると30分が繰り上がります。
1時間を1になるように換算して2倍して小数点以下を切り捨てて2分の1にする
をこうしました「=ROUNDDOWN((L1*24*2),1)/2」
間違ってますか?
760 :
名無しさん@そうだ選挙にいこう :2006/05/19(金) 12:12:12
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 ごく初心者 【4 VBAでの回答の可否】 簡易な物なら理解可能。 ブックAAAのシート1に、一日あたり8列×34行で曜日別の予定(顧客名)が入力されています。 入力は8×34のセル全部には無く、予定の有る所だけ顧客氏名が入力されています。 月曜はC4:J37、 火曜はK4:R37、 水曜はS4:Z37、 木曜はAA4:AH37、 金曜はAI4:AP37、 土曜はAQ4:AX37、 日曜は表示無しです。 上記の顧客データを元にして、別のブック(BBB)の日計表に予定される顧客データを入力したい。 日計表は月毎にブックを作成して、5月のブックの場合シート名が"1日"〜"31日"まであります。 各日計シートのA2セルに曜日が表示されるので、 予定表のデータを元にして日計シートのC3〜C47に顧客名を入力したいのです。 説明が分かりづらくて申し訳ない! 当方の様な初心者に理解できるレベルでは無いでしょうか?
761 :
名無しさん@そうだ選挙にいこう :2006/05/19(金) 12:26:57
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 少し 【4 VBAでの回答の可否】 コード書いていただけるなら可 下記のような表があるのですが対応しているところに色をつけたいのです。 それは他のセルから人物1は2006年12月1日と出ましたら下の表の 人名3、2月度の所のセルに色をつけるだけです。下ですと”C3"です。 表は年度ごと同じシートにありますが独立しています。 まとめないと無理でしょうか 1 A B C D E 2 2006年度 1月度 2月度 3月度 4月度 ・・・・ 3 人名1 1 3 4 2 5 3 6 4 3 2 7 5 8 6
>>761 条件付き書式
シートをまとめる必要は無し。
あとの使い方は自分で調べましょう。
763 :
761 :2006/05/19(金) 13:06:49
説明不足でしたかな? その色をつけたいセルには他の値が入るので他のセルで日付が出ても 条件書式では無理だと思うのです。
無理だと思い込むのは勝手だが、 現実として可能なので、回答としては間違ってないわけで。 条件付き書式は、書式設定を行う対象セル以外のセルの値を条件に 条件式を組むことができるからな。
>>759 そのやりかたでやる場合は小数点第一位で切捨てだと思うよ
766 :
名無しさん@そうだ選挙にいこう :2006/05/19(金) 14:09:40
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 NO 【4 VBAでの回答の可否】 NO 表を作ってA4で印刷する際、縮小されて出てきたので ページ設定のページのところで確認したら 拡大縮小印刷のところが77%になっていたので100%に戻してOKにし、 念のためにプリンタの設定のほうの問題がないことを確認して 印刷したらまた同じような結果になり、 ページ設定も確認したらまた77%に戻ってしまっています どこかまた設定方法で考えられるところはあるのでしょうか よろしくお願いいたします
767 :
766 :2006/05/19(金) 14:11:47
書き忘れ 用紙サイズA4 拡大縮小印刷 77→100% です
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】No 【4 VBAでの回答の可否】 No 【5 検索キーワード 】 Excel ひとつのファイル 大量 プリント 連番 板違いだったら申し訳ありません。 Excelでアンケート(A4:1枚)を作成し、それを1,000部プリントアウトするときに、 「1」〜「1000」までの連番を振りたいのですが、1,000ページのコピーを作る以外に なにか方法はありませんでしょうか。
○プリンタ側の設定で出来るものもある→プリンタスレへ ○ワードの差込印刷→ワードスレへ ○VBA→Noなら仕方ない ○先に連番だけ印刷しておく←これぐらいか
770 :
名無しさん@そうだ選挙にいこう :2006/05/19(金) 17:16:58
>>768 印刷のヘッダ,フッタのページ位置を工夫する
772 :
名無しさん@そうだ選挙にいこう :2006/05/19(金) 18:38:27
OSはXPバージョンは2003 VBAは出来ません 入金日を管理したいのですが、2ヵ月後とかは出来るのでしょうか? 今は売り上げ締日のセルに4/30を入力 サイトのセルに90とか60とかの数字を入れて 4/30+90とやりましたが、7/29となってしまいます。
逆に考えるんだ。 8月1日から1を引く、と考えるんだ。
>>773 取引先が1000社以上あり、
会社によってサイトが15日から120日位まちまちなので、
半年前にサイト120で売った物と
15日前に売ったサイト15の物を、出来たら7/31日とかでフィルタリング出来ないかなと思っているのです。
入金日が解ればそのやり方もありますが、入金日はちょっと解らないのです
775 :
名無しさん@そうだ選挙にいこう :2006/05/19(金) 19:11:51
サイトってなんだよ
776 :
772 :2006/05/19(金) 19:23:31
>>775 サイトは売り上げから入金までの期日です
4/30日にサイト90日で売ると90日後に売上額が入金されます。
しかし、ひと月は30日だったり28日だったり、31日だったりするので、
通常は90日後に入金と言われても実際は3ヵ月後の末日に入金になります。
=DATE(YEAR(A1), MONTH(A1)+2,DAY(A1)) 2ヶ月後はこう書きます。
778 :
772 :2006/05/19(金) 19:35:11
>>777 おお、ありがとうございます。やってみます
779 :
名無しさん@そうだ選挙にいこう :2006/05/19(金) 21:18:28
【1 OSの種類 .】 Win95 【2 Excelのバージョン 】 Excel97 【3 VBAが使えるか .】YES 【4 VBAでの回答の可否】YES 【5 検索キーワード 】 シートにある全ての数式をコピペするにはどうしたらいいですか
781 :
名無しさん@そうだ選挙にいこう :2006/05/19(金) 23:43:15
CTRL+A
【1 OSの種類 .】Y2K 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】少しYES 【4 VBAでの回答の可否】YES 【5 検索キーワード 】 <SHEET1> | A B C --+---------------- 1 | 阿部 60 国語 2 | 阿部 90 英語 3 | 愛沢 75 理科 4 | 愛沢 80 社会 | | 999 | 山田 100 数学 が、あり 上から順にSheet(阿部)を作成し、セルA1に名前、点、科目を 移すようにするにはどうすればいいですか? <阿部> | A B C --+---------------- 1 | 阿部 60 国語 2 | 阿部 90 英語 <愛沢> 1 | 愛沢 75 理科 2 | 愛沢 80 社会
>>783 メモリの関係上
18人ぐらいに絞ろうと思います。
785 :
780 :2006/05/20(土) 03:54:12
>>781 とん。聞きたいことと違った。orz。数式をCSVに書き出すには?でした。orz
>>785 普通にCSV書き出しマクロの要領で
Valueの代わりにFormulaを使えば良い。
あ、基本となるのはCSV保存マクロじゃなくて、
CSV書き出しマクロだからね。
それすら分からないならサンプルがWeb上にいっぱい転がってるので
勝手に拾ってきて参考にしな。
excel2000を使ってます。 空白のセルに文字列として半角の/キーを入力しようとすると、 [メニュー]-[ファイル]にフォーカスが移ってしまいわずらわしいのですが、 何か設定を変えることで回避できるのでしょうか?
設定では回避出来ないが、 コマンド待ち受けモードではなく セル入力・編集モードで/を押せば入力のみを行える。
789 :
名無しさん@そうだ選挙にいこう :2006/05/20(土) 08:38:28
>>787 [ツール][オプション]
移行:代替キー指定のチェックをはずす
>>787 >>789 修正
×→移行:代替キー指定のチェックをはずす
○→移行:代替キー指定の/を消す
791 :
名無しさん@そうだ選挙にいこう :2006/05/20(土) 11:19:18
>788 あらあらあらあら >設定では回避出来ないが、 なんて断言しちゃってますよ >コマンド待ち受けモード 始めて聞いた、勉強になるね
792 :
名無しさん@そうだ選挙にいこう :2006/05/20(土) 12:27:47
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 グラフについてです。通常空白セルはグラフに数値が反映されず、 ある時点以降のデータがない場合は、折れ線グラフが途切れますが、 関数を使って「見かけ」空白セルにした場合 (たとえば(If(B1="","",B1)) 見かけは空白なのに、"0"と認識されてしまい、グラフ上では Oとつながってとても醜いのです。できれば見かけ空白セルのデータは グラフ上に現れてほしくないのですが どうしたらよいでしょうか?お願いします。 表 A B C D -------------- 0 3 3(空白)←他セル参照のIF計算式が入っている
>>792 NA()にすれば0にならずに補間される
線を切るなら手動でデータ要素の書式設定で線をなしにする
794 :
名無しさん@そうだ選挙にいこう :2006/05/20(土) 16:39:54
これってセルのカラーを条件に使えますか? 可能ならば指定方法を教えて下さい。 IF( AA=カラーが赤ならば, BB, CC ) の様にして使いたいのです。
出来ません。 ワークシート関数ではセルの背景色や罫線状態などを取得できませんから。 VBAで直接やるか、ユーザー定義関数でも作って対応しましょう。
>>794 VBA使わないと無理なんじゃないかな多分
798 :
772 :2006/05/20(土) 17:00:07
>>777 会社名とサイト入りのデータベースを作りましたがうまくいきませんでした。
自己解決したのですが、
EDATEと言う数ヵ月後を表す関数
EOMONTHと言う数ヵ月後の末日を表す関数があるそうです。
初期状態では使えませんが、ツール→アドインの分析ツールで使えるようになるそうです
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel97 【3 VBAが使えるか .】 はい 【5 検索キーワード 】 CSV ファイル 名前を付けて保存 日付 CSV(カンマ区切り)ファイルを[名前を付けて保存]で、 ファイル形式を CSV(カンマ区切り)ファイル に指定しているのに 日付けが 2003/8/3 ↓ H8.3.3 1996/3/3 に変わってしまいます。どうかお助けください
【1 OSの種類 .】 Win XP PRO 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】微妙に 【4 VBAでの回答の可否】YES Dim YYMM As String YYMM = "N4" Workbooks.Open Filename:="\\AAAAAA\AAA.xls" Range("D2:D251").Select Selection.Copy WINDOWS(YYMM).ACTIVATE 上記のようなVBAを作成しました。YYMMはブックの名前が入ります。 というのも、各月でA1805.XLSというようなファイル名になるため 上記のような変数を作っています。 サーバーからクライアントに任意のデータをコピーしたいのですが INDEXが有効範囲内にありませんというエラーになってしまいます。 どなたかお知恵を拝借できないですか?
何行目でエラーが出るかぐらい書けよ
802 :
777 :2006/05/20(土) 20:38:40
>798 何が云いたいんだ? 俺が間違った事を教えたから上手く逝かなかったが 自分の力で解決した。それは分析ツール云々、、、 とわざわざ教えてくれているように読めるが。
>>802 そういう意味では無いです。
言葉足らずで情報後だしはやめてって書いてあったので、再び聞いていいものかと思って。
取引先が多すぎるのでシート2にテーブルをつくって、
そこに会社コード、会社名、支払いサイトを入れたかったんだけど、
A1て部分に入れる数字が解らなくて…
804 :
名無しさん@そうだ選挙にいこう :2006/05/20(土) 20:56:59
>>802 後は解決したら書いておいてと
>>1 に有ったので書いてみました。
悪気は無かったので気に障ったのならすいません
805 :
800 :2006/05/20(土) 20:58:33
>>801 すみません、WINDOWS(YYMM).ACTIVATEの所でエラーになってしまいます
単純に考えればYYMMなんてブックはありませんよってエラーだろう とりあえず、その行にブレークポイントを設定し YYMMをウォッチ式に追加して、どういう値になっているか確認してみたらどうだ
807 :
名無しさん@そうだ選挙にいこう :2006/05/20(土) 22:45:07
>>777 ,
>>802 「バカな回答をしてご迷惑をおかけして申し訳ありません
にもかかわらず正しい答えを教えていただき有難うございました」
グダグダ言う前にこのぐらいの事は書け、
という事をお伝えしたかったのです。
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 Excelで複数のワークシートを選択して一括して印刷すると、シートの表示順番どおりにならず、 毎回何枚かのシートの順番が変わって印刷されてしまいます。 これを直す方法はありませんか?パソコンとプリンタはLANケーブルで接続されており、プリンタは 業務用のレーザープリンタです。 どなたかご教授ください。
>>800 このコードだと、
> Workbooks.Open Filename:="\\AAAAAA\AAA.xls"
で開いたワークブックは AAA という名前で、
> YYMM = "N4"
のワークブックが開かれていないと思う。
このマクロを記述したワークブック自身を指すつもりだったのなら、
ThisWorkbook を使えば、ワークブックの名前に依存しない
810 :
通りすがりマン :2006/05/21(日) 00:26:28
>>807 オマエの
>>777 のレスが「バカな回答して申し訳ありません」だろう?
まだ、
>>773 の方が「正しい答え」に近いということに気づかんか?
という事を言ってみたいのです。
頭が悪いので条件分岐が2つ以上あると理解できましぇん
switchかselect caseで書いてください
>>811 紙に書いてみるといいよ
今も大したコードなんて書けないけど自分は初めの頃、条件分岐が多いときは
いつもそうしてました。
814 :
792 :2006/05/21(日) 02:54:40
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい(初心者) 【4 VBAでの回答の可否】 可 表の並べ替えを自動記録して実行したら、 『この操作には、同じサイズの結合セルが必要です。』 と出てうまくいきません。 どなたか解決方法をお教え下さい。
>>815 並べ替え範囲を全選択して、書式設定で結合セルを解除してから、
並べ替えやり直したら?
>>816 レスありがとうございます!
結合セルを解除してしまうと見出し行まで並び替えされてしまって
うまくいきませんでした。
ちなみに見出し行は2行あります。
>>817 見出し行まで選択して並べ替えしてるの?
データだけ選択して並べ替えすればいいと思うが。
並べ替えのダイアログでキーが「列A」のようになるのがわかりにくいというなら、
それは妥協しないといけない。
どの列を並べ替えるか、メモをとっておいて、指定する。
819 :
通りすがりマン :2006/05/21(日) 08:16:45
見出し行とデータ行の書式設定を違えておけば
820 :
名無しさん@そうだ選挙にいこう :2006/05/21(日) 15:15:40
初めまして。今、ピラミッドのような正四角錐をCADで描写しようとしています。 正四角錐の一辺の各長さは100mmにした場合の、高さと斜辺の角度を求める公式を エクセルでつくりたいのですが、どのようにすればよいのでしょうか? ご教授をお願いします。
それは底面が一辺100mmの正方形である錐について 高さをいくつにしたら斜辺が何mmになるか求める式が欲しいということですか?
822 :
名無しさん@そうだ選挙にいこう :2006/05/21(日) 15:22:03
エクセルで連絡網を作る場合はどうすればよいのでしょうか?
823 :
名無しさん@そうだ選挙にいこう :2006/05/21(日) 15:27:41
あ そうです。
>>822 台所で夕飯を作る場合はどうすればよいのでしょうか?
>>820 式自体が分からないなら板違い。
数学板でも行って聞いてこい。(中3レベルの問題なので笑われるかもしれんが
式が分かった上で、それをExcelでどう表すのか分からないというなら、
自分の書いた式を貼って再質問しる。
>>822 >>602-603
CADの積算が中3レベルなわけねーじゃんwww さすが引きこもり。実際の業務なんて知るわけねーのなwwwwwwwwwww
いや、普通に三平方の定理と三角関数だけ知ってれば解ける問題だと思うが・・・
828 :
名無しさん@そうだ選挙にいこう :2006/05/21(日) 15:49:49
CAD関係ねーw 単純な図形処理の問題 現実が見えてないから、CADって単語が出ただけで 高度な物だと思い込んじゃうんだろうな。 こいつの頭の中では、『CADで』直径100mmの円を書いた場合、 その円の面積を求める公式はさぞかし難解で高尚なものなんだろうなw
CADの仕組みしらねー奴がはりきってるなwwwwwww
間違いに気付いたが、今更間違いを認めるのは恥ずかしいので照れ隠しのツンデレさん萌え
>>829 CADの仕組み知らないと答えられねーなら、完全なすれ違い。
ほか当たってくれたまえ。
まあ、君がCADの高度な(?)積算に関しての知識を駆使して
解説してくれるなら、拝聴してみないこともないけどね。
まあ、一般の知識でいけば、掛け算が出来る小学生に三平方の定理を教えたら
理解可能な解説なんだけどね。
CADでやると、簡便になるどころか、複雑化するならご苦労様なことだ。
CAD関係なく、827の指摘通りです、はい。
そんな単純形状だったら、 たいていのCADは計算無しに 描けるだろ
すげーなwww お前らは中3程度で計算できる建物に住んで満足してくれwwww 姉歯ですら神だなwwwwwあっはっはっはっはっはっはwwwwwwwwwww
ピラミッドになんか住みたかねーよw
俺中学生だけどこのぐらいは分かるよ まず底面の対角線の長さを求める→100*√2 次に高さを、,斜辺をbとすると、 a^2+((100*√2)/2)^2=b^2 あとはこれをbについて解けばいいんでしょ? CADとかエクセルとかって以前の問題じゃないんですか?
ヒント:答え書いたら負け
> CADとかエクセルとかって以前の問題じゃないんですか? 正解。式の方は見てないが、これだけは間違いない。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 可(初心者) 【4 VBAでの回答の可否】 可 設定はデフォルトのままで、マクロのときだけ、「保存しますか?Y/N」を飛ばして保存することは可能ですか? 「開いて、いじって、閉じて」というマクロを組んだけど、ダイヤログで止まるのはどうも・・
よく調べないで適当に答えると多分 ActiveWorkbook.Save Application.DisplayAlerts Application.Quit あたり
>>840 まあ、素人から見ればCADと言えば建築設計が最初に思いつくんだろうな。
彼はそっちの世界に精通した人間ではなく、素人なんだから仕方ないさ。
844 :
名無しさん@そうだ選挙にいこう :2006/05/21(日) 17:54:40
どうやら香ばしいCADスレに迷い込んだらしい
845 :
名無しさん@そうだ選挙にいこう :2006/05/21(日) 18:16:48
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 VBA 再計算 更新 セル etc...
>>588 でお世話になった者です。
また質問させていただきます。
例として
・セルA1に"1"と入力したらセルB2に"リボン"と表示させるようにしたいと思っております。
セルB2にIF関数を埋め込む方法でなく
セルA1に"1"を入力した直後にマクロが起動し、
マクロプログラムによって"リボン"を記述したいと思っております。
このセルA1への入力がトリガーとなるような仕組みを作りたいと思っております。
このような仕組みを作る上でWorksheet_Changeイベントを紹介してもらいましたが
セルB2に"リボン"と入力された際にもWorksheet_Changeイベントが発動し
永久ループになってしまいます。
そのため「特定のセル」が更新されたときに発動するイベントや
仕組みなどありますでしょうか?
一週間程悩みましたが答えが導き出せず消沈している次第です。
よろしくおねがいします。
>>845 > このような仕組みを作る上でWorksheet_Changeイベントを紹介してもらいましたが
> セルB2に"リボン"と入力された際にもWorksheet_Changeイベントが発動し
> 永久ループになってしまいます。
Change イベントで変更範囲が Excel.Range で渡されるから
変更範囲に特定セルが入ってるか調べればいいような
847 :
846 :2006/05/21(日) 18:25:00
説明不足かもしれないので念の為。 Excel.Range オブジェクトは、セルに関するさまざまなプロパティが入ってる。 例えば .Row や .Column プロパティでセルの座標を取得することだってできるはずだよ
>>841 ありがとう。
結果的には上手くいかなかったけど
そのコードからググって出たのを試して、
スムーズにダイヤログが出るようになったので、満足しています。
以前は妙なタイミングで聞いてきたから(まぁ自分のやり方なんだけど)
>>845 マクロでないとダメなんですか?
関数でも出来るようにおもいますが。
私が試したところではループになりませんでした。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("A5") = 1 Then
Range("B5") = "リボン"
Else
Range("B5") = ""
End If
End Sub
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 可(微妙) 【4 VBAでの回答の可否】 可 シートの名前が一定でなくて、上手くマクロを組めないのですが、良い方法はありますか? 「5月1日」〜「5月31日」までのシートがあり、常に最終日(5/31)を選択したいです。 6月になると、「5月31日」では通用しませんし。
>>850 連続したデータなら下から昇って取得するとか
>>852 例えばA列が日付だとして
Range("A65536").End(xlUp).Select
とか…
シート名を無視して全シートを別のブックに貼り付けるには、どーしたらいいですか?
856 :
854 :2006/05/21(日) 19:15:25
誤解されると悪いから・・・
自分は
>>850 さんではないです
>>854 ごめん…orz
Sheets(Sheets.Count) でいいかな?
>>850 月末のシートは必ずあるのかないのかによって変わると思うけど
859 :
850 :2006/05/21(日) 19:50:47
>>857 ちょっとうまくいきません。
>>858 月末のシートは、あるとは限りません。
なんていいましょうか・・・
言いたいことを無理に偽コードにすると→「*月*日<最大値」ってとこでしょうか。
>>859 たとえばシートを昇順に並べ替えるコードの後に
Sheets(Sheets.Count)をSelectするというのはどうだろう?
偽コードなんていらないから、日本語で具体的に
862 :
850 :2006/05/21(日) 20:01:18
>>861 えと、
営業日にシートは作られていき、シートの名前は日付。
そんでマクロで、その中のシートの末日を選択したい。
864 :
850 :2006/05/21(日) 20:11:11
>>863 いえ、一日だけです。
ただ、暦的に31日のこともあれば、28日のときもある。
暦的に31日でも、その日が日曜なら29日が末日。
単純に、最も数字の高いシートが末日であり、ターゲットシートです。
一番左とか右とか、これで指定は出来ませんよね?
自分の頭では理解さえ難しい気がしてきました
意味がよくわからないんだが、シートの並びは日付順になってないってこと? 日付順なら、単純に一番右のシートが一番最後の日なんだから Sheets(Sheets.Count)でいいと思うんだが・・・
>>865 1ヶ月=1ブックでは無いんじゃないか?
と予想してみる。
867 :
850 :2006/05/21(日) 20:35:16
>>865 >>866 1ヶ月=1ブックです。
シートの並びは日付順です。
でも、私はド素人です。
Sheets(Sheets.Count)ですか、どこに挟んでもエラーが…
Sheets(Seets.Count).Select 後ろにメソッドつけないと意味ないよ
869 :
名無しさん@そうだ選挙にいこう :2006/05/21(日) 20:38:52
>>846 >>847 >>849 様
アドバイスありがとうございました。
思い通りの動きを実現することができました。
ちょっと感激しております。
今度こそ大丈夫かと思います。
本当にありがとうございました。
「最後のシートを選択したい」のであれば Sheets(Sheets.Count).Select でいいんじゃね?
871 :
850 :2006/05/21(日) 20:45:40
>>868 >>870 すいません、出来ました。
でも、すいません、余計なシートが後ろに三つありました。
このシートは固定で、名前も、シート数も変わりません。
「この三つ前」ってコード指定は可能ですか?
すいません、最初から言うべきでしたが気がつきませんでした
Sheets(Sheets.Count-3).Select
873 :
名無しさん@そうだ選挙にいこう :2006/05/21(日) 21:20:14
Excel 2000 の VBA で PasteSpecial したオブジェクトを選択する方法ってありませんか? PasteSpecial は何も返さないっぽいし、 PasteSpecial した直後に貼り付けたオブジェクトが選択されてるわけでもないし、 なんとかなりませんか?
> なんとかなりませんか? どうにでもなるよ。
875 :
850 :2006/05/21(日) 21:33:09
>>872 ありがとうです。
上手くいきました。
大変助かりました。
Sheets(Sheets.Count-X).Select
このコードは重宝しそうな気がします
>>873 PasteSpecial は、コピー済みのオブジェクトを、選択した Range にペーストするものなので、
その Range を選択しなおせばよい
付け焼刃はしかたないけど、Excel のオブジェクトの考え方をもうわかったほうがいいよ
オブジェクトは Excel のブックやシートやセルなどに紐付けされてるものだから、
対応関係がわかってれば、オブジェクトの使い方が見当つくようになる
プロパティとか、Excel メニューのオプションと一対一対応みたいなものだしね
877 :
873 :2006/05/21(日) 23:17:19
>>876 サンクスです。
よく考えたら Excel じゃなくて、Word でした。
Word のスレで聞きなおしてみます。
878 :
490 :2006/05/22(月) 11:49:39
Private Sub Worksheet_Change(ByVal Target As Range)が重なる場合はどのようにすればいいのでしょうか? それと以前データの入力規則で下記コードを教えていただいたですが入力規則に設定すると実行時エラーになってしまいます。 Private Sub Worksheet_Change(ByVal Target As Range) Range("A1:A25").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _ "c30:c55 "), Unique:=True End Sub 他に解決方法がありますでしょうか?どうも入力したデータを削除してしまうと 「実行時エラー'1004' 抽出した範囲にはフィールド名がないか、または無効なフィールド名です。」 と出てしまうようです。 よろしくお願いいたします。
879 :
名無しさん@そうだ選挙にいこう :2006/05/22(月) 14:50:33
880 :
名無しさん@そうだ選挙にいこう :2006/05/22(月) 14:58:33
>>879 なにかの問題集ですか?
エクセルに関する質問と言うより算数の質問ですね
エクセルの範疇としては
=ROUND(計算式,桁数)
千の位で四捨五入の場合上記の桁数は−3になります。
881 :
名無しさん@そうだ選挙にいこう :2006/05/22(月) 15:03:48
いや、それはわかってるんです。 =ROUND(AVERAGE(C12+C12*(D12/100)),-3) のようなややこしいことをしなければならないのかなあと思って Dをパーセンテージ表示していいという規定ならもっと楽なのですが。 もっと簡潔な方法があるんじゃないだろうかと思って。
883 :
名無しさん@そうだ選挙にいこう :2006/05/22(月) 15:17:41
>いや、それはわかってるんです
>>879 のどこに書いてあるの?
また、わかってたと言われるのも嫌なので
質問 AVERAGEを使った理由は?
884 :
名無しさん@そうだ選挙にいこう :2006/05/22(月) 15:23:46
かなり初級の問題文なんですが
わざわざユーザー定義しなくても正解があります、と採点されてしまいそうで。
>>883 AVERAGEはミスです。スミマセン実際にはAVERAGEは入力してません
=ROUND(C12+C12*D12%,-3)
こっちのほうがまだ
>>881 より簡潔ですね。
これでいいのかなあ。
> わざわざユーザー定義しなくても正解があります、と採点されてしまいそうで。 ユーザー定義ごときにわざわざも糞も無いだろ。 ユーザー定義を使ってはいけないという条件設問ならまだしも 既存の機能を使っちゃいけないなんてことがあるかよ。 > と採点されてしまいそうで。 の根拠は何処にある? 過去、そういう採点を受けたのか? それとも単なる脳内妄想?
886 :
名無しさん@そうだ選挙にいこう :2006/05/22(月) 15:49:38
>>884 問題文の答えをここで聞くなんて、良心痛みませんか、、、
『CのD%減の数値』ですよね
もう一度計算式を見直した方がいいですよ
887 :
名無しさん@そうだ選挙にいこう :2006/05/22(月) 15:58:29
いや仕事の効率が試されるので正解はひとつしかないみたいなようでして。 ユーザー定義の順を踏んでる暇あったらこのほうが早いですよというのがあれば知りたかったので。 あと千の位を四捨五入の場合ROUND(数式,-4)じゃないですか?
888 :
名無しさん@そうだ選挙にいこう :2006/05/22(月) 16:20:38
889 :
887 :2006/05/22(月) 16:31:34
そうです
「初級の問題」「採点されてしまう」「正解はひとつ」 仕事の効率がどうこう言ってるけど、どう見ても学校の宿題です。 本当にありがとうございました。
891 :
887 :2006/05/22(月) 16:37:45
違います。
887=質問者879だとして
>>887 >いや仕事の効率が試されるので・・・
社内試験か何かなのでしょうかね?
>正解はひとつしかないみたいなようでして
そんな事はないですよ。 ごく単純な計算問題は違って、
五分五分あるいは甲乙付けがたい方法はママあります。
一つの正解しかありえない会社や上司でしたら、それは同情いたします。
さて、%に関するレスですが・・・
figにある(%)というのは、数値の単位を表すものですね。
実際の数値一つ一つに%をつけて表示するわけではありません。
ということは、D列の表示形式にパーセンテージを使用するという発想はそぐわないですね。
figで設定しているように、表示形式の中から負記号を指定した数値に設定するのが
シンプルで他の人が見ても分かりやすいものでしょう。
十分な機能を有していればシンプルな方が優れていると同様に
他社と共有するなら、人が見て分かりやすいのは、大切なことです。
ROUND(C12+C12*D12%,-3) よりは
ROUND(C12+C12*D12/100,-3) の方が分かりやすい表示だと思いますよ。
長い短いだけが簡便や優劣の基準はありませんね。
893 :
名無しさん@そうだ選挙にいこう :2006/05/22(月) 16:43:21
>>887 >あと千の位を四捨五入の場合ROUND(数式,-4)じゃないですか?
聞くまでもなく試せばわかることですよね
学校の宿題でも何でもいいんだが 掲示板を自分の質問のために何レスも消費して申し訳ないって自覚を持てよ。
一問一答じゃないんだから質問・回答を繰り返して レスをいくら消費してもいいだろ、 固い事言うようだけど宿題は考える事が重要で、 ここで聞くのは違うんじゃないかな。
896 :
887 :2006/05/22(月) 18:10:09
>>892-893 ありがとうございます。
>一つの正解しかありえない会社や上司でしたら、それは同情いたします。
それが結構シビアなんですよ。
フリーターでもなくアルバイターでもなくちゃんと仕事はしているのですが、在宅で暇な時間に数千円でも稼げればと思い事務の仕事を回してもらえる会社に申し込んだんですよ。
で、この程度出来たらうちから仕事回してあげられますよ、というもので、
以前も、比べてもどっちが簡潔な数式かわからんようなもので悩んだ挙句片方に見切りをつけて送ったら、それはダメですという返事で、本当に向こうが思い描いてる“正解”1個をドンピシャで当てないとダメなようです。
その会社も事務の仕事をあらゆるところから預かって私たちに回してくれるわけだから、
自社から提出するデータは出来るだけきれいな簡潔なデータを預かり元に送り返さなければならないというのはわかるんですが。今回もやっぱり迷うなあw
>>895 だから宿題じゃないっていうのに、これで成績がつくわけでもなく、
この今回のデータを処理する間に、簡潔なデータ入力を身に付けるのが目的の訓練なわけで、間違っていたらここで注意されるか、送った後向こうから注意されるかの違いで、
向こうに送る前にここで聞いてみて正解らしきものが見つけられれば、送る前にここでひとつ身についてむしろいいくらいなんです。
邪魔してすみませんでした。
答えがひとつしかないのなら何か参考書のようなものがあってその通りに書けっていう記憶力試験じゃないの? それも無くひとつしか答えがないならやばいな
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 可 【4 VBAでの回答の可否】 可 激しく不可能な気がするのですが、マクロを組んで実行すると ズババッっと走るじゃないですか。 あれを目で追える程度にゆっくりにして、正しい動きをしてるか、間違いは無いか、確認する手段ってありませんか? 感覚的に言うと、録画したモンをスロー再生するみたいな。 玄人さんは、コードを見たり、検算したりするんでしょうけど、私みたいなのは…
899 :
名無しさん@そうだ選挙にいこう :2006/05/22(月) 18:27:21
>>887 先にお金とられてない?大丈夫!騙されてない?
在宅詐欺って数年前に流行ってたよね
>>898 ソースコードの左側にある無駄っぽい領域をクリックしてみるのじゃ。
赤くなったら成功。プログラム走らせたらそこで一時停止してくれる。
後はF5なりF8なり。
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 『セル選択 解除出来ない』『Excel 抜けられない』『Excel セル 選択 解除出来ない』
Excelを起動してセルを選択すると、左クリックがロックされたままのようになり、セル選択を解除できなくなってしまいます。マウスを動かすとそのまま選択範囲が広がってしまう状態です。
職場でいつも使っているPCを立上げ、Excelを起動したらこの状態でした。新規ファイル、既存ファイル、どちらでもなります。
ttp://q.hatena.ne.jp/1078061463 をググって発見し、同じ症状だと思いますが、
・CtrlやShiftのロック
・F8を押す
・左右のボタン両押し
を試しても直りません。
デスクトップPCで、他のアプリケーションは、マウスのボタンは正常に動作します。
あれば、マウスの中ボタン押し
905 :
903 :2006/05/23(火) 14:00:14
>>904 中ボタンをシングル押しでもダブルクリックでもダメでした。
が、ひょっとしてと思い、マウスのプロパティで中ボタンの割り当てを『ダブルクリック』にし、
試してみたら解除されました。しかし、さっきのおかしな状態にはどうやってもならないので、
何故そうなってしまったのかは不明です。
とにかく直りました。感謝!
すみません、間違って関連スレに質問投下してしまいました。 改めてこちらで質問させていただきます。 重複したデータを色づけするのに[条件付き書式の設定]からcountifで 抜き出そうとしているのですがうまく行きません。 仮に「AABBCDSBBAAAF」というアルファベットがあって、そこからAの重複は赤色。Bの重複は緑で。 とかそういった抜きだし方はできませんか? 現在「AB」の重複は一緒くたに同じ色で抜き出していますが、重複毎に違う色に条件つけられたら 便利だな、と思い質問しました。よろしくお願いします。
意味がよくわかりません Aが二文字以上あるセルは赤 Bが二文字以上あるセルは緑にしたいということですか? AもBも二文字以上あるセルはどうするのですか?
>>907 分かりづらくてすみません。
そうですね・・・複数の重複データがある場合に、おのおの違った色づけをしたいのです。
=COUNTIF(A:A,A1)>1として、複数重複があった場合、全て1色で色づけされますよね。
そういったとき、その重複数に応じた色分けをしたいのです。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 リンクの逆引きのようなことは出来ますか? このセルはドコにリンクしているかということが、視覚的に確認する方法 (あるいはそういう趣旨に近いこと)はあるでしょうか? リンクを張り巡らせ過ぎて、しかも、行き当たりばったりで組んだ報いが来ました
>>908 ちょっと条件がよくわかりませんが
どのセルとどのセルが重複しているかを確認したいのなら
条件付書式よりも、隣に=COUNTIF(A:A,A1)
みたいなセルを作って、そのセルで並べ替えをした方が早いのではないですか?
>>909 [ツール]-[ワークシート分析]とかの話ですか?
>>910 >[ツール]-[ワークシート分析]とかの話ですか?
それです!ありがとうございます
・・・おーーっ、こりゃすごい
>>908 >=COUNTIF(A:A,A1)>1として、複数重複があった場合、全て1色で色づけされますよね。
そういったとき、その重複数に応じた色分けをしたいのです。
=COUNTIF(A:A,A1)=1 の場合は○色
=COUNTIF(A:A,A1)=2 の場合は○色
=COUNTIF(A:A,A1)=3 の場合は○色
=COUNTIF(A:A,A1)=4 の場合は○色
・
・
・
ドロップダウンリストに表示される文字を大きくする方法を教えてください。 携帯からなのでテンプレ無視スイマセソ
>>913 表示を200%ぐらいにすると多少は大きくなります
>>913 とりあえず
>>3 aは質問の性質上必須。
オブジェクトなのか入力規則なのかで回答が全く違ってくるからな。
あとは一応OSとExcelのバージョンくらい書け。
このくらいはまともな脳持ってればテンプレ読まなくても自発的に書くものだ。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 1セルの中を、06/04/01(土)-04/02(日)、にして一日ずつ進ませたいです 06/04/02(日)-04/03(月)、06/04/03(月-04/04(火)、06/04/04(火)-04/05(水)←こんな感じで 色々と検索したり試行錯誤してみたりしてもどうもうまくいきません どうか日をまたいだ場合の両方を一日進ませる方法を教えてください
>>916 文字列としてでいいなら、ROW関数の返す値をカウンタ変数代わりに使うと出来るよ。
というか、その書式だと文字列として入れる以外に手は無いけど。
下方向ではなく右方向に進ませるならROWではなくCOLUMN関数ね。
あとは
>>3 ・8、とりあえずやってみてどうしてもわからなかったら自分の書いた式を貼って再質問どうぞ。
>>916 別セルに日付連番(シリアル値)が有れば簡単に出来るんだが、、、
A列に連番がある場合
=TEXT(A1,"yy/mm/dd(aaa)")&"-"&TEXT(A2,"mm/dd(aaa)")
917の方法を使うと、わざわざ連番列作らなくて済む
921 :
名無しさん@そうだ選挙にいこう :2006/05/24(水) 11:46:04
しかし入力規則のリストなのか、コンボボックスオブジェクトなのかで 内容が変わってくるのも事実なわけだが そんなことも知らないからウザく聞こえるのかな
923 :
名無しさん@そうだ選挙にいこう :2006/05/24(水) 14:00:46
グラフ作成で、縦棒1、折れ線2って作れますか? グラフウィザードには無い形なんで作れないですかねー? 初心者的質問ですいません。
できるよ 作った後にいろいろ右クリックすれば設定項目出るよ
925 :
名無しさん@そうだ選挙にいこう :2006/05/24(水) 15:20:23
回答ありがとうございます。 でも、右クリックしてもできませんでした。 ウィザードで言うところの「2軸上の折れ線と縦棒」にもう1本折れ線 を入れた形のグラフを作りたいんですが・・・
926 :
490 :2006/05/24(水) 15:36:02
これの値を削除しても動くようにして欲しいのですがいまだ回答を得ず。 誰かお願いします。 Private Sub Worksheet_Change(ByVal Target As Range) Range("A1:A25").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _ "c30:c55 "), Unique:=True End Sub
927 :
名無しさん@そうだ選挙にいこう :2006/05/24(水) 15:49:02
>>926 今までの流れが分らん
それと「これの値」は、なにさしてるの?
>>926 わからないことが出てくるとすぐに聞くのはやめなさい
自己解決なされても解決方法を書かないようですし・・・
929 :
名無しさん@そうだ選挙にいこう :2006/05/24(水) 16:45:40
適切なアドバイス 死ね
930 :
名無しさん@そうだ選挙にいこう :2006/05/24(水) 17:50:36
適当な二桁の数字の横に10以下は-1、20以上30未満は1、30以上は2。と合計額 これの隣に1ならC、2ならB、3ならA。 更に隣にAの合計、Bの合計、Cの合計。 これ作らないといけないんだが、作り方を教えてください。
931 :
名無しさん@そうだ選挙にいこう :2006/05/24(水) 17:59:02
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 不可 【5 検索キーワード 】 順番 並び替え 昇順 行|列A| 列B| 列C| 列D ------------- 1|名前|腹筋 |背筋 | 握力 2|佐藤| 10,0 | 60,0 | 10,0 | 3|鈴木| 30,0 | 50,0 | 20,0 | 4|佐藤| 20,0 | 40,0 | 30,0 | 5|鈴木| 30,0 | 30,0 | 40,0 | これを↓のように、個別に 腹筋 1位|木村| 2位|佐藤| 3位|鈴木| : 50位|山田| 背筋 1位|山田| 2位|鈴木| 3位|田中| : 今は、列をコピー → 空いてるトコにペースト → 並び替え → コピペ という作業でやってますが、関数を使って、順位のセルに名前が出てくるように出来ないでしょうか。 よろしくお願いします。
作業用に B6:B10 =RANK(B1,$B$1:$B$5)+ROW(B6)/65537 A11:A15 1〜5 B11:B15 =INDEX($A$1:$A$5,MATCH(SMALL($B$6:$B$10,A11),$B$6:$B$10,0)) 各人の順位を計算し、順位を小さいほうから取り出し検索、その位置にある人を表示 他に効率のいい方法があっても責任は取れないぞ
933 :
名無しさん@そうだ選挙にいこう :2006/05/24(水) 18:36:25
>>931 1.名前の左に列を3列挿入
2.それぞれの列に=RANKで順位付け
3.これをベースに=VLOOKUPで名前抽出
例題では名前が重複しているけど単なるミスだよね
重複してると上手くいくかは未確認
934 :
名無しさん@そうだ選挙にいこう :2006/05/24(水) 18:48:46
>>930 まずは算数の勉強をやり直したほうがいいみたいだね
以下,以上:<=,>=
未満,上:<,>
合計:SUM
判別:IF
935 :
名無しさん@そうだ選挙にいこう :2006/05/24(水) 20:22:29
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 連続印刷 EXCELのシート上にラベルのフォームを貼り付けて、 VBAから中身を書き換えて、印刷を行います。 一回だけなら問題ないのですが、 値を変えて印刷をループで行うと、一回目のものと変化ありませんでした。 While PrintPageNum < PrintPageMax ShowPrintPage PrintOut PrintPageNum = PrintPageNum + 1 Wend PrintPageNumはグローバル。 ShowPrintPageはPrintPageNumを参照して値を書き換えます。 ループ中にSleepを入れても駄目でした。 フォームの中身の更新のタイミングがVBAのマクロが終了したときっぽいところまでは突き止めましたが、 VBAはイベントドリブンなので、マクロを抜けた跡に、再描画させてプログラムを走らせられないので、考え物です。 よろしくお願いします。
936 :
名無しさん@そうだ選挙にいこう :2006/05/24(水) 20:45:40
A1〜A12に数値を入力します。 その平均をA13に返すとすると、A13=SUM(A1:A12)/12ってなりますよね。 ほとんどはこれでいいのですが、たま〜に、/11や/10にしたい時があります。 この時はA11やA12は空白です。どういう式を入れたらいいのでしょうか。
937 :
名無しさん@そうだ選挙にいこう :2006/05/24(水) 20:54:23
AVERAGE(A1:A12) これでイナフ。 空白は無視してくれる。
938 :
936 :
2006/05/24(水) 21:12:29