■戻る■ 元のスレッド

アップローダー
Excel総合相談所 40

1名無しさん@そうだ選挙にいこう :2005/12/09(金) 18:26: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あたりの解説を参考に使ってみよう。

※人大杉でテンプレ・Q&A・ログが読めない場合は、2chブラウザを導入するか、下記のログを読みましょう。
  ・前スレログ http://makimo.to/cgi-bin/dat2html/dat2html.cgi?pc8/2/bsoft/1128606047/
  ・現スレログ 上のURLの末尾の数字10桁を現スレのものに書き換え。
          現スレURLは「 >>1 」←これを右クリックしてプロパティを選択すると表示されます。
・前スレ http://pc8.2ch.net/test/read.cgi/bsoft/1131287690/

2名無しさん@そうだ選挙にいこう :2005/12/09(金) 18:26:40
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F)
・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意
・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。
・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。
・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
・6 バグ・動作上の不都合などはマイクロソフトのサポートを受けましょう。ここは技術的な質問のみで。
・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ない処理も出来ます。
  Excelの操作に関係ない部分は、VBスレやAPIスレなどの該当スレで質問しましょう。
・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。
  例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。
  その上で、どううまくいかないのかを具体的に書きましょう。
  エラーが出るなら、何処でどういうエラーが出るのか、
  想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。


※ 必要情報を書かなかった場合は、回答者が勝手に解釈して答えることもあります。
  情報や条件は最初の質問時にきちんと書きましょう。
  情報条件なんて聞かれてから後出しすればいいなんて思わないように。
  指摘されてから書き直しても、その質問にはまともな回答が付かないと思ってください。

  ここは、きちんとマナーを守ってる質問者には「・分かる人はできるだけ回答して下さいませ。」というスレです。
  明記してある質問マナーすら守らない人に、丁寧な回答を付ける義理なんてありませんから。


▼━回答者の心得━━━━━━━━━━━━━━━━━━━━
・1 質問者が書いたバージョンのExcelを持ってない場合は、確認したバージョンを明記しましょう。
・2 質問条件は良く読みましょう。
・3 『 【3 VBAが使えるか    .】 いいえ/【4 VBAでの回答の可否】 可 』の場合はコピペで動作するコードを書いてあげましょう。

3名無しさん@そうだ選挙にいこう :2005/12/09(金) 18:28:58
= FAQ: 基本 =
Q1:こんな関数ありませんか?
A1:「関数の挿入」にある検索機能や、ヘルプの検索を利用しましょう。

Q2:数式がエラーを返すんですけど
A2:関数をネストせず、数式を分解してみてください。
   どの関数がエラーになっているのか解れば、その関数の参照先や、
   ヘルプなどを見て大抵は簡単に解決できます。

Q3:計算結果やセルの値によって自動で書式を変更したいんですが
A3:条件付き書式を利用してください。
   数値比較で文字色のみの指定なら表示形式でもできます。

Q4:計算結果やセルの値によって表示形式を変えたいのですが
A4:表示形式のユーザー設定で複数条件の表示形式を指定できます。
   基本形式は「正の数;負の数;0の場合;文字の場合」です。(;は半角で)
   又は「[>=70]70以上の場合;[>=50]50以上の場合;50未満の場合;文字の場合」というような指定も出来ます。
   書式記号などに関することはヘルプを参照しましょう。

Q:5計算結果が自動で更新されなくなったんですが、どうすれば直せますか
A:5Excel(2002?)の不都合で、計算方法が手動になってしまうことがあるようです。
   ツール > オプション > 計算方法
   で、計算方法を自動にすることで元にもどります。
   参考URL:ttp://support.microsoft.com/default.aspx?scid=kb;ja;817716

4名無しさん@そうだ選挙にいこう :2005/12/09(金) 18:29:32
= 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を右クリック→解放

5名無しさん@そうだ選挙にいこう :2005/12/09(金) 18:30:06
= FAQ: 計算したい。角度とか =
Q:例えば、一つのセルに1803329と入力すると
  180度33分29秒と表示されるようにするには
  どうすればいいのでしょうか?
  ついでに計算もしたいです。
A:「1803329と入力すると180度33分29秒と表示される」
  というのと、計算できるというのを両立させるのは無理。
  書式を
  [h]:mm:ss や [h]"度"mm"分"ss"秒".00
  などにしておき、入力するときには
  180:33:29.99
  などとすれば、表示も計算もできる。

・その他時間とか日付とかの計算について
 勤務時間を計算するには
 ttp://support.microsoft.com/default.aspx?scid=%2Fdirectory%2Fworldwide%2Fja%2Fkblight%2Ft009%2F3%2F46.asp
 日数および日付の表示方法と計算方法 - 基本編
 ttp://support.microsoft.com/default.aspx?scid=%2Fdirectory%2Fworldwide%2Fja%2Fkblight%2Ft009%2F3%2F45.asp

= FAQ: 合計から元の数を逆算 =
Q:たくさんの数値のリストがあって、
  リスト中のいくつかの数の合計と思われる数値が与えられました。
  リスト中のどれとどれの合計か調べることはできますか?
A:ナップザック問題(knapsack problem)として知られている難問です。
  一般的には総当りで調べるしかありませんが。
  しかし、データに特徴がある場合(桁数が限られているなど)には、
  うまい方法があって、速く解けることもあります。
  下記のページを参照してみてください。
   ナップザック問題をExcelで解く
   ttp://www.geocities.co.jp/SiliconValley-Oakland/8139/

6名無しさん@そうだ選挙にいこう :2005/12/09(金) 18:30:36
= 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)

詳しくはヘルプを参照しましょう。

7名無しさん@そうだ選挙にいこう :2005/12/09(金) 18:31:14
= FAQ: グラフについて =
Q1:データの空白部分があって、そこで折れ線が切れてしまいます。
   繋げたいのですが如何したらいいでしょうか?
A1:グラフを選択>ツール>オプション>グラフ>空白セルのプロット「補間してプロットする」にチェック

Q2:棒グラフに重ねて、折れ線グラフを表示するにはどうしたらいいのでしょうか?
A2:最初、すべてのデータを棒グラフで作成。
  次に、折れ線で表わしたいデータ系列のどこかを、グラフ上で右クリック
  サブメニュー>グラフの種類>折れ線>OK

Q3:ある系列だけ、縦軸を別にしたいです。
A3:その系列のどこかを、グラフ上で右クリック
  データ系列の書式設定>軸>使用する軸「第2軸」にチェック>OK


= FAQ: 入力した値が変わる? =
Q:セルに入力した値が勝手に変わってしまうのですが
  入力したままの形で表示させるにはどうしたらいいですか?
A:数字でよくあるケース(先頭のゼロが消えてしまう、日付として解釈されてしまう)
  入力する時、先頭にアポストロフィ(')をつけるか、
  該当するセルで右クリック−「セルの書式設定」−「表示形式」で「文字列」を選択。
  文字列ではなく数値として扱いたいときは
  「セルの書式設定」−「表示形式」で「ユーザー定義」を選択し、工夫する。
A:文字でよくあるケース(i⇒I、teh⇒the、cna→can など)
  ツール→オートコレクト→入力中にオートコレクト
  の該当する箇所を削除。

8名無しさん@そうだ選挙にいこう :2005/12/09(金) 18:31:45
= 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:スレ違いです。
  開きたいブラウザの設定画面でそのブラウザを通常使うブラウザに指定してください。

  ※ブラウザからの設定だけではきちんと設定出来ない場合もあります。
    詳しい情報をお持ちの方はこのスレにてご一報ください。

9名無しさん@そうだ選挙にいこう :2005/12/09(金) 18:32:18
= FAQ: セル内での改行 =
Q:セル内で改行したいんですがどうすればいいでしょうか
A:改行したい位置でAltを押しながらEnterを押せばセル内改行できます。


= 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)
  (変換計算しただけでは表示形式は変わらないので、セルの表示形式は任意で変更しましょう)

10名無しさん@そうだ選挙にいこう :2005/12/09(金) 19:04:04
= 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)

11名無しさん@そうだ選挙にいこう :2005/12/09(金) 19:04:39
★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        ←個人用マクロブックの標準モジュール

  ※ 標準モジュールを追加するには、追加したいプロジェクトツリー上で右クリックし、
     メニューから[挿入 → 標準モジュール]を選択してください。

12名無しさん@そうだ選挙にいこう :2005/12/09(金) 19:05:07
Step2-b ボタンに登録する。
 通常、イベントで動かすマクロ以外は、マクロの一覧から選択して実行しますが、
 頻繁に使う場合や、他の人が操作する場合はシート上のボタンを押して実行できるようにすると便利です。

 まず、メニューから[表示 → ツールバー → フォーム]と辿ってフォームツールバーを出し、
 ボタンアイコンを押して、適当な場所にボタンを作ります。
 ボタンを作ると自動的に[マクロの登録]というダイアログが立ち上がるので、
 (立ち上がらない場合はボタンを右クリックして[マクロの登録]を選択)
 [新規作成]を押して表示されたコードウィンドウのカーソル位置にコードを張り付けます。
 既存のマクロを登録する場合は、[マクロの登録]で一覧から選択して、[OK]を押してください。

Step3 マクロの実行
 ボタンに登録したものは、ボタンを押せば実行されます。
 イベントで動かすものは、所定操作をした時に自動で実行されます。
 それ以外はメニューから[ツール → マクロ → マクロ]と辿って表示されたマクロの一覧から選択して実行します。

Step4 トラブルが起きたら
 トラブルを自己解決出来ない場合は、
 ・エラーが出る条件 (どうやってもエラーが出る、〜をしたときにエラーが出る、等)
 ・エラーメッセージ (ダイアログ上でCtrl+Cを押せばメッセージをコピー出来ます)
 ・エラーが出る位置 (エラーダイアログ上で[デバッグ]を選択すると、エラー位置がハイライトされます)
 などを報告しましょう。
 また、期待通りの動作をしない場合も、条件や想定上の結果と実際の結果の内容など詳しく書きましょう。

13名無しさん@そうだ選挙にいこう :2005/12/09(金) 19:05:33
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

 ▼環境・書式
  ・ 列数を256列以上、行数を65536行以上に増やす
  ・ 条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA)
  ・ 行の高さを0.25きざみ以下の単位で指定する
  ・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト)
  ・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける)
  ・ 祝日を判断する (作業セルに祝日を列挙、VBA)

 ▼操作
  ・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成)
  ・ 複数シートを選択して入力規則やシートの保護を設定する (VBA)
  ・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA)
  ・ 選択範囲から一部を除く
  ・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える)
  ・ 1セルを分割 (分割したいセル以外を結合)

 ▼数式・関数
  ・ セルの書式情報を関数式で取得する (ユーザー定義関数)
  ・ 表示定式以外の書式の取得設定 (ユーザー定義関数)
  ・ 関数式でセルの選択状態を取得する (VBA)
  ・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA)
  ・ 入力したセルに結果を返す (VBA)
  ・ 範囲を引数にしての文字列連結 (ユーザー定義関数)
  ・ 不定な数の結果を返す (VBA 必要最大数が解っていれば最大数分の数式を組み、結果上不要なものを論理式で非表示にする)
  ・ 値の書き換え、値の保持 (VBA)
  ・ 複数の結果を抽出、不特定数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む)

14名無しさん@そうだ選挙にいこう :2005/12/09(金) 19:06:11
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

 ▼VBA
  ・ ExecuteExcel4Macroの参照で空セルと0値を区別する
  ・ セルの値や変数値で直接変数名を指定する

 ▼ユーザーフォーム
  ・ フォーム上から変更したプロパティ値の保持 (シートや外部ファイルに書き出して、次回読み込む)

 ▼グラフ
  ・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる
   (オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入)
  ┌┐
  〜〜
  ||

15 ◆MONA...smk :2005/12/09(金) 19:11:38

   ∧_∧
  ( ´∀`)  新スレおめでdだモナー
  (     )
   | | |
  (_ )_)

16名無しさん@そうだ選挙にいこう :2005/12/09(金) 19:12:08
・関連スレ

Excel総合相談所・雑談・議論スレ
http://pc8.2ch.net/test/read.cgi/bsoft/1120184635/

★Word/Excel (MS-OFFICE) 初心者スレッド Part25★
http://pc7.2ch.net/test/read.cgi/pcqa/1131457054/

 OpenOffice.orgってどうなの? Part6.0.0
 http://pc8.2ch.net/test/read.cgi/bsoft/1121949269/

 VBプログラマ質問スレ(6.0以前) Part44
 http://pc8.2ch.net/test/read.cgi/tech/1130231657/

17>>1です :2005/12/09(金) 19:14:49
VBプログラマ質問スレ(6.0以前) Part44
http://pc8.2ch.net/test/read.cgi/tech/1130231657/

これ過去スレになってたんだけど、新スレ立ってないので
そのまま載せときました。

18名無しさん@そうだ選挙にいこう :2005/12/09(金) 22:42:59
Excel総合相談所 40
http://pc8.2ch.net/test/read.cgi/bsoft/1134006968/l50

19名無しさん@そうだ選挙にいこう :2005/12/20(火) 14:54:04
exel2000を使っているのですが、先日OSを2000から
XPに替えたところ、マウスでセルを左クリックしたまま
下にスクロールさせた時のスピードが極端に遅くなり
ました。
 XPで100の位が1,2,3と増えていくスピードと2000
で1000の位が増えていくスピードが同じくらいです。
こんなものでしょうか?

20名無しさん@そうだ選挙にいこう :2005/12/20(火) 16:34:52
>>19
exel2000に関しては、
Exelスレで聞いてくれ。
Excelに関しては↓で聞いてくれ。
http://pc8.2ch.net/test/read.cgi/bsoft/1134006968/

21名無しさん@そうだ選挙にいこう :2005/12/20(火) 17:20:32
>>20
すみません。
ありがとうございました。

22ニュートン法 :2006/01/13(金) 13:21:27
F(x)=x^2-e^(-x)-2=0 初期値はX0=6 収束条件はE=10^-5です。
VBAでニュートン法を使ってこの問題を解くとプログラムはどうなりますか?
教えてください!

23名無しさん@そうだ選挙にいこう :2006/01/13(金) 17:11:29
  http://www.geocities.jp/c_wolf_ac/vip.zip     
   「この電話、全部録音しといたんで 訴訟のときの証拠にしても良いですか」   
  \___________________________________/      
         ∨      
           ___                _      
       / ____ヽ           /  ̄   ̄ \    楽天乞食恐るべしっ!!  
       |  | /, −、, -、l           /、          ヽ  社会通念とか常識とかが欠落した乞食ゴネ厨の   
       | _| -|○ | ○||         |・ |―-、       |   訴訟発言とか厚顔無恥っぷりが凝縮されてます  
   , ―-、 (6<_ー っ-´、>        q -´ 二 ヽ      |  生理的に厳しい粘着声で語る「訴訟」発言はまさに必聴    
   | -⊂) \ ヽ_  ̄ ̄ノノ          ノ_ ー  |     |   「粘着クレーマー狂奏曲」と名付けて永久保存がふさわしい! 
    | ̄ ̄|/ (_ ∪ ̄ / 、 \        \. ̄`  |      /      
    ヽ  ` ,.|     ̄  |  |         O===== |      
      `− ´ | 朝鮮者  | _|        /          |      

24名無しさん@そうだ選挙にいこう :2006/01/13(金) 17:13:23
ぬるぽ

25名無しさん@そうだ選挙にいこう :2006/01/14(土) 06:45:27
>>22
マルチ3スレ目
もしかしたらそれ以上だったりして

26名無しさん@そうだ選挙にいこう :2006/01/14(土) 19:41:18
質問です。
EXCEL2000である列にふくまれる文字列を別の列に表示させたい
のですが
例えばA列へ順番にりんご、ばなな、メロン、りんご、なし、ぶどう、なし
とあった場合B列にりんご、ばなな、メロン、なし、ぶどう
と出力させたいのですが。

27名無しさん@そうだ選挙にいこう :2006/01/15(日) 09:12:22
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 別シート、データ

予め別シートに「国別の年齢層別にみる人口」
(アメリカ:80歳以上n人70-79歳m人...イギリス:80歳...みたいなもの)が二次元データとして入力されており、
セルA1に「アメリカ」と入力されたとき、セルA2以下に各々のデータを自動入力したい。
可能であれば、マクロを実行したら処理が行われるのではなく
セルに関数を設定しておいて、「アメリカ」と入力したら自動で値の参照が行われるようにしたい。

検索キーワードすら思いつかないので、それだけでも教えていただければ、と思います。

28名無しさん@そうだ選挙にいこう :2006/01/15(日) 11:19:25

▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼

ここは、>>1が次スレに気付かずに立ててしまった重複スレです。


現在の本スレはこちら

Excel総合相談所 40
http://pc8.2ch.net/test/read.cgi/bsoft/1134006968/l50

▲▽▲▽▲▽▲▽▲▽▲▽▲▽▲▽▲▽▲▽▲▽▲▽▲▽▲

29名無しさん@そうだ選挙にいこう :2006/01/15(日) 13:00:56
>>28
サンクス、貼り直してくる

30名無しさん@そうだ選挙にいこう :2006/01/16(月) 16:43:11
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 最終セル セル範囲

A1から編集済みの最終セルまでを選択範囲にしたいのですが、
何か良い方法ありませんか?

3130 :2006/01/16(月) 16:46:29
自己解決しました、お騒がせしました。

Range(Range("a1"), ActiveCell.SpecialCells(xlCellTypeLastCell)).Select

32名無しさん@そうだ選挙にいこう :2006/01/19(木) 21:44:56
超初級レベルで申し訳内のですが、聞いてください。
3つのファイルを同時に開くと、
タスクバーへファイルが1つしか表示されません。
しかし、そのファイルの1つを「閉じる」にすると、
開いたもののうち、1つが表示されます。
たぶん、1つの中に3つを表示させる形になっていると思うのですが、
これを別々に表示させる方法を教えてください。

33名無しさん@そうだ選挙にいこう :2006/01/20(金) 06:59:55
4つ上のレスくらい読めないの?

34けすいけ :2006/01/22(日) 12:35:32
シートの中で何個かの単語(名前とか)を使う表を作って
表の中で定期的に並べ替えをしたいんですが、
その何個かの単語を事前に登録しといて
簡単に選んでだせるような方法はないでしょうか?
(クリップボードを使わない方法で)
なんかセルの横の三角をクリックすると出るとかいう話なんですが。。。


35名無しさん@そうだ選挙にいこう :2006/01/22(日) 13:06:05
入力規則かコンボボックス

36名無しさん@そうだ選挙にいこう :2006/01/22(日) 16:12:23
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

今表計算をやっており、納品/出品/在庫のような形でやっているのですが。
式を連続データでコピーすると、コピー先にも上の行の数値が出てしまいます。
納品 出品 在庫
1000    1000
    100  900
        900
        900
        900
〜〜〜〜〜〜〜〜
総数 総数
1000 100  900
こんな感じです。余分な所の在庫数は見えないように出来ますか?
計算上、一行上の在庫数を見ないと行けない為しょうがないのでしょうか?
式は=(E6+C7)+(-D7)です。

37名無しさん@そうだ選挙にいこう :2006/01/22(日) 16:24:06
>>36
>>6読め

ただ、これだけだと最後の行の900が出せないから
そこはE列データ範囲の一番下にある数値を返す式を入れておけ
これは過去ログでも何度か出てきたしググればサンプルも転がってる

3836 :2006/01/22(日) 16:54:02
>>37
ありがとうございます。行って来ます。

39名無しさん@そうだ選挙にいこう :2006/01/22(日) 18:36:21
いろいろ調べてみたんですが分からないんで質問させてくださいませ
【1 OSの種類         .】 Windows 2000
【2 Excelのバージョン   】 Excel 2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 できれば否
【5 検索キーワード     】 指定したセル 参照

A1 モナー  B1 ギコ  C1 しぃ

上のような状態のデータを、A2セルに「=CONCATENATE(A1,"・",B1,"・",C1,"・")」として
「モナー・ギコ・しぃ・」という形に整形しています
この「モナー・ギコ・しぃ・」という整形された文字列を手動でコピーして別アプリケーションに
ペーストしたいのですが、A2をクリックしてコピーしようとしても出てくるのは当然関数式…
現状ではA2「コピー」→A3「形式選択貼り付け・値」→A3「コピー」という手順を踏んでます
これを自動化するか、或いはA2の値を参照して、それをA3に投げるというような関数は
無いでしょうか? お分かりになる方、よろしくお願いいたします

40名無しさん@そうだ選挙にいこう :2006/01/22(日) 18:36:57
センター試験の答えあわせをしたくて、
正解と配点がかかれたexcelファイルがあり、自己採点欄が空欄になっています。

IFを使って、正解のときは足して、不正解の時は0としようとしたのですが、
全部作るのは手間でどうにもなりません。

私はIF(A1=B1;C1;0)+...のような関数を立ててみたのですが、一気にできないでしょうか?

41名無しさん@そうだ選挙にいこう :2006/01/22(日) 18:41:25
>>39
=T(A2)
の結果だとどうかな?
関数式全滅だったらVBAをちょっとがんばってみると楽なんだけど、
とりあえずためしてみて。

42名無しさん@そうだ選挙にいこう :2006/01/22(日) 18:43:51
>>40
IF関数が使えるなら、A列に正答、B列に回答、C列に判定式(ex:=A1=B1、合ってればTRUE、間違ってればFALSEが返る)にしといてさ、最終的にはC列の合計を数えればいいんじゃないのかな?
)

4339 :2006/01/22(日) 18:56:10
>41
素早いご回答ありがとうございます
ご教授の方法は、A3セルに「=T(A2)」と記述という事でしょうか?
その方法でもやはりWクリックでコピーできるのは関数式でした…

またなにか別の方法がございましたらよろしくお願いいたします

44名無しさん@そうだ選挙にいこう :2006/01/22(日) 19:03:26
ダブルクリックなんてしないで、普通にセルを選択してコピーすりゃいいじゃん
ここまま張り付けると、Excelや表計算ソフトの一部では、数式になるけど
普通のエディトコントロールでは、テキスト形式になるだろ

4540 :2006/01/22(日) 19:23:42
>>42 レスありがとうございます。
今やってみて成功しました。
これですばやく自己採点できそうです。ありがとうございました

4639 :2006/01/22(日) 19:30:12
>44
ご回答ありがとうございます
ご指摘の方法でもコピペできるのですが、39ではあまりに冗長になるので
データ範囲をA1〜C3としていますが、実際にはもっと長く(最長60列)、しかも
不定なため、整形の為の関数は「=CONCATENATE(A1,"・",(後略」文を4つ、
更にその4つをCONCATENATEで纏めるという無理矢理な事をしています
結果、データが少ない場合は「モナー・ギコ・しぃ・・・・・・・・・・・・・・・・・・・(後略」と
いう整形結果になります
これをコピペした後、後半の不要部を削るのではなく、Excel上でデータを確認
しつつ頭から必要分だけ(上記例では「モナー・ギコ・しぃ・」だけ)コピーできたらい
いなぁ…という訳でして

全くデータを持ち出せない状態では有りませんので、万が一何か簡単な方法が
あれば教えていただきたいなぁ という状態です
言葉足らずで申し訳ございません

47名無しさん@そうだ選挙にいこう :2006/01/22(日) 19:35:12
エクセル97をWINXPで使用しています。

最近使用していて、文字を入力すると
ローマ字入力で”関東”→"kantou"と入力するとKと打ったところで
"kk"と二回打った形で入力されてしまうようになりました。
その結果ふつうに入力すると"関東K"といった表示になってしまいます。

別のキーボードをつけても同様の結果なのでソフト的な問題だと思うのですが
エクセルの設定上でこのようなことになることはありますか?



48名無しさん@そうだ選挙にいこう :2006/01/22(日) 19:53:51
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel20003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 EXCEL 印刷 ウィンドウ枠固定

上2行を固定し、印刷したいのですが「印刷」→「ページ設定」→「シート」タブ
と移動したのですが【印刷タイトル】の箇所が灰色状態で操作出来ません。
ウィンドウ枠を一旦解除し、再固定しても直らないです。
解決方法がありましたら、教えてください。

49名無しさん@そうだ選挙にいこう :2006/01/22(日) 20:07:18
>>46
つまりコピペは通常の方法で問題ないけど、
表示されたテキストの任意範囲のみをコピーしたいってことか
最初の質問と全く内容が違ってるな

とりあえずデータが左詰めなら、"・・"の位置を探して、その位置までの文字列を
LEFT関数で返し、その結果を普通にコピペすりゃいいじゃん

>>47
さようなら

>>48
未来人さん、こんにちは
1万8千年後もExcelは健在ですかそうですか

とりあえず印刷や印刷プレビューからではなく、
メニューバーのファイル>ページ設定を辿ろう

50名無しさん@そうだ選挙にいこう :2006/01/22(日) 20:15:33
ひどいやつ

51名無しさん@そうだ選挙にいこう :2006/01/22(日) 20:23:03
(´-`).。oO( 誰に対して言ってるんだろう・・・ )

52名無しさん@そうだ選挙にいこう :2006/01/22(日) 20:27:21
>>49
消えろ。邪魔なだけ。


53名無しさん@そうだ選挙にいこう :2006/01/22(日) 20:33:50
どうやったら消えますか?

54名無しさん@そうだ選挙にいこう :2006/01/22(日) 20:44:22
>>51>>53
バカに構うな。

55名無しさん@そうだ選挙にいこう :2006/01/22(日) 20:58:31
>>前スレ998
>もっとも単純な仕様
プログラムに置いて、こういうものは存在しない。
あるいは、こう思った時点で発展は止まる。

こっちでまた聞き直す気なら、>>の▼━ 質問のしかた ━と
>>2の▼━質問時の注意・決まり事━をよく読んで、
自分の書いたコードもきちんと貼るように。

56名無しさん@そうだ選挙にいこう :2006/01/22(日) 21:18:41
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
セルに数値だけのシリアル番号
例: 955069340562
を入れたいのですが、
数値として扱われてしまい
例: 9.55069E+11
のように表示されてしまいます。
書式設定に文字列として設定してもダメです。どう設定すれば入力した
そのままに表示されるのでしょうか?


57名無しさん@そうだ選挙にいこう :2006/01/22(日) 21:22:31
セルの幅広げればよくね?

58名無しさん@そうだ選挙にいこう :2006/01/22(日) 21:39:33
それはやってみました。
数値にすると表示されますがそれやると0から始まる番号が
頭の0が全部消えてしまいます。

5956 :2006/01/22(日) 21:42:33
なぜかセル毎にダブルクリックすると表示されるようになりました
もう、わけわからないです。
データなのでセル毎にダブルクリックしてたらたいへんな手間になってしまいます




60sage :2006/01/22(日) 22:10:27
>>56
入力前に文字列として書式設定するとよいのでは?

61名無しさん@そうだ選挙にいこう :2006/01/22(日) 23:19:08
エクセルのファイルを提出しなければいけないんですが、
コピーしてしまえばすぐに終わるのですが、コピーしたかどうかバレるとマズいんですが、
ファイルをコピーしないで、セルをコピーして自分のファイルに貼り付けたらバレませんかね?

62名無しさん@そうだ選挙にいこう :2006/01/22(日) 23:25:47
どういう「バレ」なのかにもよるが
内容が同じならばれるだろ?

63名無しさん@そうだ選挙にいこう :2006/01/22(日) 23:30:27
>>56
表示形式に
000000000000
を指定する。
頭に0もつくよ。

6461 :2006/01/22(日) 23:33:11
>>62
中身ではなく、大学の授業で課題を提出しなければならないんですが、
ファイルをトコピーすると、なにかのソフトでバレるらしいんです。

65名無しさん@そうだ選挙にいこう :2006/01/22(日) 23:39:02
質問してる暇があれば自分でやったほうが早い。

6656 :2006/01/22(日) 23:44:16
>>63
桁数は常に同じではないのです。
だいたい文字列に指定してるのに数値で扱われてるのがまったく理解できません。


6761 :2006/01/22(日) 23:45:30
>>65
時間がないんです(涙)


6863 :2006/01/22(日) 23:52:29
>>56
もしかして、単に
'955069340562
って先頭にアポストロフィーを付ければ良いだけの話?
数字として扱わなくても構わないのであれば。


69名無しさん@そうだ選挙にいこう :2006/01/23(月) 00:00:12
>>66
単純に、書式を「標準」から「数値」に変えればいい。
頭の0は全部消えるけど、そこは書式で。

「文字列」としても、数値を標準の文字として表示してしまうね。


7056 :2006/01/23(月) 00:04:23
>>68
えーと入力用が大量なのでアポストロフィとか余計なものを
つけていたら効率が悪くなってしまうのです、はい
というか、最初から文字列にしていれば問題ないようです。60さんの言う通り。
後から文字列に変えても表示が数値のままで、
セル毎にダブルクリックしないと適用されないのがおかしいです。
バグだと思うのですが最新のexcelでもこうなのでしょうかね。

71名無しさん@そうだ選挙にいこう :2006/01/23(月) 00:08:59
先頭にゼロの付いていない数値が入力されてるのに文字列にしたらゼロが付くのは困り茄子
つーか、ダブルクリックでゼロ付くの?

7269 :2006/01/23(月) 00:11:54
ごめん、前の見てなかった。

>>70
バグではないよ
数値を文字にするとき、書式がいるでしょ。


73名無しさん@そうだ選挙にいこう :2006/01/23(月) 00:37:38
>>70
ダブルクリックで編集モードになるんだよ。
画面左下のステータスバーのところがコマンドから編集になるでしょ。

その為、再入力されたのと同じになる。
F2キー押してEnterでも同じ。

74名無しさん@そうだ選挙にいこう :2006/01/23(月) 04:06:36
質問があります。
複数セルを選択したりすると画面の下の方に
「データの個数=24」や
「最小値=14000」などと表示がされまして、
この項目の種類は表示されているところを右クリックすると変更できるのですが、
例えば「最小値」と「最大値」の二つを同時に表示させる、といったことは可能なのでしょうか?
またできるとすればどういった方法でとなりますでしょうか?
どなたかお分かりになる方いらっしゃいましたら、
ご回答の程御願い致します。


75名無しさん@そうだ選挙にいこう :2006/01/23(月) 04:12:45
>>74
できないよ

76名無しさん@そうだ選挙にいこう :2006/01/23(月) 04:28:42
>>75
やはりそうですか。。
ご回答頂きましてありがとうございました。

77名無しさん@そうだ選挙にいこう :2006/01/23(月) 09:01:19
VBA使えば、メインステータスバーに両方表示出来るけどね

78名無しさん@そうだ選挙にいこう :2006/01/23(月) 12:57:25
超初心者で申し訳ないですが
どうやったら横書きを縦書きに変換できますか?

79名無しさん@そうだ選挙にいこう :2006/01/23(月) 13:13:42
>>78
書式設定

あとは>>2※読んでおけ

80名無しさん@そうだ選挙にいこう :2006/01/23(月) 13:33:22
>>79
テンプレ読んだりいろいろ調べてるのですが
どうしてもわかりません・・

81名無しさん@そうだ選挙にいこう :2006/01/23(月) 14:13:51
tabを使ってセルを右横移動する時の事なんですが、
半角の数字の場合は、すんなりそのまま移動出来るのですが、
全角の数字の場合、一回enterを押さないと移動出来ません。
どうしたらenterを押さずに右横移動できるようになるんでしょうか

82名無しさん@そうだ選挙にいこう :2006/01/23(月) 14:20:40
このPCだと、数字じゃなくてもtabを押すと途中でもそのまま右横移動できましたが、
メインPCだとやっぱり確定させないと右横移動できません。何が違うんでしょうか・・・

83名無しさん@そうだ選挙にいこう :2006/01/23(月) 14:38:13
IME使ってるなら入力確定しなくちゃならないので、確定の為のEnterは必須だが
入力確定した後、もう1回Enter押さないと(選択セルは入力セルの一つ下になるはず)
Tabで移動できないってなら環境固有のバグかだろうから>>2・6

84名無しさん@そうだ選挙にいこう :2006/01/23(月) 15:22:16
ありがとう。IME使用です。
おっしゃるとおり、どれだけ探しても「enterは必須」と書いてました

でもこのPCは確定しないでも、tab移動できるんですよね。
入力途中でもtabを押すと強制的に右に移動。それが不思議です
移動できてしまうのも環境固有のバグでしょうかね。もう一度調べなおしてみます

85名無しさん@そうだ選挙にいこう :2006/01/23(月) 15:24:08
書き忘れてました。
enterせずに移動できるのはノートです。
違うノートでもtabの強制移動出来ました。
デスクトップだけ出来ないのかもしれないです。

86名無しさん@そうだ選挙にいこう :2006/01/23(月) 16:08:57
Excel2003を使用しています。

    A        B        C
1 ID0000001  ほげほげ   ABCDEFG
2 ID0000002  ふがふが   CDEFGHI
3 ID0000001  ふごふご   FGHIJKL
4 ID0000001  むほむほ   IJKLMNO

のように、A列の値が重複している行が存在するデータがあります。
A列の値が常にユニークなものになるように、既にA列の値が
存在するものであった場合、その行はまるごと削除してしまいたいのです。

行の内容がまったく同じ、つまり重複した行を削除する方法は
検索していくつか見つかったのですが、上記のような要件を満たすものは
探し方が悪いのか見つかりませんでした。

どうしたらよいでしょうか?

87名無しさん@そうだ選挙にいこう :2006/01/23(月) 16:26:02
>>86
A列の一番下のセル Range("A65536").End(xlUp) の値と
一致するものがそれより上にあるかどうか判定。
あればその行を削除。

あとはループで1行づつ上に2行目までくりかえす。


88名無しさん@そうだ選挙にいこう :2006/01/23(月) 16:42:19
事故解決しました

89名無しさん@そうだ選挙にいこう :2006/01/23(月) 16:43:29
88は78です。スマソ

90名無しさん@そうだ選挙にいこう :2006/01/23(月) 16:45:27
VBAは解らないとか、VBA以外でとか
後出しで言ってきたりしそうだな
当然却下だけど

9186 :2006/01/23(月) 16:55:23
>>87さん
ありがとうございます。
>>90さんのおっしゃるようにVBAでやってみればいいということでしょうか?
C++/javaは普段使ってるのですが、VBというかMS系はあまりわからないので悩ましいところです。

ちなみに>>90さんのおっしゃることを解釈すると、
>>86を実現するにはVBAを使う以外ない、ということで合ってますでしょうか?

92名無しさん@そうだ選挙にいこう :2006/01/23(月) 16:59:29
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 ショートカットキー 文字色 セル内

セル内の文字列の一部分を赤文字にする
(セル内に長文があり、修正した部分のみ赤字にする)
という操作を繰り返す必要があります。

選択していちいちボタンをクリックしていると時間がかかるので
ショートカットキーを割り当てられないかと考えています

よろしくお願いします。

93名無しさん@そうだ選挙にいこう :2006/01/23(月) 17:38:34
【1 OSの種類         .】 WindowsXP PRO
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 EXCEL 複数行 削除

   A   B   C   D
1 項目01/項目02/項目03/項目04/...
2 . A /. B /. C /. D /...
3 項目08/項目09/項目10/項目11/...
4 . H /. I /. J /. K /...

このような表で3000行まであるのですが、1.3(奇数行)を一括で完全削除する方法はないでしょうか?
Ctrl+[選択]で複数行の削除作業をしているのですが、量が多いのでなにかテクニックはないものかと質問しました。
宜しくお願いします。

94名無しさん@そうだ選挙にいこう :2006/01/23(月) 17:41:34
OfficeXPです

セルに下のように入っているとします。

A1 ABC
A2 DEF

それで、A3のセルにA1とA2を利用して

ABC+"DEF"=

と表示させたい場合、A3セルに

=A1 & "+" & CHAR(34) & A2 & CHAR(34) & "="

と入れていますが、CHAR関数を使わないでダブルクォーテーションを表示させる方法はありますか?

95名無しさん@そうだ選挙にいこう :2006/01/23(月) 17:48:59
""が"を意味する
でこれは文字列なので""で囲い""""で"一つ分

96名無しさん@そうだ選挙にいこう :2006/01/23(月) 17:49:15
=A1 & "+" & """" & A2 & """" & "="

97名無しさん@そうだ選挙にいこう :2006/01/23(月) 17:52:53
>>95-96

即答ありがとうございました。やはり簡単な記述方法があったのですね・・・。

98名無しさん@そうだ選挙にいこう :2006/01/23(月) 17:55:59
>>96

"+" & """" → "+"""

"""" & "=" → """="

99名無しさん@そうだ選挙にいこう :2006/01/23(月) 18:12:49
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel20003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】

エクセルをカタカタ打っていて、突然ダイアログが出てきて、
ファイルが増えているんですが、何かを押しちゃったんですかね。

ファイル名Version2

とコピーファイルが生まれていたんですよ。。。

100名無しさん@そうだ選挙にいこう :2006/01/23(月) 18:29:47
エクセルに写真貼り付けると重くなるので、写真だけじゃなく
エクセルごと軽くする方法はありますか?

101名無しさん@そうだ選挙にいこう :2006/01/23(月) 18:29:52
(・∀・)ゥィルスー!!

102名無しさん@そうだ選挙にいこう :2006/01/23(月) 18:35:44
>>100
「ファイル自体」を軽くするマクロはあったような希ガス
エクセル起動を早くしたいなら、PCを高スペックに汁

103名無しさん@そうだ選挙にいこう :2006/01/23(月) 18:56:19
例えば、Aというファイルのシートを、Bというファイルに移動させると、
Bのファイルのプロパティとかで、このシートはAから移動させたものだ」
とかわかるんですかね?



104名無しさん@そうだ選挙にいこう :2006/01/23(月) 19:02:45
勝手にコピーして提出してろ

105名無しさん@そうだ選挙にいこう :2006/01/23(月) 20:34:32
>>86

ピボットテーブルでA列に対する個数を集計すると、
A列のユニークなもののリストを作れる。

そのリストを検索キーにして、元の表をlookupしたらどうでしょう。
(vlookup? hlookup? どっちだったかなぁ。)


106名無しさん@そうだ選挙にいこう :2006/01/23(月) 22:01:05
【1 OSの種類         .】 Windows98me
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 SUM セル 参照 変わってしまう

=SUM(D1:G1) の様に範囲をして指定して計算しているのですが
H1に値を入力すると、自動的に数式が= SUM(D1:H1)と変わり範囲が変更されてしまいます。
H2,H3,,,のセルも入力すると、以降も同じ様に範囲が変更されてしまいます。
これを範囲変更させないようにしたいのですが、どうすれば良いでしょうか?

また、セル+セル(=SUM(D1,E1,F1,G1)とすれば問題は無いのですが
かなり範囲の広い部分にも使用する為、できれば避けたいです。

宜しくお願い致します。

107名無しさん@そうだ選挙にいこう :2006/01/23(月) 22:08:31
1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Exce2000
【3 VBAが使えるか    .】 少しだけなら
【4 VBAでの回答の可否】 可

宜しくお願いします。

 A B C D 
1 ◎
2 ▲
3 ■    [ ]←ランダム
4 ○
5 △
6 × 

このようなA1:A6までのセルに入力された文字列を
セル「D3」にランダムに表示する関数はありませんでしょうか?

ランダムに表示させる為にはアクションが必要だと思いますので
VBAになるのでしょうか?
VBAから実行する度にA1:A6までの文字列をランダム表示する
書き方などありましたらヒントなどいただけないでしょうか?
宜しくお願い致します。

108名無しさん@そうだ選挙にいこう :2006/01/23(月) 22:14:41
>>106
=SUM($D$1:$G$1)
のように絶対参照にしても駄目?

109名無しさん@そうだ選挙にいこう :2006/01/23(月) 22:18:41
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel97
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 野球 打率
野球のスコアブックが欲しいのですが何かfreeソフトでおすすめはありますか?

110名無しさん@そうだ選挙にいこう :2006/01/23(月) 22:19:16
MS OfficeXPのWord/Excelで、「編集中の為、ロックされています。」
旨のメッセージが出るのですが、対処方法を教えて下さい。
・Officeを再インストールしても変わらず
・2年程度は使えてたが、1/19から発生
・スタンドアロンでネットワーク未接続

111名無しさん@そうだ選挙にいこう :2006/01/23(月) 22:21:47
>>106
Excel2002、2003で再現せず

>>107
あのさ、関数探すときに一つの関数で望み通りの結果を得られる物があると思わない方がいいよ
もちろん自分で関数作るなら、一つの関数で目的の結果を得られるように作ってもいいけど
既存の関数は組み合わせて使う物
>>107も再計算を使って表示させるならVBA使わずに、ワークシート関数のみで出すことも可能
ヒントは乱数とインデックス参照・・・・・つーかこれじゃ答えだな
VBAの場合もこれと同じ方法で可能

>>109
スコアブックテンプレートが欲しいってことならスレ違い

>>110
エラーが出たら、そのメッセージ内容で検索するのが基本
あとは>>2

112名無しさん@そうだ選挙にいこう :2006/01/23(月) 22:24:37
>>106
早速のお答えありがとうございます。

この機能、知りませんでした・・・・。基本ぽいので恥
うまくいきました。
本当にありがとうございました。


113112 :2006/01/23(月) 22:25:30
>>106×
>>108さん宛ての誤りです

114110 :2006/01/23(月) 22:34:05
解決しました。
ネットが無い環境なので、携帯で探しきれず苦労しておりました。

115名無しさん@そうだ選挙にいこう :2006/01/24(火) 01:09:45
Excelで作業をしていたところ、オートフィルタでデータを抽出したところで
誤って保存をしてしまい、もとのデータがすべてパーになりました。
保存履歴をさかのぼってデータを再現することはできるのでしょうか。

116名無しさん@そうだ選挙にいこう :2006/01/24(火) 04:59:52
>>115

状況が今ひとつわからないけど、
フィルターを解除すればいいんじゃないの?

117名無しさん@そうだ選挙にいこう :2006/01/24(火) 15:33:36
Windows2000 Excel2000 VBAでの回答をお願いします
次のようなプログラムで、シート2のE4に、3 がはいらずに #DIV/0! となります。
なぜでしょうか? 何日か考えましたがわからないのでお願いします。

Sub Macro1()
Worksheets("Sheet1").Range("A1:L10").Clear
Worksheets("Sheet2").Range("A1:L10").Clear
Worksheets("Sheet1").Activate
Range("A4").Value = 14
Range("A5").Value = 15
Range("B4").Value = 4
Range("B5").Value = 5
Range("E4").Formula = "=Round((A4 + A5)/((B4 + B5)),0)"
Worksheets("Sheet1").Cells(4, 5).Copy _
Destination:=Worksheets("Sheet2").Cells(4, 5)
End Sub

118名無しさん@そうだ選挙にいこう :2006/01/24(火) 16:44:03
だって値ではなく式をコピーしてるんだから、
シート2の参照先に値が無ければ0除算エラーになるのは当然じゃん
シート2のE4に、「=ROUND((A4 + A5)/((B4 + B5)),0)」という式ではなく
シート1の=ROUND((A4 + A5)/((B4 + B5)),0)が返した結果を値として入力したいなら、
コピーではなく代入を使うか、張り付け内容で値を指定しろ

あとは>>2※読んでおけ


119117 :2006/01/24(火) 17:23:55
>>118
ありがとー。下のようにしたらうまくいきますた。
Sub Macro1()
Worksheets("Sheet1").Range("A1:L10").Clear
Worksheets("Sheet2").Range("A1:L10").Clear
Worksheets("Sheet1").Activate
Range("A4").Value = 14
Range("A5").Value = 15
Range("B4").Value = 4
Range("B5").Value = 5
Range("E4").Formula = "=Round((A4 + A5)/((B4 + B5)),0)"
Dim Dainyu As Integer
Dainyu = Worksheets("Sheet1").Cells(4, 5).Value
Worksheets("Sheet2").Cells(4, 5).Value = Dainyu
End Sub

120名無しさん@そうだ選挙にいこう :2006/01/24(火) 18:44:37
>>116
おおっ!なんでそのことに気づかなかったんだ…!ありがとうございました!

121名無しさん@そうだ選挙にいこう :2006/01/24(火) 18:46:16
管理番号という物を割り振っているのですが、番号が10毎に色が付けたいです。

06010///////////

06020///////////


みやすいようにしたいのですが、量が多いのでどうにか出来ないものかと思い質問しました。

機種      WINDOWS XP
ヴァージョン EXCEL2003
VBA      使えません
VBA回答   可
キーワード  COUNT関数で色を付ける

122名無しさん@そうだ選挙にいこう :2006/01/24(火) 18:58:34
条件付書式ではどう?

123名無しさん@そうだ選挙にいこう :2006/01/24(火) 19:00:15
>>121
条件付き書式で10で割り切れれば色を付ければ良いと思います。

124名無しさん@そうだ選挙にいこう :2006/01/24(火) 19:10:39
>>122-123
なるほど、ありがとうございます。
10で割る場合、このセルの値(管理番号)はどのように入力すれば良いのでしょう?



125名無しさん@そうだ選挙にいこう :2006/01/24(火) 19:26:30
>>124
そこまでヒントをもらって何故検索しない?
http://www.google.co.jp/search?hl=ja&q=Excel+%E6%9D%A1%E4%BB%B6%E4%BB%98%E3%81%8D%E6%9B%B8%E5%BC%8F&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=


126名無しさん@そうだ選挙にいこう :2006/01/24(火) 19:26:37
【1 OSの種類         .】 WindowsXP SP2
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可(書いていただけるなら)
【5 検索キーワード     】 excel グラフ 閾値

今、家族で漢字検定の勉強をしています。
使っている教材は、「書き1」「読み1」「同音異字1」・・・「書き2」・・・
というように単元ごとに分かれており、各単元は200点満点で、180点以上が合格確実、
160以上が合格ライン、というようになっています。

長くなりましたが、ここからが質問です。
横軸が各単元名、縦軸が得点で、家族4人の得点を散布図で付けています。
今はただ単にグラフを表示させているだけなのですが、「160〜179点」と「180〜200」
の点数の場合には(散布図の点を○で囲むなど)特別な効果をかけたいのです。
良い方法はあるでしょうか?


※現在では、160点のライン(全単元で160点のデータ)と180点のラインをグラフに加えていますが、見難いです。

127名無しさん@そうだ選挙にいこう :2006/01/24(火) 21:55:46
>>126
データラベルの値を表示させて
(シートとリンクしないようにして)データラベルの表示形式に [>200]"";[>=160]"○";""
配置を中央

128名無しさん@そうだ選挙にいこう :2006/01/24(火) 22:44:26
>>125
すいません。10で割るとか余計な言葉と併用して探してました。
ありがとうございます。

129107 :2006/01/24(火) 22:52:13
>>111さん
ありがとうございました。
ちょっとぐぐってやり方を探してみたのですが
=rand()を使って・・・・とありましたがどうもうまくいきません。
VBAでどのように書けばよいのか教えて頂けませんでしょうか?
宜しくお願い致します。

130名無しさん@そうだ選挙にいこう :2006/01/24(火) 23:04:38
>>129
VBAつかわんでもF9更新でいけるだろ?INDEXとRANDを使えと>>111さんも
答え同然の事を言ってくれてるんだから・・・

131名無しさん@そうだ選挙にいこう :2006/01/25(水) 00:39:09
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 セルの検索 もしくは 転記

月報のシートのあるデータを別のシートのグラフの元データ表に転記したいのですが、
月報のシートのA1セルに1月と記入されていたら、
グラフデータの1月と書かれたすぐ下のセルに、2月と記入されたら、2月の欄に、
(1月のデータはそのまま残して)月報シートのD7セルの数値を転記するようなVBAはありますか?

132126 :2006/01/25(水) 00:49:58
>>127
レスが遅くなりました。
ありがとうございました。

133名無しさん@そうだ選挙にいこう :2006/01/25(水) 07:20:20
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ(勉強中
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 ALT 改行

フォームから選択して転記するシート1のセル高さが固定されているシートに
シート2(データ)でセル内でALT 改行してある特定のセルを転記したいと考えています。

新規にブックを作成したときに入力したセルの右側のセルに入力しなければ
デフォルトの状態であれば入力したセルの文字が表示される状態を
入力したセルの下のセルにも適用できればいいのですが・・・

シート2でALT改行されているセルの値を2行目3行目が、
シート1ではセル1、セル2(セル1の真下)、セル3(セル2の真下)に自動で割り振っても
構いませんので何か方策よろしくお願いします。

134名無しさん@そうだ選挙にいこう :2006/01/25(水) 07:32:13
>>133
具体的によろしく

135名無しさん@そうだ選挙にいこう :2006/01/25(水) 09:55:41
教えてください。

数値バーが消えてしまいました。
数値バーの出し方を教えてください。


136名無しさん@そうだ選挙にいこう :2006/01/25(水) 10:26:07
>>135  数値バー? 
数式バーなら
ツール>オプション>表示>数式バー

137名無しさん@そうだ選挙にいこう :2006/01/25(水) 10:40:33
>>136
数式バーでした。

ありがとうございました。

138名無しさん@そうだ選挙にいこう :2006/01/25(水) 10:57:27
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】不可
【5 検索キーワード     】ポイント割引 13.8%の還元率 高速道路利用料金


道路公団が民営化されて、高速道路をETC利用したマイレージサービスに変更っていうへんな
制度作っちゃったために仕事上マイレージにするとお得ですよ〜って営業しなきゃなんなくなった
んだけど、過去2ヶ月の利用で50,000以上利用すると、8,000円キャッシュバックっていうことを
数字にだしたいんだけど、どんな関数使ったらよいかわかりません。内訳は50円で1ポイントで、
1,000ポイントたまったら、8,000円に自動還元って仕組みです。どうか助言をっていうか助けてください。
教えて!エロい人!!

139名無しさん@そうだ選挙にいこう :2006/01/25(水) 11:03:15
マルチ

140名無しさん@そうだ選挙にいこう :2006/01/25(水) 11:03:52
マルチじゃありません
助けてください。

141名無しさん@そうだ選挙にいこう :2006/01/25(水) 11:05:34
エロくないから教えられない

142138 :2006/01/25(水) 11:08:45
>141ヒト科 以外からの返答のぞんでねーし

143名無しさん@そうだ選挙にいこう :2006/01/25(水) 11:17:32
現状がどんな構成になってるんだか
何をしたいんだか、さっぱりわからん。

とりあえず、IF関数? 
もし、過去2ヶ月の利用が50,000orポイント1,000以上なら、金額が8,000増or減とかで。
>>6読む

144名無しさん@そうだ選挙にいこう :2006/01/25(水) 11:31:00
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】不可
【5 検索キーワード     】印刷

プリントする時に、用紙の下から1/4ほどを常に同じ文書(5行ほど)を載せたいのですが
どうすればできますか?
セルに同じ文書を印刷するページ毎に入れていくと、後からデータを追加した場合
それ以降のデータが全部ずれてしまうのでこれ以外の方法を教えてください。
よろしくお願いします。

145名無しさん@そうだ選挙にいこう :2006/01/25(水) 11:38:09
フッターで対応できないかな?
こんな感じ。 //www.sharp.co.jp/mebius/excel/excel19a.html
用紙の丈夫なら、印刷タイトルー行のタイトルも使えるんだけどね。

146名無しさん@そうだ選挙にいこう :2006/01/25(水) 11:56:46
>>145
フッターを試したらうまくいきました。ありがとうございます。


147名無しさん@そうだ選挙にいこう :2006/01/25(水) 13:42:03
Excel2000ですが通常の画面だと白地に黒文字で罫線はグレーですが
これを黒字に白文字で罫線はグレーの画面に変更できますか?
教えてください。

変更したい理由は白地の画面だと目が疲れるので

148名無しさん@そうだ選挙にいこう :2006/01/25(水) 13:54:00
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】不可
【5 検索キーワード     】テキストボックス

現在作成中のファイルでテキストボックスに影をつけたのですが、
その影が「枠だけ」になってしまいます。
表示だけかと思ったら印刷されてもそのままでした。

試しに任意の四角形を作って影をつけてみたら問題なしで、
それに所望のテキストを追加すると「枠だけ」の影になってしまいます。
同一シート上の昨日までに作成した部分はちゃんと影として表示され、
印刷されます。

何か設定をさわってしまったのでしょうか?
よろしくお願いします。


149名無しさん@そうだ選挙にいこう :2006/01/25(水) 13:57:10
> 67:名無しさん@そうだ選挙にいこう [sage] :2005/12/11(日) 23:17:48
> だいぶ先の話だが、テンプレに追加よろしく。
>
> テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、
> チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、
> ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。
>
>
> これ書かない奴大杉やねん。
> 自分が使ってるもの以外の存在を知らないのか、書かなくても伝わると思ってるニュータイプなのかは知らんけど。

前スレで提案されたけど、重複スレ再利用でまだテンプレに載ってなかったんだな

150名無しさん@そうだ選挙にいこう :2006/01/25(水) 15:32:18
指定したフォルダ内にあるZIPファイル名とそのサイズの一覧を作りたいのですがサイズの取得でつまづいています。
とりあえずDO〜LOOPを組み込む前の状態なのです。

Dim F_Name As String, F_Size
F_Name = Dir("N:\test\*.zip")
F_Size = FileLen()     ←-------- F_Nameのサイズを取得したい
Range("E2").Select
Selection.EntireRow.Insert
Range("E2") = F_Name
Range("F2") = F_Size
End Sub

FileLen関数はパスも含めて具体的なファイル名を指定しないとエラーになってしまうようですが
なにかうまい手段はないでしょうか?

151名無しさん@そうだ選挙にいこう :2006/01/25(水) 15:35:00
OS XP PRO
VERSION 2000
バブルチャートの使い方を教えて欲しいのですが、最小値のサイズを一括変更する方法は無いでしょうか。
あと、大きなバブルの裏に小さなバブルが隠れてしまうことがあります。
これを回避する方法がありましたら教えてください。


152名無しさん@そうだ選挙にいこう :2006/01/25(水) 15:56:27
>>150
F_Nameにファイル名が入ってるんだから、ディレクトリを補完して
"N:\test\" & F_Name
でファイルのフルパスになるだろ

>>151
> 最小値のサイズを一括変更する方法は無いでしょうか。
意味不明

> 大きなバブルの裏に小さなバブルが隠れてしまうことがあります。
バブルサイズとなるデータ列で降順ソートしておけばいい
バブルチャートはデータの行位置が変わっても、グラフに影響しないからな

153名無しさん@そうだ選挙にいこう :2006/01/25(水) 16:29:29
>>152
肝心のパスが抜けてたんですね。なんともオマヌケな。
しばらくLOOP地獄に逝ってきます。
ありがとうございました。

154151 :2006/01/25(水) 17:14:39
>>152
レスありがとうございます。
>> 大きなバブルの裏に小さなバブルが隠れてしまうことがあります。
>バブルサイズとなるデータ列で降順ソートしておけばいい
>バブルチャートはデータの行位置が変わっても、グラフに影響しないからな

例えばABC列を使用している系列1の要素1の裏に系列2の要素1が隠れていて、
またDEF列を使用している系列2の要素2の裏に系列1の要素2が隠れている場合があります。
そのため系列でソートしても隠れてしまいました。

このような場合の回避方法がありましたら教えてください。

155名無しさん@そうだ選挙にいこう :2006/01/25(水) 19:00:38
>ヒト科 以外からの返答のぞんでねーし
エロい人だけがヒト科なんだろうか・・・

156名無しさん@そうだ選挙にいこう :2006/01/25(水) 19:22:09
>>150ですがようやくLOOP地獄から抜け出せました。
あちこち探して見つけた物の継ぎ接ぎみたいになってしまいましたが一応参考までに。

Sub Macro2()

Dim フォルダ As String
Dim ファイル名 As String
Dim ファイルサイズ As String
Dim 行 As Long
Dim MxR As Integer

MxR = Range("E65536").End(xlUp).Row
フォルダ = "N:\test\"
ファイル名 = Dir(フォルダ & "*.*")
行 = MxR + 1

Do Until ファイル名 = ""
ファイルサイズ = FileLen(フォルダ & ファイル名)
Cells(行, 5).Value = ファイル名
Cells(行, 6).Value = ファイルサイズ
行 = 行 + 1
ファイル名 = Dir()
Loop

End Sub

157名無しさん@そうだ選挙にいこう :2006/01/25(水) 20:02:58
質問のしかたが悪かったな
150じゃ152の答えしか出てこないよ


158名無しさん@そうだ選挙にいこう :2006/01/25(水) 22:14:05
エクセルで分数をたとえば1/3を一文字で表す方法はありますか?

159名無しさん@そうだ選挙にいこう :2006/01/25(水) 22:15:53
どんな1文字をイメージしてるの?「あ」とか「Z」とか?

160名無しさん@そうだ選挙にいこう :2006/01/25(水) 22:20:19
>>158
数式エディタ


161名無しさん@そうだ選挙にいこう :2006/01/25(水) 22:22:26
158です。昔ワードプロセッサで1/3を一文字分にできたんです。わかりやすくいうならばミリやキロが→_`なかんじに一文字分にできないのかなって思って。

162名無しさん@そうだ選挙にいこう :2006/01/25(水) 22:28:47
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 VBA クラス

VBAのクラスモジュールの使い方を勉強しています。
VBAのクラスは、
 Dim Class1 as New myClass
 y = Class1(z)
のような書き方で、クラスの特定のプロパティや関数(Class1.Items(z)とか)に
アクセスするようなことはできないのでしょうか。

163名無しさん@そうだ選挙にいこう :2006/01/25(水) 22:49:12
>>162
Public定義した変数、およびSub/Functionプロシージャには
外部から呼び出し可能
あとは、クラスの使い方はVB(〜6)と一緒だからそっちの勉強しな
書籍でもWebでも、VBAでのクラス解説は少ないからな
唯一コントロール配列をクラスで疑似実装する為の解説やサンプルは結構あるけど

それともデフォルトプロパティを定義したいって話なのか?

つーかそれ以前にClass1とmyClassが逆のような気がするが
まあ名前は自由に付けられるから、これであってるのかもしれないけどね

164名無しさん@そうだ選挙にいこう :2006/01/25(水) 22:56:39
>>163
そうです。デフォルトのプロパティをつけたいという話です。

名前の付け方は逆でしたね。

165名無しさん@そうだ選挙にいこう :2006/01/25(水) 23:35:22
デフォルトプロパティは、VB付属のVBEアドイン「クラスビルダユーティリティ」を使うと定義出来る
まあ、強引にテキストエディタで定義しちゃう手もあるんだけど、正当な方法ではないので紹介は控える
興味があるなら自分で調べて自己責任でやってくれ

結論を言うとExcel付属VBEの標準機能では、クラスのデフォルトプロパティは定義出来ない
VB6Professionalですら、初期機能では定義出来ないからね

そもそもデフォルトプロパティ自体使わない方がいいよ
コード文字数は減るけど、可読性が悪くなる
VBも.NETではデフォルトプロパティ廃止されて、プロパティ無しはオブジェクトそのものを参照するようになったし

166名無しさん@そうだ選挙にいこう :2006/01/25(水) 23:35:33
【1 OSの種類         .】 Windows XP Home
【2 Excelのバージョン   】 Excel 2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 ドロップダウン

A列:vlookup用の番号
B列:ドロップダウンリストで表示される名前
C〜R列:各レコードの内容
S列:確認用のチェック "○"か"null"

ドロップダウンリストに表示・選択されるものを
S列に"○"が入力されているものだけにしたいのですが、方法が分かりません orz
連動なら…とも思いましたが、1つのドロップダウンで出来るようにしたいのです

167名無しさん@そうだ選挙にいこう :2006/01/25(水) 23:51:40
>>166
 >>149

"ドロップダウンリスト"じゃ、入力規則のかオブジェクトなのかわからん

168名無しさん@そうだ選挙にいこう :2006/01/26(木) 00:09:07
1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】小数点切捨て  セル範囲

ローン返済の表を作りたいのですが、四捨五入せず、指定範囲内を
全て小数点を切り捨てしたいのですがROUNDDOWN以外方法は無いのでしょうか
どう設定すれば入力した そのままに表示されるのでしょうか?



169名無しさん@そうだ選挙にいこう :2006/01/26(木) 00:35:50
あ…追加テンプレがあったんですね。すいません。

コンボボックスのオブジェクトでの方法を知りたいです

170名無しさん@そうだ選挙にいこう :2006/01/26(木) 00:43:35
すみません、超初心者なので下らないかもしれませんが教えて下さい‥
セルを指定して「横幅」を動かしたいのですが、できませんでしょうか。。
(列単位で指定してセルの高さを変える・行単位でセルの横幅を変えるのは出来るのですが、そうではなく、
作成した表の中の一部セルの幅を変えたい、つまり一部の罫線を左右に移動させたいという事です。)伝わりますでしょうか…


171名無しさん@そうだ選挙にいこう :2006/01/26(木) 00:45:11
【1 OSの種類         .】 WindowsXp
【2 Excelのバージョン   】 Excel2002,2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル 旧バージョン

ずっとエクセル2003で家計簿をつけていました。
今日、資格試験に使うためエクセル2002をインストールしたところ
デスクトップ上の「家計簿(へのショートカット)」をクリックすると
エクセル2002で開くようになってしまいました。

今まで通り、2003で開くのをデフォにするにはどうしたらよいでしょうか?
(板違いでしたらご誘導お願いします)

172名無しさん@そうだ選挙にいこう :2006/01/26(木) 01:01:26
>>170
できないよ。
セルを「結合」してごまかしてるひとが多いよ。

173名無しさん@そうだ選挙にいこう :2006/01/26(木) 01:03:16
>>171
「ファイルの関連付け」を変更すればいいと思うよ。PC初心者スレとかかな?
でも、バージョンの古いのを後からインストールするといろいろトラブルが
おきるから、いったん2003をアンインストールして、もう一度入れなおす方が
いいかもね。

174名無しさん@そうだ選挙にいこう :2006/01/26(木) 01:04:37
172

175名無しさん@そうだ選挙にいこう :2006/01/26(木) 01:06:06
>>172 やっぱそうなんですね、助かりました すばやいご回答、ご親切にどうもありがとうございました!!

176名無しさん@そうだ選挙にいこう :2006/01/26(木) 01:07:51
>>168
int関数とか?
たとえばどういう値を入れたら、どういう結果が欲しいの?
1.11と入れたら、「1」という値が欲しいのか、見た目は「1」だけど、
情報としては1.11のまま保持したいってのとどっちかとかで違ってくるよ

177名無しさん@そうだ選挙にいこう :2006/01/26(木) 01:14:56
>>168
アクセスなら
INTとかあるけど
ExelならRaounddownで
いいんでないかい(Exelでもあるが)

178名無しさん@そうだ選挙にいこう :2006/01/26(木) 01:27:01
168は、見た目だけ整数部表示されていればよさそうな気配。
セルの書式設定の表示形式の数値・通貨・会計のいずれかで
対応できそうな予感。

179名無しさん@そうだ選挙にいこう :2006/01/26(木) 03:08:42
【1 OSの種類         .】 Windows 2000
【2 Excelのバージョン   】 Excel 2000
【3 VBAが使えるか    .】 少し
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 数値 範囲

B2の値がT10と比較して±0.01に収まっていれば、"OK"、
はずれていれば"要チェック"と表示したいのですが、
↓これ以上に、スマートな数式教えて下さい。
=(IF(AND((T10-0.01)<=B2,B2<=(T10+0.01)),"OK","要チェック"))

180名無しさん@そうだ選挙にいこう :2006/01/26(木) 04:30:38
=IF(ABS(T10-B2)<=0.01,"OK","要チェック")

181名無しさん@そうだ選挙にいこう :2006/01/26(木) 04:52:14
くだらないですが質問です。
ある値、仮に0.958、0.913、0.980、0.970、1.023、1.013、1.061、1.030、1.017、1.023、0.976、1.026があったとします。
これから0.958を1として他の数を相対値に調整したい場合はどうすればよろしいでしょうか?

182名無しさん@そうだ選挙にいこう :2006/01/26(木) 05:04:09
作業セルを作って、0.958と1.000の差分を加算していく
作業セル無しでやりたければこれをVBAでやるか
一度作業セルに返して、値のみコピーして作業セルをクリアすればいい

183171 :2006/01/26(木) 05:10:34
>>173
ありがとうございます!激しくありがとうございます!!

184名無しさん@そうだ選挙にいこう :2006/01/26(木) 05:17:31
>>182
このような早朝にレスありがとうございます。
エーット、自分は初心者な上、基本的に馬鹿なんで文意が読めてないかもしれませんが、
このような作業をしてくれる関数、もしくはツールはないので手動でやれということでよろしいでしょうか?

185184 :2006/01/26(木) 05:20:41
あー、関数やツールを使うまでも無いですね。訂正します。
申し訳ございませんでした。

186179 :2006/01/26(木) 08:00:02
>180、どうもありがとうございました。

187名無しさん@そうだ選挙にいこう :2006/01/26(木) 08:26:23
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 初心者級
【5 検索キーワード     】 時刻
例)
1830と入力して時刻18:30と認識させるにはどうしたらよいでしょうか?


188名無しさん@そうだ選挙にいこう :2006/01/26(木) 08:42:56
>>187
文字列操作関数で整える
表示だけでいいなら、表示形式書式でも可能

189187 :2006/01/26(木) 09:07:09
>>188文字列操作関数ですか、調べてみます。ありがとうございます。

190名無しさん@そうだ選挙にいこう :2006/01/26(木) 10:57:38
列の連続する空白を数える方法を教えて
連続して続いた空白の最終セルに、空白のカウント数を表示したい。


191名無しさん@そうだ選挙にいこう :2006/01/26(木) 11:11:50
>>190
VBAのループ使ってカウントするか、
作業列作って、セルが空じゃないときに行番号を返すような式を組み
返った値の差分-1が連続する空白の数になる

あとは>>2※ね

192名無しさん@そうだ選挙にいこう :2006/01/26(木) 12:32:32
エクセルで分数をたとえば1/3を一文字で表す方法はありますか?

193名無しさん@そうだ選挙にいこう :2006/01/26(木) 13:32:53
>>165
遅くなりましたがありがとうございました

194名無しさん@そうだ選挙にいこう :2006/01/26(木) 13:44:01
>192
自分で外字として登録しる
方法は外字エディタでwinのhelp検索のこと。

195名無しさん@そうだ選挙にいこう :2006/01/26(木) 13:59:13
回帰直線の予測値の求め方教えていただけないでしょうか

196名無しさん@そうだ選挙にいこう :2006/01/26(木) 14:35:43
LINEST関数やTREND関数使うとか
散布図で近似直線描かせるとか

回帰直線の予測値・・・て、日本語的にあってる?

197名無しさん@そうだ選挙にいこう :2006/01/26(木) 18:36:57
1,2,3などの正の数値なら1を返し、-1,-2,-3などの負の数値なら-1を返す方法は無いでしょうか。
if文で式を処理しているのですが条件が大量になり困っています。
A1+B1*(もし正なら1,負なら-1)のように処理できたら式が大幅に省略できるのですが、
このような方法がありましたら教えてください。


198名無しさん@そうだ選挙にいこう :2006/01/26(木) 18:41:54
197です。SIGN()で大丈夫でした。

199名無しさん@そうだ選挙にいこう :2006/01/26(木) 20:22:43
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 初心者級
【5 検索キーワード     】 ALT 改行 コピー

やりたいこと
シート1 A1セル
ああああ(ALT+改行)
あああ(ALT+改行)
あああああああ(ALT+改行)

を、

シート2に転記する際に
A1セル ああああ
A2セル あああ
A3セル あああああああ

なんか良い方法ありません?

200名無しさん@そうだ選挙にいこう :2006/01/26(木) 21:23:16
>>199
InStr()で改行(vbLf)の位置調べて,Mid()とかで部分文字列取り出せばいいんじゃね?

Lines = Sheet1.Cells(1, 1)
Do
r = r + 1
pos = InStr(Lines, vbLf)
If pos Then
Line = Left(Lines, pos - 1)
Lines = Mid(Lines, pos + 1)
Else
Line = Lines
Lines = ""
End If
Sheet2.Cells(r, 1) = Line
Loop While pos

201WinXP/Excel2003 :2006/01/26(木) 22:38:58
検索条件が2つある場合で、VLOOKUPのような検索関数はありませんでしょうか?
たとえば、表があり、行で検索、列でも検索それぞれ決まって初めてセルが特定される、そんな関数です。
質問意味不明ならすみません。

202名無しさん@そうだ選挙にいこう :2006/01/26(木) 22:56:43
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 近似曲線
グラフに近似曲線を追加したいのですが、ヘルプの内容が分かりません。
1.近似曲線または移動平均を追加するデータ系列をクリックします。
2.[グラフ] メニューの [近似曲線の追加] をクリックします。
とあるのですが[グラフ] メニューがありません。メニューバーにある、と言ってるんでしょうか?

203名無しさん@そうだ選挙にいこう :2006/01/26(木) 23:09:28
>>201
INDEXとMATCH関数を組み合わせるのが定法
こんな感じ //pc21.nikkeibp.co.jp/tech/excel36/26/

>>202
[グラフ] メニューの出し方は・・・
  ツールバーの辺りで右クリックして、出てくるリスト中のグラフにチェック
でもそんなことしなくても、1.の操作のあと右クリすれば、
サブメニューに「近似曲線の追加」は出てくるよ。

204名無しさん@そうだ選挙にいこう :2006/01/26(木) 23:15:59
>>202
マルチ

205名無しさん@そうだ選挙にいこう :2006/01/26(木) 23:17:38
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】比較 コピー

二つのセル内にあるA列とB列のデータを比較し、同じであればC列の
データをD列にコピーするにはどうしたらよいでしょうか?

A B C D
1 AAA CAX SAS ETE
2 BBB DFC DFG IJT
3 CCC AAA ETE
4 DDD FFF SDF GHF
5 FFF DDD GHF SDF
6 GGG SFG EJG
7 HHH BBB IJT
8 III FGS YUR

宜しくお願いします。


206名無しさん@そうだ選挙にいこう :2006/01/26(木) 23:18:44
959 名前:名無しさん[sage] 投稿日:2006/01/26(木) 22:47:22 0
エクセルで質問なんですが、メニューバーに「グラフ」っていのがあるんですか?
エクセル2002(10.6501.6735)なんですがそれがなくて、ヘルプがヘルプの意味を成していません。
具体的には近似曲線を書きたい(追加したい)のですが、ヘルプでは[グラフ]メニューの〜と書いてあるのにそれがありません。

207名無しさん@そうだ選挙にいこう :2006/01/26(木) 23:21:20
すいません、質問です。

首相の支持率調査において、
信頼係数 0.95 で区間推定の精度を 0.03 以内としたい場合、
何人の標本をとって調査すればいいか?
ただし、母集団である有権者全体は無限集合とし、内閣支持率を予測させるデータはない。
また、標本比率(標本の内閣支持率)は正規分布に従う。

これをエクセルで計算するにはどうすればよいのでしょうか?


208名無しさん@そうだ選挙にいこう :2006/01/26(木) 23:25:29
>>207
>これをエクセルで計算するにはどうすればよいのでしょうか?
まず聞くが、君はそれを手計算は出来るのかね?
どんな式を立てたらいいのか、話はそこから。

209名無しさん@そうだ選挙にいこう :2006/01/26(木) 23:31:29
>>205
コピペすんだろ?
VBA以外に方法あんのか?

210名無しさん@そうだ選挙にいこう :2006/01/26(木) 23:44:24
返事ありがとうございます。

首相の支持率をp、標本サイズをnとします。
標本比率(標本の中で首相を支持するもの)の分布は、
平均p、分散p(1-p)/n、の正規分布に従う。
これを標準正規分布にして、あとは標準正規分布の上側パーセント点の表を
利用して求める。
といった感じです。





211名無しさん@そうだ選挙にいこう :2006/01/27(金) 00:37:31
>>204最初この板が見つからなくてマルチになってしまいました。故意にしたつもりはないです、申し訳ありません。

>>203
やっぱり「近似曲線の追加」は出ないです。グラフメニューにもありませんでした。
1.の操作はデータの範囲を指定することで間違ってないですよね?

212211 :2006/01/27(金) 00:40:42
自己解決しました。お騒がせしました。ありがとうございました。

213名無しさん@そうだ選挙にいこう :2006/01/27(金) 01:05:41
>>205
コピペしてある表の意味がよくわからないんだが

AAA AAA ABC ABC
AAA BBB ABC
BBB BBB BBB ABC
っていう風にしたいってこと?

それならD列に = IF(A1=B1, C1, "") っていれとけばいいんじゃね?


214名無しさん@そうだ選挙にいこう :2006/01/27(金) 01:27:17
まちがった
AAA AAA ABC ABC
AAA BBB ABC
BBB BBB ABC ABC

215名無しさん@そうだ選挙にいこう :2006/01/27(金) 03:22:42
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ

A1=m/d、B1=h:mm(セルの書式設定はそれぞれ日付と時刻)
を結合して
2006 m/d h:mm
としたいのですが、数式をおしえていただけないでしょうか。
このような感じです。
A1=1/27  B1=3:25
2006 1/27 3:25

216名無しさん@そうだ選挙にいこう :2006/01/27(金) 03:53:05
>>207
エクセルの質問じゃないからスレ違い
統計関係のスレにでも行け

217名無しさん@そうだ選挙にいこう :2006/01/27(金) 03:53:56
>>212
解決した方法を両方のスレに買いときなさい


218名無しさん@そうだ選挙にいこう :2006/01/27(金) 03:55:07
>>215
=TEXT(DATE(2006,MONTH(A1),DAY(A1))+B1,"yyyy m/d h:m")

219215 :2006/01/27(金) 04:08:15
>>218
助かりました。どうもありがとうございました。

220名無しさん@そうだ選挙にいこう :2006/01/27(金) 04:13:49
>>213
同行をチェックするんじゃなくて、列全体から重複をチェックしたいんじゃないの?
その場合、COUNTIF使うだけだがな

221名無しさん@そうだ選挙にいこう :2006/01/27(金) 08:33:25
IF文の関数で”FALSE”と返されるんですが、どういう意味でしょうか?

222名無しさん@そうだ選挙にいこう :2006/01/27(金) 09:09:26
>>221
ヘルプを"FALSE"で検索しろ

223名無しさん@そうだ選挙にいこう :2006/01/27(金) 09:46:05
>>221
セルに、TRUE、FALSEと入れて、数値で表示すると、0と1になる。


224名無しさん@そうだ選挙にいこう :2006/01/27(金) 10:27:30
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい

エクセルでセルの入力制限をしたいと思うのですが、
KeyPressイベントを拾う事はできないのでしょうか?



225名無しさん@そうだ選挙にいこう :2006/01/27(金) 10:42:32
>>224
出来ません

入力規則やWorksheet_Changeイベントでを使って入力後に制限外の文字が
あるかどうかのチェックは出来るけど、VBのテキストボックスでよく使われてる、
KeyAsciiの値を調べて、KeyAscii = 0で入力そのものを無効化するような手法は
APIでフックしないと無理
Application.OnKeyで設定したキーを含めて、セル編集中は一切VBA使えないし、イベントも起きないから

どうしてもやりたければシートに直接入力させずに、ユーザーフォームで入力フォームでも作るんだな


226名無しさん@そうだ選挙にいこう :2006/01/27(金) 10:43:07
>セルの入力制限
具体的に書けよ

227名無しさん@そうだ選挙にいこう :2006/01/27(金) 11:59:33
セルの値をNULLにするのってどうやればできますか


228名無しさん@そうだ選挙にいこう :2006/01/27(金) 12:13:46
Nullエラーだったら「=#NULL!」っていれればいいよ。

229名無しさん@そうだ選挙にいこう :2006/01/27(金) 16:44:57
【1 OSの種類         .】 WindowsXP PROFESSIONLA
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 ・VLOOKUPとULOOKUPの併用

一つのセルの数式に別のシート2つを見てマッチする方の数字を返すようにしたいのですが。
2つのセルを参照するにはどうしたらいいのでしょうか?
=VLOOKUP(P9,'2005年度'!A3:M3002,6,FALSE)&VLOOKUP(P9,'2006年度'!A3:M3946,6,FALSE)
今、こんな数式にしてます。

それと、VLOOKUPとULOOKUPを併用したいのですが、記述はどんな風にしたら良いのでしょうか?
    A  B  C  D  E  F  G  H  I  J  K  L 
01/ 項目1 項目2 項目3 項目4 項目5
02/ 項目6 項目7 項目8 項目9 項目10
03/━━━━━━━━━━━━━━━━━━━━━━
04/ 1情報  2情報  3情報  4情報  5情報
05/ 6情報  7情報  8情報  9情報  10情報
06/------------------------------------------
07/ 1情報  2情報  3情報  4情報  5情報
08/ 6情報  7情報  8情報  9情報  10情報
09/------------------------------------------
10/(以下同じ)
このような構成になっており、2005年度版・2006年版がある状態です。
05-0001という管理番号があるシートの2行目8情報が出るようにしたいです。
普通にブックを開いた状態で情報全部が見れるのが良いらしく、このような構成になってます。

230名無しさん@そうだ選挙にいこう :2006/01/27(金) 17:02:59
>>229
IF関数使え

つーかULOOKUPって何だ?
それに要望は具体的に書かないと、具体的な回答は付かないよ
おまえの質問内容には、本人の脳内でしか補完出来ないことが多い

231名無しさん@そうだ選挙にいこう :2006/01/27(金) 17:30:20
>>230
すいません。
HLOOKUPでした。
管理番号が「1情報」という所に入ります。
自分はこの管理番号からその下の段にあたる6,7,8,9,10の情報を出したいです。


232名無しさん@そうだ選挙にいこう :2006/01/27(金) 17:43:29
VLOOKUP、HLOOKUPはインデックスではなく値を返すから
組み合わせて使いたい場合はどこかに行インデックスか列インデックスを入力しておく必要がある
それがイヤだったり、表の変更が出来なかったりするならINDEX&MATCHだな

233名無しさん@そうだ選挙にいこう :2006/01/27(金) 18:29:15
>>232
行インデックス、列インデックスと言うのは、自分が「管理番号で調べたい」に当たる別の目安になるものが必要ってことですよね?

INDEX&MATCHでやる場合、>>229を例にし4行目の1情報(管理番号05-0001)を見て、そこの8情報を出したい場合はどうしたら良いのでしょう?
ヘルプや関数の本を見たのですが、どうもわかりません。

=INDEX(A4:K5,MATCHでかえされる数値のセル番地)
でいいと思うのですが、MATCHをどうやっていいのか解りません。
検査値を管理番号が入力されるセルを指定。
照合の型を0 にすればいいと思うのですが、検査範囲をどうしたら良いのか解らない状態です。



234名無しさん@そうだ選挙にいこう :2006/01/27(金) 18:40:12
workbooks.addで追加したブックに名前を付けるのってどうやるの?


タイムリミット10分

235d :2006/01/27(金) 18:46:21
>>234
名前を付けて保存


236名無しさん@そうだ選挙にいこう :2006/01/27(金) 18:49:26
>>233
とりあえず2,3日がんばってみろ >>2・5


>>234
Addメソッドの戻り値はWorkbookオブジェクト
あとはそいつを煮るなり焼くなりお好きなように

237名無しさん@そうだ選挙にいこう :2006/01/27(金) 18:58:13
workbooks.add.close true ,"c:\ちんこ.xls"


238名無しさん@そうだ選挙にいこう :2006/01/27(金) 19:31:53

>>229のようにVLOOKUP/HLOOKUP等で多数シートを参照したい時、IF関数でやると重くなったりしますか?
IF関数以外に探す方法となると、マクロやVBAになるのでしょうか?

239234 :2006/01/27(金) 19:34:22
スゲゥ怒られた

Workbook.addで追加したらそのブックは名無ししななわけじゃんか?
その名無しに名前をつけたいんじゃ!

240sage :2006/01/27(金) 19:39:33
SUMIF とか COUNTIF のように "VARIF" のようなことをしたいんですけど
どうすればいいのですか?

241名無しさん@そうだ選挙にいこう :2006/01/27(金) 20:35:25
>>238
> >>229のようにVLOOKUP/HLOOKUP等で多数シートを参照したい時、IF関数でやると重くなったりしますか?
単純に使う関数が増えれば重くなるけど、
どのくらい重くなるかは環境に因るので自分でやってみればいい
IF関数1つなら相当ショボいPCでも体感出来ない程度だろうけど

> IF関数以外に探す方法となると、マクロやVBAになるのでしょうか?
きちんと細かい条件が出ないと何とも言えないな


>>239
> その名無しに名前をつけたいんじゃ!
お好きなように

但し>>2


>>240
@配列数式
AVARIFを自作

242名無しさん@そうだ選挙にいこう :2006/01/27(金) 20:35:32
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】複数 しかし

=IF(A36="","",VLOOKUP(A36,Sheet2!$A$2:$F$31,2,0)

上記にような関数を組み込んでますが、
A36のセルに33という数字を入れた場合はM4のセルを参照したいのですが、
どうすればいいでしょうか?

243名無しさん@そうだ選挙にいこう :2006/01/27(金) 20:44:43
>>242
>>6例2

244242 :2006/01/27(金) 21:58:54
>>243
解決しました。有り難うございました。

245名無しさん@そうだ選挙にいこう :2006/01/28(土) 00:03:24
【1 OSの種類         .】 Win95
【2 Excelのバージョン   】 Excel97
【3 VBAが使えるか    .】 微妙
【4 VBAでの回答の可否】 可
【5 検索キーワード     】CSV 読み込み

CSVファイルをVBAでシート2に読み込めますか?
D&Dすると新しいブックに読み込まれます

246名無しさん@そうだ選挙にいこう :2006/01/28(土) 00:37:58
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 微妙
【4 VBAでの回答の可否】 可

祝祭日と日曜を除いて本日からn営業日後の日付を表示させたい
土曜日は営業日なので分析ツールのWORKなんとかって関数は利用できません
なにかよい方法はありませんでしょうか?

247名無しさん@そうだ選挙にいこう :2006/01/28(土) 00:44:03
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel*2003
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】 可
商品一覧表を作ったのですが無断利用を禁止するために、ファイルを起動後に「無断利用禁止」というアラートのポップアップか何かを強制的に表示させることは出来るのでしょうか?

248名無しさん@そうだ選挙にいこう :2006/01/28(土) 01:59:35
>>245
一旦Opentextで文字列カンマ区切りで開いた後にそれをコピーして
本来のブックのシート2にペーストするスクリプトにすれば?

外部データの取り込みじゃVBAだとうまく出来なかったはず

249名無しさん@そうだ選挙にいこう :2006/01/28(土) 02:07:44
>>246
VBA使うか土曜日休めばいいんじゃね?
VBA使うならこんな感じ?
Public Function WORKDAY2(ByVal day As Date, ByVal days As Integer) As Date
Do While days
day = day + 1
If Not IsHoliday(day) Then days = days - 1
Loop
WORKDAY2 = day
End Function

Private Function IsHoliday(ByVal day As Date) As Boolean
If Weekday(Date) = 1 Then IsHoliday = True '日曜日

' ... その他,祝祭日を判定するコードを記述する。
End Function

250名無しさん@そうだ選挙にいこう :2006/01/28(土) 02:09:25
>>247
VBE開いてThisWorkBookのWorkBook_Openあたりに
Private Sub Workbook_Open()
MsgBox "無断転載禁止"
End Sub
とか書いとけばいいんじゃね?

251名無しさん@そうだ選挙にいこう :2006/01/28(土) 08:40:56
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 少し
【4 VBAでの回答の可否】 可

メニューバーに新規のメニュー / サブメニューを作ってサブメニューにマクロを登録したのですが、
マウスポインターを当てただけで起動してしまいます。
ほかの既存のメニュー / サブメニューを使うときのようにクリックしなければ起動しないようにする方法はあるでしょうか?

252名無しさん@そうだ選挙にいこう :2006/01/28(土) 09:34:47
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 参考書があればなんとか・・・
【4 VBAでの回答の可否】 可

特定の範囲内(例、A1:C2)に図形描画の斜め線をA1左上からC2右下まで1本の線を引きたい
よろしくお願いします。

253名無しさん@そうだ選挙にいこう :2006/01/28(土) 09:46:26
>>252
罫線の斜線?
だったらセル範囲の横と縦のセルの個数が同じでないと無理だろ

254名無しさん@そうだ選挙にいこう :2006/01/28(土) 09:51:21
字が読めないのかお前

255名無しさん@そうだ選挙にいこう :2006/01/28(土) 09:52:58
>>254
ああ悪いw

256d :2006/01/28(土) 10:12:36
>>252
こんな感じでどうでしょうか。

Sub test()
  斜線 Range("A1:C2")
End Sub

Function 斜線(範囲 As Range) As Shape
  Dim Shp As Shape

  With 範囲
    Set Shp = .Worksheet.Shapes.AddLine(.Left, .Top, .Left + .Width, .Top + .Height)
  End With

  Set 斜線 = Shp

  Set Shp = Nothing
End Function


257d :2006/01/28(土) 10:22:12
>>251
>マウスポインターを当てただけで起動してしまいます
ポップアップ(右向き三角付き)にマクロを登録したからでは。

普通のコマンドボタン(例えばマクロ(ニコちゃんマーク))に
登録すればそんなことは無いと思いますけど。



258名無しさん@そうだ選挙にいこう :2006/01/28(土) 10:25:18

前スレで回答が付かなかったので再度書き込みます。

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

あるセルの入力履歴を、入力規則のリストで表示出来るように
したいのですが、どのようにしたら良いでしょうか?
任意のセルを変更するたびに、最後に入力された文字列をリストの
一番上に追加していき、リストから選択したりリスト内に存在する
文字列を入力した場合は、その項目を一番上に持ってくるように
したいです。
VBAになると思いますが、よくわからないのでよろしくお願いします。
履歴数は任意指定出来るようにしてとりあえず20で、監視セルはA1で。


ゴッホさんとか、hogeさんとか居ないのかな...

259d :2006/01/28(土) 10:36:36
>>258
>前スレで回答が付かなかったので再度書き込みます。

こんなところででも質問してみては。
http://www2.moug.net/bbs/exvba/

260名無しさん@そうだ選挙にいこう :2006/01/28(土) 12:23:23
>>252
セル結合すれば書式でできるけど

>>258
入力フォーム作るしかないんじゃない?
で、入力履歴を保存するシート用意。


261名無しさん@そうだ選挙にいこう :2006/01/28(土) 12:26:21
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 マクロの記録を整える程度
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 セルの入れ替え ドラッグ ドロップ

マウスでのドラッグ&ドロップで、セルの値の入れ替えをしたいのですが、可能でしょうか?
通常は選択範囲の黒枠上でマウスボタンを押してドラッグすると思いますが、
そうではなくセルの中程でマウスボタンを押してドラッグしたいです。
そして動作も通常の移動ではなくマウスボタンを押した場所と離した場所の値の入れ替えをしたいのです。
例えばA1に"あああ"、B2に"いいい"という文字が入っていて、A1セルの中央でマウスの左ボタンを押し
B2セルの上で離した場合、普通はA1:B2の4セル範囲選択になると思いますが、
この操作でA1が"いいい"、B2が"あああ"という状態にしたいのです。
操作対象はかならず1セル対1セルです。可能でしたら具体的な方法をご教示ください。

262名無しさん@そうだ選挙にいこう :2006/01/28(土) 12:49:23
>>258
Sheet1のA1に入力規則を設定。リストで、ダミーのリスト文字列設定して、エラーメッセージ非表示に設定

で、Sheet1に以下のマクロを仕込む

Private History_A1(20) As String

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 And Target.Column = 1 Then
History_Push History_A1, Target.Value
Target.Validation.Modify xlValidateList, , , To_S(History_A1)
End If
End Sub

(つづく)

263名無しさん@そうだ選挙にいこう :2006/01/28(土) 12:50:17
Private Sub History_Push(ByRef History As Variant, ByVal add As String)
Dim item As String
Dim last As String
last = add
For i = 0 To 19
item = History(i)
History(i) = last
If item = add Or item = "" Then Exit For
last = item
Next
End Sub

(つづく)


264名無しさん@そうだ選挙にいこう :2006/01/28(土) 12:52:20
Private Function To_S(ByVal MyArray As Variant) As String
For Each item In MyArray
If item = "" Then Exit For
If To_S <> "" Then To_S = To_S & ","
To_S = To_S & item
Next
End Function

オートコンプリートとかは対応してないからな。
したきゃHistory_A1配列の変わりにどっかのワークシートに作業用セル範囲用意して、そこに履歴保存しろ
(おわり)

265251 :2006/01/28(土) 15:44:38
>>257
どうもありがとうございました。やってみます。

266名無しさん@そうだ選挙にいこう :2006/01/28(土) 16:18:10
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 行列式、行列積、行が異なる、列が異なる

行列積を求めるとき、積を求める配列1の列数と配列2の行数が異なるときの計算方法を探しています。
MMULT関数では通常は不可能なため、可能とする方法があれば教えていただきたいです。
よろしくお願いします。

267名無しさん@そうだ選挙にいこう :2006/01/28(土) 16:29:29
配列数式

268hoge ◆hoge//WRxY :2006/01/28(土) 16:56:31
>>258
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address(0, 0) = "A1" Then
    Const ListCount = 20

    Dim strAddValue As String
    Dim strArrayList() As String
    strAddValue = Target.Text
    If strAddValue = "" Then Exit Sub
    With Target.Validation
      strArrayList = Split(strAddValue & Replace("," & .Formula1 & ",", "," & strAddValue & ",", ","), ",")
      If UBound(strArrayList) >= ListCount Then ReDim Preserve strArrayList(ListCount - 1)
      .Modify xlValidateList, , , Join(strArrayList, ",")
    End With
  End If
End Sub

2行目で対象セル、3行目でリストの最大数を指定します。
対象セルには先に「無効なデータが入力されたらエラーメッセージを表示する」の
チェックを外した適当な入力規則を設定しておいてください。

269hoge ◆hoge//WRxY :2006/01/28(土) 16:57:41
>>261
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Dim lngSelCount As Long
  Dim lngRow As Long, lngCol As Long
  Dim strValue As String

  lngSelCount = Selection.Count
  If lngSelCount = 1 Then Exit Sub
  lngRow = IIf(ActiveCell.Row = Selection.Row, Selection(lngSelCount).Row, Selection.Row)
  If lngRow = 65536 Then Exit Sub
  lngCol = IIf(ActiveCell.Column = Selection.Column, Selection(lngSelCount).Column, Selection.Column)
  If lngCol = 256 Then Exit Sub

  With Cells(lngRow, lngCol)
    .Interior.ColorIndex = 38 '***
    ActiveCell.Interior.ColorIndex = 38 '***
    If MsgBox("色の付いてるセルの値を入れ替えます", vbOKCancel) = vbOK Then '***
      strValue = .Value
      .Value = ActiveCell.Value
      ActiveCell.Value = strValue
    End If '***
    .Interior.ColorIndex = xlNone '***
    ActiveCell.Interior.ColorIndex = xlNone '***
  End With
End Sub

とりあえず入れ替え前に確認ダイアログを出すようにしておきました。
動作に問題がなければ、行末に「'***」が付いてる6行を削除してください。

270266 :2006/01/28(土) 17:43:07
>267
回答ありがとうございます。
すみません。説明不足でした。配列数式でおこなうことができないので、どうすればよいでしょうかという意味でした。
よろしくお願いします

271名無しさん@そうだ選挙にいこう :2006/01/28(土) 17:47:59
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002

英語の音声入力が使いたいのですが、うまくいきません。
ヘルプやWebで調べたところ、コントロールパネルの音声認識の
言語というところで音声認識エンジンを変更できるらしいのですが
私の環境では
Microsoft Japanese ASR Version 5 Engine
しか表示されず、他のエンジンが選択できません。

おそらくMicrosoft English ASR Version 5 Engineというのが必要だと思うのですが
何か追加でインストールしなければならないものなどがあるのでしょうか。
それとも、日本語版Officeには日本語用のエンジンしか付属していないのでしょうか。

272名無しさん@そうだ選挙にいこう :2006/01/28(土) 17:59:53
MMULTを配列数式で使うんじゃなくて
配列数式で行列積そのものを組む

273名無しさん@そうだ選挙にいこう :2006/01/28(土) 18:05:10
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 ユーザーフォーム、ワークシート、実行

下記のコードを使い、ワークシートAにてユーザーフォームを実行すると、
ユーザーフォーム上にあるテキストボックスの値とセルの値を連動させることが出来ました、
しかしワークシートBに切り替えると連動させることが出来ません。
(ワークシートBにてユーザーフォームを実行すると、今度はワークシートAに切り替えると連動させることが出来ません。)
ワークシートを切り替えてもテキストボックスとセルの値を連動させるにはどうすれば良いでしょうか?
検索キーワードならびにVBAの参考書にて調べましたが解決出来ませんでした。
宜しくお願い致します。

Private Sub UserForm_Initialize()
Call 表示データ設定
End Sub

Sub 表示データ設定()
TextBox1.ControlSource = "A1"
TextBox2.ControlSource = "A2"
TextBox3.ControlSource = "A3"
End Sub

274名無しさん@そうだ選挙にいこう :2006/01/28(土) 18:15:05
>>273
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
UserForm1.TextBox1.ControlSource = Sh.Name & "!A1"
End Sub
とかでどうだ

275名無しさん@そうだ選挙にいこう :2006/01/28(土) 18:31:37
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 どちらかというと否

エクセルで表1を表2のように整理するスマートな方法ってありますか?


表1
001010
100001
100001
010100
100001
010100
010100
100001
001010

表2
110000
110000
110000
110000
001100
001100
001100
000011
000011



276名無しさん@そうだ選挙にいこう :2006/01/28(土) 18:35:46
規則性が不明
その数字が何を表してるか不明
何を持ってスマートと定義するか不明
VBA可なのか否なのか不明

明白なのは、回答不要という事実だけだ

277266 :2006/01/28(土) 18:37:23
>272
理解できました。ありがとうございます。

278名無しさん@そうだ選挙にいこう :2006/01/28(土) 19:07:34
>>276

規則性が不明 ⇒1を極力左上に持っていく。ただし、行方向への移動をする場合は行内のセル全てを移動し、列方向への移動も列内のセル全てを移動しなければいけない。
その数字が何を表してるか不明 ⇒セルには1か0の数値しかはいらない。表は6×9のセルで構成されている。
何を持ってスマートと定義するか不明 ⇒いくつかの方法があると思うけど、その中で何度も繰り返すことを考えた上で時間のかからない方法。
VBA可なのか否なのか不明  ⇒VBAを使わない方法と比較して、VBAを使った方がかなりスマートならばVBAを使いたい。自分以外の人(VBAを知らない人)が使うのでVBAは極力避けたい。

明白なのは、回答不要という事実だけだ ⇒そんなこといわないで。


279273 :2006/01/28(土) 19:29:52
>>273です。

>>274さん
レスありがとうございます。
下記のようにそのまま付け加えたり、教えて頂いたコードだけで試したりしましたが
残念ながら出来ませんでした。(エラーもありませんでした。)
以上報告とさせて頂きます。

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
UserForm1.TextBox1.ControlSource = Sh.Name & "!A1"
End Sub
Private Sub UserForm_Initialize()
Call 表示データ設定
End Sub
Sub 表示データ設定()
TextBox1.ControlSource = "A1"
TextBox2.ControlSource = "A2"
TextBox3.ControlSource = "A3"
End Sub


280名無しさん@そうだ選挙にいこう :2006/01/28(土) 19:44:41
>>279
俺の環境じゃ普通にできるんだけどな
というか、そのUserForm_Initializeとか表示データ設定てのも消すか直すかしなよ


281名無しさん@そうだ選挙にいこう :2006/01/28(土) 19:47:48
ああごめん教えたコードだけでも試したのね
あのコードはTextBox1しか設定してないからTextBox2とか3は自分でつけたしてくれよ
あと、あのコードだけだと、フォーム表示してから一度シート移動しないと有効にならない


282名無しさん@そうだ選挙にいこう :2006/01/28(土) 19:50:28
>>278
まだわからないな、その説明だと最適化された場合 表2 よりも 表3 に近くならないか?
3行目〜6行目を上に持ってきただけだが。

表3
111111
111111
111100
110000
000000
000000
000000
000000
000000

283名無しさん@そうだ選挙にいこう :2006/01/28(土) 19:56:28
>>282
理解した。彼はどうやら
  A..F列をキーに、行方向並べ替え
→ 1..9行をキーに、列方向並べ替え
をやりたいらしい

284273 :2006/01/28(土) 20:00:35
>>281
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
UserForm1.TextBox1.ControlSource = Sh.Name & "!A1"
UserForm1.TextBox2.ControlSource = Sh.Name & "!A2"
UserForm1.TextBox3.ControlSource = Sh.Name & "!A3"
End Sub

レスありがとうございます。
Worksheet1上で
UserForm1にTextBox1〜TextBox3だけを準備して上記のコードを実行しても
全く無反応です。
環境の違いによってこんな単純そうなことも出来ないんですね。
残念です。
全く別なやり方になるのですが
http://www.microsoft.com/JAPAN/developer/library/vbaac10/acfctDDESend.htm#
DDESend 関数を調べています。
読むところによるとDDESend 関数を使って、Excel ワークシートのセルに、テキスト ボックスに表示されたデータを送信できるそうです。


285名無しさん@そうだ選挙にいこう :2006/01/28(土) 20:07:56
>>284
念のため確認するけど、そのコードは
>>11のThisWorkbookオブジェクトんところに書き込んでるよな
Formんとこに書き込んでも動かないからな

286名無しさん@そうだ選挙にいこう :2006/01/28(土) 20:17:23
>>283
すみません。そうです。でも、何回も並べ替えコマンドを使わない方法を知りたいです。

287名無しさん@そうだ選挙にいこう :2006/01/28(土) 20:48:05
>>286
VBA使わないと無理じゃね?

288252 :2006/01/28(土) 20:49:37
dさん、ご指導頂いた通り実行したところ問題なく処理が行えました。
逆に左下から右上(A2:C1)に斜線を引く場合、以下の記述をどのように変更すればよいのでしょうか?
>>Set Shp = .Worksheet.Shapes.AddLine(.Left, .Top, .Left + .Width, .Top + .Height)

考えたところこの記述でよろしいでしょうか?
Set Shp = .Worksheet.Shapes.AddLine(.Left, .Down, .Left - .Width, .Down - .Height)

289名無しさん@そうだ選挙にいこう :2006/01/28(土) 20:54:59
Set Shp = .Worksheet.Shapes.AddLine(.Left, .Top, .Left + .Width, .Top + .Height)
                            ~~~~          ~~~~~~~~~~~~~~
ここ逆にしたらいいんじゃね?

290252 :2006/01/28(土) 20:54:59
試してみたところ、下のは動かないですね。。。


291252 :2006/01/28(土) 20:59:29
>>289さん、ありがとうございます
無事処理が行えました

292名無しさん@そうだ選挙にいこう :2006/01/28(土) 21:07:13
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 色の諧調

色の階調を上げることはできるのでしょうか。
たとえばVBAで

For i = 1 To 255
Cells(i, 1).Color = RGB(i, i, i)
Next

と、グラデーションになるように作っても、白と黒を入れてグレーは6色しか出てきません。。
各色素256階調以上にならないでしょうか。
モノクロ256諧調などでもよいです。

293273 :2006/01/28(土) 21:08:31
>>285
レスが遅れてすいません
Thisworkbookに下記のコードを書くことによって解決できました
原因は全くわかりませんが
Sh.Name & "!A"では出来なかったので"A1" と書き換えて出来ました
大変ありがとうございました。

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
UserForm1.TextBox1.ControlSource = "A1"
UserForm1.TextBox2.ControlSource = "A2"
UserForm1.TextBox3.ControlSource = "A3"
End Sub


294名無しさん@そうだ選挙にいこう :2006/01/28(土) 21:26:06
>>292
試してみたところカラーパレットに含まれてる56色の一番近い色に変換されてるぽい
56までしか同時に使えないんじゃね?

あとはColorsでカラーパレットの色変えたりPattern併用したりして
ごまかすしかなさそう

295292 :2006/01/28(土) 22:53:59
解凍ありがとうございました。

パレットをいじることでパレットに入るだけの色数はできるようになりました。

(こんな雰囲気)
For i = 1 To 55
ActiveWorkbook.Colors(i) = RGB(i, i, i)
Cells(i, 1).Interior.Color = ActiveWorkbook.Colors(i)
Next

でも、パレットを変えると、今まで表示していた色も変わるのでこの方法でこれ以上は無理っぽいです。

別のバージョンならパレットの色が多かったりするのかなぁ。

296名無しさん@そうだ選挙にいこう :2006/01/28(土) 23:00:58
>>278
左上に持っていくといいながら、1は左に右に動いてるだけだね。
上の方では左に寄せ、下の方では右に寄せ。
なぜ中寄せ、右寄せになるのか不明。

とりあえず1の数をカウントし、端から1を置いていく。残りを0で埋める。これはセル関数でできる。
先頭の0を空けて開始の位置決めは別のロジックで。


297名無しさん@そうだ選挙にいこう :2006/01/28(土) 23:21:47
>>278
こんな感じだべ
Set area = Sheet1.Range(Cells(1, 1), Cells(9, 6))
For c = 6 To 1 Step -1
area.Sort Key1:=Cells(1, c), Order1:=xlDescending
Next
For r = 9 To 1 Step -1
area.Sort Key1:=Cells(r, 1), Order1:=xlDescending, Orientation:=xlLeftToRight
Next

298名無しさん@そうだ選挙にいこう :2006/01/29(日) 00:02:40
>>286
2進数だから2進数にして計算。
2回目は行と列を入れ替えてソート。
最後にまた行と列を入れ替え、2進数に戻せばいい。

1回目のソート後            ↓まずはこれでソート
1   0   0   0   0   1   33
1   0   0   0   0   1   33
1   0   0   0   0   1   33
1   0   0   0   0   1   33
0   1   0   1   0   0   20
0   1   0   1   0   0   20
0   1   0   1   0   0   20
0   0   1   0   1   0   10
0   0   1   0   1   0   10
480  28   3   28  3   480   ←次はこれをソート

2回目のソート後
1   1   1   1   0   0   0   0   0   480
1   1   1   1   0   0   0   0   0   480
0   0   0   0   1   1   1   0   0   28
0   0   0   0   1   1   1   0   0   28
0   0   0   0   0   0   0   1   1   3
0   0   0   0   0   0   0   1   1   3

2進数→10進数
=A1*2^5+B1*2^4+C1*2^3+D1*2^2+E1*2^1+F1*2^0

10進数→2進数
=MOD(INT(K1/2^2),2)・・3ケタ目
=MOD(INT(K1/2^1),2)・・2ケタ目
=MOD(K1,2)・・・・・・・・・・・1ケタ目

299298 :2006/01/29(日) 00:07:41
単純に文字としてつなげたほうが、見やすくて早かったかも。
頭の0を省略しなければ、文字列のまま並べ替えても、
文字コード順で同じ順に並ぶし。


300名無しさん@そうだ選挙にいこう :2006/01/29(日) 02:09:44
Excelでソルバーをアドイン、インストールしようと思ったのです
「必要なインストールファイルが見つかりません。」と言われました
おそらくソルバーファイルがないのだろうと思いますので
どなたかソルバーいただけないでしょうか?

検定間近故急いでいるのでage

301名無しさん@そうだ選挙にいこう :2006/01/29(日) 02:33:02
>>300
なぜアドイン名を隠すの?
質問するなら必要な情報は出せよ屑

302名無しさん@そうだ選挙にいこう :2006/01/29(日) 02:33:44
検定間近故急いでいるのでage
検定間近故急いでいるのでage
検定間近故急いでいるのでage

自分勝手w
この質問はスルーよろ

303名無しさん@そうだ選挙にいこう :2006/01/29(日) 03:26:28
インストールファイル E4561409.CAB が見つかりません(´・ω・`)

304名無しさん@そうだ選挙にいこう :2006/01/29(日) 08:07:59
>>269
完璧です。ありがとうございました。

305名無しさん@そうだ選挙にいこう :2006/01/29(日) 08:12:46
>>303
マルチ

306名無しさん@そうだ選挙にいこう :2006/01/29(日) 08:54:51
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 LARGE 統計関数 無視

LARGE関数の範囲内にエラーを含むセルがあった場合、これを無視することは出来ますか?

307名無しさん@そうだ選挙にいこう :2006/01/29(日) 08:57:09
>>306
データ元のセルをエラーを出さないような式に変えればいいんじゃね?

308名無しさん@そうだ選挙にいこう :2006/01/29(日) 09:01:09
即レスありがとうございます
やっぱそれしかないか・・・

309名無しさん@そうだ選挙にいこう :2006/01/29(日) 11:29:43
初歩的な質問ですみません。Excel2000でお客さんに入力してもらうシートを作っています。
お客さんが入力した文字列が別シートのデータベースに存在しているかどうか(ヒットするかどうか)の結果を返してくれる関数をつくりたいのですが…
すみませんがVBAなしでお願いします



310名無しさん@そうだ選挙にいこう :2006/01/29(日) 11:33:43
>>309
完全一致ならCOUNTIF

311名無しさん@そうだ選挙にいこう :2006/01/29(日) 13:09:11
即レスありがとです。
帰ってきた数値が0だったらHIT無しで0以外だったらHIT有りというふうに作ってみます。

312名無しさん@そうだ選挙にいこう :2006/01/29(日) 15:50:57
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 MSXML MSHTML DOM
POSTメソッドで検索した結果(書籍情報)を、Excelの表に書き下ろすマクロを作っています。
WebBrowser.Documentプロパティを使うと簡単なのですが、HTMLの表示が余計なので
WebBrowserを介さずに、直接DOMオブジェクトを取得したいと考えています。

いろいろ調べたところ、
- MSXML.DOMDocumentで、POSTして読み込んだXMLのDOMを取得できる
- MSXML.XMLHTTPで、POSTして読み込んだHTMLのソースを取得できる
- MSHTMLで、URL指定して読み込んだHTMLのDOMを取得できる
というところまで分かった(実行できた)のですが、
POSTして読み込んだHTMLをDOMにする方法が見つかりません
ご教示くださいますよう、お願いいたします。

313名無しさん@そうだ選挙にいこう :2006/01/29(日) 15:59:04
>>312
 >>2・7

314名無しさん@そうだ選挙にいこう :2006/01/29(日) 16:09:00
>>312
>>HTMLの表示が余計なので
検索かけて必要なところだけ取ればいいやん


315名無しさん@そうだ選挙にいこう :2006/01/29(日) 16:14:58
>>313-314
レスありがとうございます。
すいません、プログラム板いってきます。

316名無しさん@そうだ選挙にいこう :2006/01/29(日) 16:27:38
>>315
え!なんで?
DOMにしなくても、innnerHTMLで問題なければそれで回したほうが楽だよ。
まだまだdom的(というかxml的)に間違った所が多いから、無理にdomで
やらない方がいいと思うよ。勉強の為だったらいいけど、「xml的に適正かどうか」
をまずチェックすることをまず始めにやるのを忘れないでね。はまるから。がんばって。


317名無しさん@そうだ選挙にいこう :2006/01/29(日) 16:29:54
【1 OSの種類         .】 WindowsXP PROFESSIONAL
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

長い住所があったりするのですが・・・


「○○県△△市×××区□□町256-64-32なんとかマンション2番棟1-2005号室」   ←これを
「○○県△△市×××区□□町256-64-32」 「なんとかマンション2番棟1-2005号室」 ←のように分けたい


これを「番地」までと「なんとかマンション」以降で分けさせたい場合、なにか手はないでしょうか?
また、番地となんとかマンションの間に空白を入れることにより改行や、入力するセルを分けることは可能でしょうか?

今、VLOOKUP関数で住所を割り出せるようにしているのですが短い住所もあれば長い住所もあるので
VLOOKUPで取り出す時に分けれたらいいなぁと思い質問しました。

宜しくお願いします。

318名無しさん@そうだ選挙にいこう :2006/01/29(日) 16:38:00
>>317
番地とそれ以降の間に空白を入れることができるんだったら、
[データ]-[区切り位置]で空白を区切り位置に指定するだけで分けられるよ。

ただ、空白を入れるのも自動でやりたいってことになるとちょっと面倒かも。


319名無しさん@そうだ選挙にいこう :2006/01/29(日) 16:59:02
>>318
○○県〜は入力する人が入力するので、番地とそれ以降は空白でと伝えればOKなので自動空白挿入は大丈夫です。

空白を入れることは可能なのです。


試したのですが、VLOOKUPで住所が出てくる所がセル統合されているせいか、
「一度に変換できるのは1列だけです。範囲には複数の行を選択できますが、列は1列しか選択できません。1列だけのセル範囲を選択し再度実行して下さい。」
というエラーメッセージが出てしまいます。('A`:;)


320名無しさん@そうだ選挙にいこう :2006/01/29(日) 17:12:38
>>319
横レス
どういうことがやりたいのか理解しないまま、あてずっぽでレスするが
LEFT(A1, FIND(" ", A1)-1)
RIGHT(A1, LEN(B1)-FIND(" ", A1))
で、それぞれ空白文字の左側と右側を取り出せる。
A1のとこにVLOOKUP(...)を代入してみて何とかならんか?

321名無しさん@そうだ選挙にいこう :2006/01/29(日) 17:35:11
>>320
空白で、右の文字列 左の文字列が分けたいです。という件です。

教えて頂いたのでやってみましたが、VALUEが返って来ちゃいます。
VLOOKUPを代入した物と普通の文字列でやってみて、-1を+1にしたり0にしたりやってみましたがVALUEになってしまいます。

322名無しさん@そうだ選挙にいこう :2006/01/29(日) 17:41:12
>>321
ほんとに?ちゃんと確認してから書いたんだけどな

A1セルに"東京都千代田区1-1-1 皇居"とか書いて
その隣あたりのセルに
= LEFT(A1, FIND(" ", A1)-1) とか書いて、ちゃんと表示されない?

323名無しさん@そうだ選挙にいこう :2006/01/29(日) 17:55:43

EXCEl VBAを使って表のレイアウトを作成するマクロを
作りたいと思っています。

□■■■
■□□□
■□□□

カーソルがあることを前提に最初は
Selection.CurrentRegion.Select
で外枠、中枠に線を引くまではできるのですが、
上表の■の部分の項目名をうまく指定し、
網掛けすることができません。
というのも表の大きさはいつも3×4列ではなく、
5×7列だったり変動するからです。

表の大きさに耐えられるよう、行指定(列)するのは
どのように書いたらよいのでしょうか?






324名無しさん@そうだ選挙にいこう :2006/01/29(日) 18:02:21
>>322
すいません。出来ました。
自分は全角スペースにしていて、>322さんのは半角スペースですね。

325名無しさん@そうだ選挙にいこう :2006/01/29(日) 18:18:23
>>323
Range1.Rows.CountとかRange1.Columns.Countとかで行数、列数を取得して処理するとか
Range1.Rows(1)とかRange1.Columns(1)とかで一行目、一列目をRangeオブジェクトとして取得するとか

326317 :2006/01/29(日) 18:20:47
なんとか解決できました。ありがとうございました

327323 :2006/01/29(日) 18:26:33


>>325

ありがとうございます!
早速試してみます。

328d :2006/01/29(日) 20:05:21
>>323
もう解決しちゃったかな。^^
Sub test()
  Dim RR As Range
  Dim R As Range, C As Range

  Set RR = Selection.CurrentRegion

  With RR
    Set R = .Rows(1).Offset(, 1).Resize(, .Columns.Count - 1)
    Set C = .Columns(1).Offset(1).Resize(.Rows.Count - 1)
  End With

  R.Interior.ColorIndex = 6
  C.Interior.ColorIndex = 6

  Set RR = Nothing
  Set R = Nothing
  Set C = Nothing
End Sub


329258 :2006/01/29(日) 20:25:39
>>262
ありがとうございます。
一応動くのですが、セルの値を消去するとエラーが出て、
履歴が全て消えてしまいます。
また、オートコンプリートは必要無いのですが、ブックを上書き
保存して次に開くと、履歴は残ってるのですが、もう一度変更
して上書き保存して再度開くと、前回1回分の履歴だけで
前々回以降が全て消えてしまいます。

>>268
ありがとうございます。
こちらはエラーも出ないし、履歴もちゃんと残ってました。
今回はこちらを使わせていただきます。

330262 :2006/01/29(日) 20:30:21
>>329
あれはどうみても>>268のがいいからそっち使った方がいいよ

331名無しさん@そうだ選挙にいこう :2006/01/29(日) 20:34:20
PC初心者板から紹介されてきました。どなたかご教授ください。

エクセル2002です。グラフでガントチャート作れないでしょうか?

積み上げ横グラフで、
例えば、朝食2時間(7時から9時)、通勤4時間(9時から13時)
朝食 ■■
通勤 ■■■■
こうではなく

朝食 ■■
通勤    ■■■■
こんな感じでズレるようにしたいのですが、、。


332名無しさん@そうだ選挙にいこう :2006/01/29(日) 20:49:09
>>331
3系列積み上げ横棒で、系列1と系列3を表示しないようにすれば良い
ソース側も簡単な計算が必要だが、小学生でも出来るレベルのものなので
あとは>>2※読んで自分でやれ

333323 :2006/01/29(日) 21:49:22
行数カウントとかよくわかんなくて、
結局こんな風に考え直してみました。
>>328さんのやり方のが一般的なんですかね?

Private Sub CommandButton1_Click()

Selection.CurrentRegion.Select

'左項目欄

Selection.Resize(Selection.Rows.Count + 0, 1).Select
Selection.Interior.ColorIndex = 15

'上項目欄

Selection.CurrentRegion.Select
Selection.Resize(1, Selection.Columns.Count + 0).Select
Selection.Interior.ColorIndex = 36

Selection.CurrentRegion.Select
ActiveCell.Select
Selection.Interior.ColorIndex = 2

End Sub


334323 :2006/01/29(日) 21:54:25

やっぱ僕のはやたらSelectionが連発で美しくないなあ。
328さんのまとめてくれた方法、
ちゃんと理解して使いこなせるようにしてみます。

どうもありがとうございました。

335名無しさん@そうだ選挙にいこう :2006/01/29(日) 23:06:31
>>334
Set tbl = ActiveCell.CurrentRegion
tbl.Rows(1).Interior.ColorIndex = 15
tbl.Columns(1).Interior.ColorIndex = 15
tbl.Range("A1").Interior.ColorIndex = 0

こんな感じじゃだめなのか?

336名無しさん@そうだ選挙にいこう :2006/01/29(日) 23:20:21
文字列の中に他のセルの数値を入れたい場合にはどうすればいいですか?
例えば

A1:123
B1:A1の数値は123です

のB1の表示方法です

337名無しさん@そうだ選挙にいこう :2006/01/29(日) 23:25:57
WinXP、Excel2003です。

折れ線グラフのデータ系列の書式設定→データラベルで
"値(V)"を選択すると全データの値がプロットされますが、
最後の1つ(=右端)だけのデータ値のみをプロットするように出来ますか?

338名無しさん@そうだ選挙にいこう :2006/01/29(日) 23:35:09
>>336

= "B1の数値は" & A1 & "です。"


339336 :2006/01/29(日) 23:37:42
>>338
アリガトー!

340名無しさん@そうだ選挙にいこう :2006/01/29(日) 23:39:15
>>337
データ要素の書式設定を使え

341名無しさん@そうだ選挙にいこう :2006/01/29(日) 23:43:18
>>340
> データ要素の書式設定を使え
ぬおおぉ すんばらしい! ありがとー
マーカーのサイズを小さくしてたからクリックで気付きにくかったYO・・

342名無しさん@そうだ選挙にいこう :2006/01/30(月) 00:53:23
Windows XPでExcel2003です。

グラフに例えば4系統あって折れ線グラフを作ります。

そのうち最後の4番目を1系統だけ棒グラフにすると、
凡例の一番上に棒グラフの系列が来てしまいます
(残りの3つが2,3,4番目になってしまう)

この凡例を元の順番のまま4番目に棒グラフを持ってくることはできますでしょうか?

343323 :2006/01/30(月) 07:11:24
>>335

すごいすっきりしていいですねこれ。
使わせてもらいます!どうもです。

344名無しさん@そうだ選挙にいこう :2006/01/30(月) 14:28:43
まぁWin自体がそんなにWYSWYGを重視してないっぽいしねぇ。
Macでは当たり前のようにできてたことが
Winでできないところがむかつくw

345名無しさん@そうだ選挙にいこう :2006/01/30(月) 15:46:41
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002(OfficeXP)
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

VBAで1秒未満のタイマーイベントを起こしたい場合はどのようにすればよいでしょうか?
理想としては下記のような感じです。Timerに相当するようなものがあれば便利なのですが・・・

「Timer Design-Time Control For eMbedded Visual Basic 3.0」 コントロールを使わない方法でお願いします。

Timer.OnTime = TimeProc
Timer.Interval = 100 ' 100msごとにイベントを起こす
Timer.Enabled = True 'タイマーを動かす

Sub TimeProc()
   ・・・・
End Sub

Sub Button1_Click()
   Timer.Enabled = False
End Sub

346名無しさん@そうだ選挙にいこう :2006/01/30(月) 15:57:03
>>345
たしかVBAでは1秒未満は計れなかったような。
API使わないとダメじゃないかな?timeGetTime()とか

347名無しさん@そうだ選挙にいこう :2006/01/30(月) 15:58:47
>>345
・APIのSleep関数(kernel32.dll)を使う
・Do LoopとTimer関数でタイミングを取る

どちらでもお好きな方をどうぞ
後者はCPU食いまくるので、長時間の連続使用はおすすめしない

348名無しさん@そうだ選挙にいこう :2006/01/30(月) 16:00:57
CPU食いまくらないように
対策できた気がするけど
忘れた


349名無しさん@そうだ選挙にいこう :2006/01/30(月) 16:15:07
test

350名無しさん@そうだ選挙にいこう :2006/01/30(月) 16:16:38
Windowsで作ったエクセルのマクロを
Macのエクセルで作動させるには変換が必要なんですか?

351名無しさん@そうだ選挙にいこう :2006/01/30(月) 16:38:43
Excel内部の処理なら基本的に必要なし
但し微妙に引数が違ってたりするものもある

352名無しさん@そうだ選挙にいこう :2006/01/30(月) 18:10:46
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可


=VLOOKUP(P9,'2005年度'!E:M,4,FALSE)
これで検索しているのですが、この該当するセルが未使用の場合「0」が返ってきます。
この0が返ってきた場合、空白にしたいのですがIF文使っても0がかえされてしまいます。
IF(B7=0,"",VLOOKUP(P9,'2005年度'!E:M,4,FALSE))
=VLOOKUP(P9,'2005年度'!E:M,8,FALSE)&IF(B7=0,"","")

なにか手はないものでしょうか?

353名無しさん@そうだ選挙にいこう :2006/01/30(月) 18:26:54
>>352
>>3の2
エラーじゃないにしても、想定外の結果になるときは
どこで想定外の結果が出てるのか調べるのが基本
使いこなせてもいないのに、ネストした式を組まずに
まずは一つの演算、一つの関数が返す値をじっくり見ろ

354名無しさん@そうだ選挙にいこう :2006/01/30(月) 18:33:42
よくわかんない式だけど
=IF(B7="","",VLOOKUP(P9,'2005年度'!E:M,4,FALSE))
あるいは
=IF(VLOOKUP(P9,'2005年度'!E:M,4,FALSE)=0,"",VLOOKUP(P9,'2005年度'!E:M,4,FALSE))
辺りじゃないかな?

>353の言うことは大事だから分解する癖をつけるのは基本だね。

ところでシート名に ' って使えたっけ?

355名無しさん@そうだ選挙にいこう :2006/01/30(月) 18:38:09
>>353
すいません。
IF(VLOOKUP~="","",VLOOKUP~)
とやったら、出来ました。
お騒がせ致しました

356名無しさん@そうだ選挙にいこう :2006/01/30(月) 19:03:10
【1 OSの種類         .】 mac OSX
【2 Excelのバージョン   】 Excel X
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 文字列 数式

リストを作って売上表みたいなやつをつくっています。
既定値に=TODAYを入力して、入力日やその他もろもろの数値を自動入力
させています。
当然ながら、自動で入力されたセルをダブルクリックすると、=TODAYという
式が入っています。

これを文字列に自動的に変換させる事できますか?
式じゃなくて、結果を返す方法があれば教えて頂けると、嬉しいです。
よろしくお願いします。

357名無しさん@そうだ選挙にいこう :2006/01/30(月) 19:08:32
コピーして、コマンドメニューだして「形式を選択して貼り付け」→「値」でいけないかな

358名無しさん@そうだ選挙にいこう :2006/01/30(月) 19:26:54
>>356
macは分からないけど、Winでは「Ctrl」+「;」で出てくるので、何らかのキーに割り当てされてるんでは?

359356 :2006/01/30(月) 20:09:49
>>357 358
ありがとうございます。

教えて頂いたコマンドは知っているのですが、それを自動的にできないかなぁと。。


360名無しさん@そうだ選挙にいこう :2006/01/30(月) 20:19:04
何かの作業を自動化したいときはVBA使うのが正解ですよ
そのためのマクロなんだし

361名無しさん@そうだ選挙にいこう :2006/01/30(月) 23:16:18
Excel2003です。

仕事内容と、その締切りをリスト化しているのですが、
ファイルを開いたときに、現在の日付と比較して締切りが迫っているもの(3日以内)の
締切日を自動的に赤く表示させたいのですが、どうすれば良いでしょうか?

よろしくお願いします。



362名無しさん@そうだ選挙にいこう :2006/01/30(月) 23:35:06
条件付書式でTODAY()+3と比較するようにする

363361 :2006/01/31(火) 00:19:59
ありがとうございます

364名無しさん@そうだ選挙にいこう :2006/01/31(火) 02:40:27
スレ違いすみません〜。
コンピュータサービス技能評価試験表計算部門2級の
資格を取得したく、教本を探しています。

どの板のどのスレらへんが上記質問に適してますかね。
よかったら誘導お願いいたします〜。

365名無しさん@そうだ選挙にいこう :2006/01/31(火) 06:55:06
会社・職業の資格全般辺りで探せば?

366364 :2006/01/31(火) 08:05:21
>>365

ありがとうございます。探してみます〜。

367名無しさん@そうだ選挙にいこう :2006/01/31(火) 09:31:10
【1 OSの種類         .】 Windows98SE
【2 Excelのバージョン   】 Excel2000

VBEでユーザーフォームを作っているのですが、
右上の×ボタンを押しても無効にするquerycloseイベントでは無く
最初から×ボタン自体を押せなくできないんでしょうか?

368名無しさん@そうだ選挙にいこう :2006/01/31(火) 09:40:15
api使わないと無理だよ

369名無しさん@そうだ選挙にいこう :2006/01/31(火) 10:59:30
じゃ、使ってもok

370名無しさん@そうだ選挙にいこう :2006/01/31(火) 11:48:51
FindWindow,GetWindowLong,SetWindowLong,DrawMenuBar
を宣言しといてinitializeあたりで
hWnd = FindWindow(vbNullString, Me.Caption)
SetWindowLong hWnd, -16&, GetWindowLong(hWnd, -16&) And Not &H80000
DrawMenuBar hWnd
だよ。閉じるためのボタンも別途用意しといてね

371名無しさん@そうだ選挙にいこう :2006/01/31(火) 12:42:14
私は369ではありません

372名無しさん@そうだ選挙にいこう :2006/01/31(火) 12:45:36
>>364
対応テキストは出版されてないはず。
問題集は持ってるの?
javadaで出してるので傾向はわかる。(HPにも一回分は載ってる)
数をこなしたいなら、九州文化出版の問題集がよいよ。
ここは、出題者が編集に加わってるらしくて、新傾向の反映も早い。

どうしても教本が欲しければ、Microsoft Office Specialist のテキスト
応用編がほぼ2級にあたる。ただし、完全には無理。
解らない時は九州文化出版サイトにあるBBS使えばかな。

373367 :2006/01/31(火) 13:51:43
>>370
右上の×印を消すことが出来ました。
有難うございました。

374名無しさん@そうだ選挙にいこう :2006/01/31(火) 15:12:05
Excel2003 SP1です。

小口の現金を管理する表を作っています。
表の総セル数(行、列の個数)は固定で、表の最後に現在の残高を表示したいのですが
記入のある(空白でない)セルの一番下の値を返す関数はありますか?

<イメージ図>
日時    入金 出金 残高
2006/1/01 1000     1000
2006/1/10     100  900
...
...
現在の残高         900 ← これを表示したい

375名無しさん@そうだ選挙にいこう :2006/01/31(火) 15:26:25
複数のシートがあり、あるシートの右から全部消したい場合はどうすればいい?

376名無しさん@そうだ選挙にいこう :2006/01/31(火) 15:26:50
最後の残高を返すんじゃなくて、
sum(入金)−sum(出金) じゃ駄目かい?

377名無しさん@そうだ選挙にいこう :2006/01/31(火) 15:30:22
376は>>374

>>375は 複数シートの選択
あるシートの右のシートを選択後、shift押しながら最後のシートを選択する

378名無しさん@そうだ選挙にいこう :2006/01/31(火) 15:35:06
OS XPProでExcel2000を使っています。
マクロで
Sub hoge()
SolverReset
とするとSubまたはFunctionが定義されていませんとエラーになってしまいます。
ソルバーアドインは入れており、きちんとアドインのソルバー部分にチェックは入っています。
LibralyフォルダにSolver.xlaもあります。
これを回避するにはどうすればいいのでしょうか?
何か最初に定義が必要なのでしたら教えてください。

379名無しさん@そうだ選挙にいこう :2006/01/31(火) 15:44:38
すんません、ある特定の条件が満たされたとき
特定の範囲を削除して、それを特定の範囲に挿入するとかってできますか?

380名無しさん@そうだ選挙にいこう :2006/01/31(火) 15:51:29
>>378
ちゃんとスコープ内にそのプロシージャがあるの?
Privateプロシージャは別モジュールからは呼べないし
Option Private Module宣言がしてあっても同じ
Publicプロシージャでも参照設定するかRun使わないと
別ブックのプロシージャは呼べない。


>>379
VBAで出来るから>>2※読んでがんばれ

381名無しさん@そうだ選挙にいこう :2006/01/31(火) 15:57:33
VBAって何じゃらー!!!!!!!!!!!!!!!!!
知るかんなもんw手動で切り取りペーストするわ。

382名無しさん@そうだ選挙にいこう :2006/01/31(火) 16:06:07
>>378
それVBAで使うにはね、VBE側の参照設定しないと駄目だよ。
Excelの参照設定とは別。
VBEの[ツール]-[参照設定]で 「SOLVER」ってのにチェック入れればいいよ。

383名無しさん@そうだ選挙にいこう :2006/01/31(火) 16:18:28
382様
ありがとうございました。

384名無しさん@そうだ選挙にいこう :2006/01/31(火) 17:26:19
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

実に初歩的なのですが、あるセルに曜日を入力する際に、
そのセルをクリックすると、右にオートフィルタみたいな矢印が出てきて、
ウィンドウの中から選択できる、みたいなファイルがあるのですが(誰が作成したのか不明)
これを応用したら便利そうなので、やり方を教えていただけませんでしょうか?

どうぞ宜しくお願い致します。

385名無しさん@そうだ選挙にいこう :2006/01/31(火) 17:28:14
データ>入力規制>入力値の種類で「リスト」


386384 :2006/01/31(火) 17:28:52
推敲しなさすぎて無茶苦茶な文になってしまい、申し訳ございません。

要するに、セルをクリックしたら矢印が出てくるような仕組みは、どうやったらいいのか、
というのをお聞きしたかったのです。「できる EXCEL2003」を読んでも載っておりませんでした・・・

お願い致します。

387384 :2006/01/31(火) 17:30:42
>>385
と思ったら素早いレスどうもありがとうございました。
大感謝です!!

388名無しさん@そうだ選挙にいこう :2006/01/31(火) 17:47:07
すごく初歩的だと思うんですが、関数IFを使って出た答えの複数のセルを
SUMをつかって合計を出したいのですが、IFの答えが出てるセルに合わせると
その式が出てしまい、表示されてる数値をSUMで求められません…
説明もヘタですいません…宜しくお願いします。

389名無しさん@そうだ選挙にいこう :2006/01/31(火) 17:57:59
>>388
TRUE  1 =IF(A1,B1,0)
TRUE  2 =IF(A2,B2,0)
FALSE 3 =IF(A3,B3,0)
TRUE  4 =IF(A4,B4,0)
FALSE 5 =IF(A5,B5,0)
       =SUM(C1:C5) => 7

状況がよくわかんないんだけど、こういうことがしたいってこと?
それで、どこでつまづいてるの?
あとOSとExcelのバージョンは?


390名無しさん@そうだ選挙にいこう :2006/01/31(火) 19:59:09
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 はい

エクセル2003で作ったマクロを2000で動かした場合について教えてください。

入力部分のロックを解除してセルに保護をかけてあるのですが、
2000の場合、ロックした部分にもフォーカスが移動してしまいます。
どなたか理由を教えてください。

391名無しさん@そうだ選挙にいこう :2006/01/31(火) 21:48:22
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

a1のセルに1と入れるとb2に2、c2に「あ」といれれるようにしたいのですが
どうすればよいですか?

392名無しさん@そうだ選挙にいこう :2006/01/31(火) 23:13:21
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

20個のブックが開いた状態で、それぞれのブックに複数のシートがあります。
20個それぞれのブックのアクティブなシートの1つのセルの値を取得して、別のブックに代入したいのですが、
VBAなしでできないものでしょうか。

393名無しさん@そうだ選挙にいこう :2006/02/01(水) 00:35:04
>>391
IF関数

394名無しさん@そうだ選挙にいこう :2006/02/01(水) 10:51:03
あるシートが存在する場合にのみ、そのシートを削除するにはどうすればいいですか?

395名無しさん@そうだ選挙にいこう :2006/02/01(水) 11:17:26
>>392
VBAが駄目でもマクロは使えるでしょ?
試してみれば?

396名無しさん@そうだ選挙にいこう :2006/02/01(水) 11:37:45
>>394
とりあえずエラー無視して消してみる作戦が簡単だよ。
on error resume next
application.displayalerts=false
thisworkbook.worksheets("奥さん、八百屋です").delete
application.displayalerts=true
on error goto 0
とかね。

397名無しさん@そうだ選挙にいこう :2006/02/01(水) 14:07:27
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

シート全体から特定の文字だけ消去するにはどうしたらよいでしょうか?


398名無しさん@そうだ選挙にいこう :2006/02/01(水) 14:15:07
>>397
「置換」機能ではダメなん?


399名無しさん@そうだ選挙にいこう :2006/02/01(水) 14:21:11
【1 OSの種類         .】 WindowsME
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 はい

初心者ですが集計で分からない事ばかりです

   A    B   C   D   E   E   F
1 月曜日 店A 数値 数値 数値 数値 数値
2 火曜日 店A 数値 数値 数値 数値 数値
3 水曜日 店B 数値 数値 数値 数値 数値
4 木曜日 店C 数値 数値 数値 数値 数値




で、曜日別、店別の統計の仕方はどうすればいいのですか?

400名無しさん@そうだ選挙にいこう :2006/02/01(水) 14:29:41
>>399
曜日別、店別はSUMIF
曜日&店別は作業列で=A1&B1入れてSUMIFやるか
作業列使いたくなければ配列数式

使い方はヘルプ参照


401名無しさん@そうだ選挙にいこう :2006/02/01(水) 16:57:40
ご回答ありがとうございます。
もう一件質問ですが、カレントディレクトリを取得して、その場所にシートを保存するにはどうすればよいですか?

402名無しさん@そうだ選挙にいこう :2006/02/01(水) 18:20:19
>>389
遅くなってすいません。返答ありがとうございます。
書いて頂いた事すらよく理解出来ない程の初心者なんです…
使用してるのはWindows XP Excel2003です。
もう一度説明させて下さい。
A1A2のセルの数値を、それぞれ関数IFを使ってB1B2セルに
その答えを返しました。
次に、B1B2の2つの数値の合計を、C2にSUMを使って
答えを返したいのですが出来ません…
C2に答えを出すときに、B1にカーソルを合わせると表示されてる
数値じゃなくIFの式が表示されSUMを使った答えが出なくて
困ってます…
説明下手ですみません…再度よろしくお願いしたいと思います。

403名無しさん@そうだ選挙にいこう :2006/02/01(水) 18:28:50
>>402
えーとですね。

セルをクリックすると、入力されたものが見えます。
ダブルクリックになると、編集モードになります。

式が表示されているだけなら、ほかのセルをクリックしても、
表示が切り替わるだけですが、
編集状態に入ると、その後に選択されたセル範囲が、式のカーソル位置に挿入されます。

間違いの場合はエスケープ(ESCキー)でキャンセルできます。


それで、C2にSUM()の式を入力するには、
カーソルをC2に置いて、「=」を入力して式の入力を開始します。
「SUM(」まで入力して、マウスで範囲を指定し、そのまま「)」を入力し、エンターで完了します。

「=」ボタンとかで式の入力を開始し、リストから関数を選択して
パラメータ入力窓を出してから指定すると分かりやすいです。


404名無しさん@そうだ選挙にいこう :2006/02/01(水) 19:39:55
俺は402じゃないが

>>403

あんた良い人だな・・(つд`)

405名無しさん@そうだ選挙にいこう :2006/02/01(水) 20:21:31
すみません、質問なのですが
いまファイルがあって
file1
x y a
1 1 5
1 2 7
1 3 3
2 1 5



とxy座標に値aというファイルがあって
file2
x y b
1 2 9
2 3 6
3 1 5

というxy座標に値bというファイルがあってエクセルでxy座標に値aと値bというファイルを作りたいのです。
file2は座標が飛び飛びでfile1は全ての座標に値があるのですがfile2は無いものもあります。
file1とfile2のxy座標を同期?させてxyabという
x   y a b
1 1 5
1 2 7 9
1 3 3

   ・
こんなファイルを作りたいです。

とても長くてすみませんがよろしくお願いします。
VBAはできれば無しでお願いします。
windowsXP Excel2000です。

406名無しさん@そうだ選挙にいこう :2006/02/01(水) 20:47:13
>>403
何度も丁寧に教えてくださってありがとうございます。
さっそく明日会社でやってみたいと思います。

407名無しさん@そうだ選挙にいこう :2006/02/01(水) 21:02:42
>>405
具体的にどうぞ

408405 :2006/02/01(水) 21:15:56
えーっと・・・・

file1にfile2の値bを貼り付けたいのですが
file2のxyの座標はバラバラなので
そのまま隣のセルに貼り付けるだけだと座標が対応してないんです。
なので座標が同じものだけに値bを隣に貼り付けるという感じです。

説明へたですみません。

409名無しさん@そうだ選挙にいこう :2006/02/01(水) 21:16:05
>>405
以下、file1とfile2をSheet1とSheet2と書くので、適宜読みかえるように
A1とかB1とかC1とかも、適宜読みかえるように

Sheet2の一番左の列に作業用の列を挿入し、"0102", "0203"のような、xとyをあわせた文字列を入力する
これは、 =TEXT(B1,"00")&TEXT(C1,"00") とかやれば速いだろう。

次に、Sheet1の左から4列目に、次の式を入力する。
=VLOOKUP(TEXT(A1,"00")&TEXT(B1,"00"), Sheet2!A:D,4,FALSE)

これでSheet1の4列目には、Sheet2のb列が表示されるはずだ
Sheet2に値のないセルにはエラーが出ると思うが、
それはコピー → 形式を選択して貼り付け → 値
で、ワークシート関数でない単純な値に変換してから、「置換」コマンドで
エラー文字列を空文字列に置換してやればいい

410405 :2006/02/01(水) 21:30:30
>>409
ありがとうございます!
今やってみましたがやろうとしてたことはまさにこれです!

ありがとうございました。

411名無しさん@そうだ選挙にいこう :2006/02/01(水) 22:49:22
関数についての質問です。
例えば
1月1日
1月2日
1月2日
1月3日
とそれぞれのセルに入力してあった場合同じ日付が複数あった場合も
1日とみなしてくれる関数はありますか?
この場合の答えは3になる関数があるとうれしいのですが。
都合でVBAではなく関数で答えを出したいのです。
よろしくお願いします。

412名無しさん@そうだ選挙にいこう :2006/02/01(水) 23:13:28
>>411
http://www.moug.net/skillup/ebb/ekbb/ekbb002-1.htm
重複データを省いた人数は、COUNTIF関数を2つ使えば求められます。


413399 :2006/02/02(木) 00:38:21
>>400
サンクス
やってみます

414名無しさん@そうだ選挙にいこう :2006/02/02(木) 00:38:34
明後日、情報処理検定初段の検定日なので今問題集解いているのですが
どうしても分からない数字の意味があって困っています。
宜しければご回答のほう宜しくお願いします。
正直文字でどう説明すれば良いのか分からず…とりあえず式だけでも載せてみて
それじゃ何の式か分からないから説明しようがない、と仰ってくださればなんとか説明出来るよう努めたいと思います。
値引率を求める式なのですが
=VLOOKUP(D3,$K$27:$N$31,LEFT(A3,1)+1)の最期の+1は何の為に付けるのか分かられる方はおられますでしょうか?
問題集を解くだけなら、どうしても分からなければ模範解答を見るという方法もあるのですが
何故付ける必要があるのか理解していなければ意味がない、と思い悩んでおります。
宜しくお願いします。

415名無しさん@そうだ選挙にいこう :2006/02/02(木) 00:53:42
LEFT(A3,1)得られる数の意味は?
それに+1すると、何が記されている行になるの?

なんか割引率に関する意味があるんでしょう
その辺考えてみたら?


416名無しさん@そうだ選挙にいこう :2006/02/02(木) 01:03:01
>>413
SUMIFとか関数使ってやるよりも、ピボットテーブル使った方がいいよ。
[データ]-[ピボットテーブルと...]で、ウィザードが出るから適当に「次へ」押しまくって作成
表の枠とフィールドリストが出てくるので
表の行見出しと列見出しのところにそれぞれ、フィールドリストから曜日と店名をドラッグ
あとは値を表のデータアイテムのところにドラッグすれば完成

あと細かいとこはヘルプ見て適当に調整して

417名無しさん@そうだ選挙にいこう :2006/02/02(木) 01:09:48
>>414
情報が少ないんで推測だけど
LEFT(A3,1)は1〜3のどれかの数字を返すんじゃない?
で、LEFT(A3,1)+1は2〜4のどれかの数字を返す。
この数字は、範囲$K$27:$N$31の、2列目から4列目(L,M,N列)を意味する。
A3の1文字目が1ならL、2ならM、3ならN列から、値を取ってくる、ってことじゃないかな

418名無しさん@そうだ選挙にいこう :2006/02/02(木) 01:38:49
えっと今似たような問題を解いていたのですが

これは単価を求める式なのですが
=VLOOKUP(B4,$A$28:$D$31,RIGHT(B4,1)+1)

単価は単価表を参照し、求めなさい。区分は型番の右から一文字目とする。


単価表は
型番    区分
      1  2  3
100番台 4200 4100 4000
200番台 3900 3700 3500
300番台 3000 2800 1900
400番台 1400 1300 1100

型番は100〜400までの数字

こんな問題なんですが・・・これもまた何故+1付けるのか分からずorz


419名無しさん@そうだ選挙にいこう :2006/02/02(木) 01:47:25
>>417 当りだね

420名無しさん@そうだ選挙にいこう :2006/02/02(木) 01:57:24
>>417さんが既に答えを出してくださってるんですか・・・
うーん・・・なんとなく、分かるような分からないような・・・
俺今高3で、学校の科目にも情報処理があるのですが
初段を教えられる先生も居ず、勉強の合間に自己流で覚えてきたもので
当たり前かもしれないことを、理解出来てないのかもしれませんorz

>>417さん
せっかく教えてくださっているのに、理解出来ずに申し訳ありません……。

421名無しさん@そうだ選挙にいこう :2006/02/02(木) 01:57:56
>>418
単に
100番台の時は、表の2行目を検索したいからでしょ→100の「1」+1=2行目
200番台の時は、表の3行目を検索したいからでしょ→200の「2」+1=3行目

422名無しさん@そうだ選挙にいこう :2006/02/02(木) 02:00:34
あ、ああ。なるほど。すみません、やっと理解出来ました
お騒がせしましたorz

でもこれ15問あるうちの3〜4番目の問題なんですよね・・・
先が遠すぎる・・・orz

教えてくださった皆様、ありがとうございました

423名無しさん@そうだ選挙にいこう :2006/02/02(木) 03:16:36
プロバイダメール以外に有料の電子メールがあると思うのですが
これに申し込むのはイカれてるでしょうか?
私の契約しているプロバイダのメールが210円と高いので
安値の電子メールを別に契約したいのですが・・・
プロバイダメールじゃないと登録出来ないサイトもありますし何かと不便です

何卒宜しくお願いいたします

424名無しさん@そうだ選挙にいこう :2006/02/02(木) 03:25:18
>>423
スレ違いのマルチってのも珍しいな。

425名無しさん@そうだ選挙にいこう :2006/02/02(木) 10:53:39
A列1行目のセルにSUM関数が入っています。
SUM関数をA列52800行までコピーするのに、
フィルドラッグするしか方法を知りません。

昔、最初のセル(A列1行目)と最後のセル(A列52800行目)を選択して、
キーボートとマウスを使うと一気にコピーできる方法を聞いたのですが…。
忘れてしまいました。どなたかこんな方法を知っていませんか?


426名無しさん@そうだ選挙にいこう :2006/02/02(木) 11:18:03
>最初のセル(A列1行目)と最後のセル(A列52800行目)を選択して、
式を入力したら、Ctrl+Enter で確定。

427名無しさん@そうだ選挙にいこう :2006/02/02(木) 11:21:07
Ctrl+Enterは入力確定用
フィルコピーはCtrl+D

428名無しさん@そうだ選挙にいこう :2006/02/02(木) 14:14:47
【1 OSの種類         .】 Windowsxp pro
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

会社でタイムカードの管理をしているものなのですが、
分の切り上げ切捨てがややこしく、どのように関数を
使えばいいのか分りません。どなたかご教授下さい。

1、基本的には30分単位です。

2、出勤時9:00と計算されるのは8:36〜9:05まで
  同じく9:30と計算されるのは9:06〜9:35まで。

3、退勤時17:00と計算されるのは16:56〜17:25まで
  同じく17:30と計算されるのは17:26〜17:35まで

これを、タイムカードの打刻時間を入力するだけで自動に計算されるように
設定したいのですが・・・。

よろしくお願いいたします。


429名無しさん@そうだ選挙にいこう :2006/02/02(木) 14:26:39
あるセルの、1行上の2列左側のセルの値を一発で得る関数はあるでしょうか

自分で調べた限りでは、ROW関数、COLUMN関数、ADDRESS関数、INDIRECT関数を組み合わせるしかないみたいですが、
= INDIRECT ( ADDRESS ( ROW()-1 ; COLUMN()-2 ) )

もっとシンプルな記述はできるのでしょうか?

理想的には    = ある関数 ( -1 ; -2 )    ←こんな感じです。

セルを挿入したり、カットアンドペーストをすると、普通のセル参照だと、参照先がずれてしまうので、毎回直さずに済ましたいのです。

430名無しさん@そうだ選挙にいこう :2006/02/02(木) 14:31:03
>>429
offsetワークシート関数ってのがあるよ。
=offset(基準セル,行,列)

431名無しさん@そうだ選挙にいこう :2006/02/02(木) 14:35:04
>>428
なんでヘルプ読まないの?

432名無しさん@そうだ選挙にいこう :2006/02/02(木) 14:44:17
>>430
ありがトン!

433411 :2006/02/02(木) 16:19:14
>>412
先程やってみました。
見事できました。
最近はほとんどVBAを使って処理していましたが、VBAが使えない環境
でしたので助かりました。
しかし関数も奥が深いですねー。
ありがとうございました。


434名無しさん@そうだ選挙にいこう :2006/02/02(木) 18:55:44
【1 OS】 Win 2000
【2 Excelのver.】 Excel 2000
【3 VBAが使?】 いいえ
【4 VBAの回答】 否
【5 検索キーワード】 excel 2000 ウインドウ 位置 ずれる
【Q】
Excelのアプリ画面を矢印カーソルで画面端まで目一杯引き延ばして
タスクバーを上にして使っているのですが、Ecelを起動する度にタスクバーの
厚み分だけ上にずれていくので困ります。これは直しようがないんでしょうか?

435名無しさん@そうだ選挙にいこう :2006/02/02(木) 19:03:11
>>428
切り上げは不要じゃないかな。
出勤時刻なら24分足して30分単位で切り捨て、
退勤時刻は4分足して30分単位で切り捨てる。

436名無しさん@そうだ選挙にいこう :2006/02/02(木) 19:31:24
OS:Windows2000
Excel 2003(11.6560.6568) SP2 (会社の)

皆さんのExcel2003で以下の2点について確認お願いしたいんだけど、
1 会社のExcel2003のVBEで GetOpenFileName を検索すると見つからない。

家のExcel2002ではちゃんと見つかるし、会社のPCでもApplication.から
インテリセンスで出てきて、使えはするけど。

2 後、不思議なのが、キーワードをソースからコピーして検索ヘルプのボックス
をクリックし、そこにペーストしようとしても出来ない。

マウスの右クリックから貼り付けでは出来るけど、キーボードの
CTRL+Vでは検索ヘルプのボックスに貼りつかず、ソース側の方に
貼りついてしまう。
細かく言うと、モジュールを挿入していない状態ではCTRL+Vで検索ボックスの
ヘルプに貼りつくみたいだけど。
Officeアシスタントのボックスにならモジュールがある状態でもCTRL+V
で貼りつくのに。

これって仕様? それとも俺が使ってるExcel2003だけ?


437名無しさん@そうだ選挙にいこう :2006/02/02(木) 20:59:18
【1 OSの種類         】 WindowsXP および Mac OSX
【2 Excelのバージョン   】 Excel2003 および Excel2004 for mac
【3 VBAが使えるか    】いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】グラフ 有意差 excel t検定

エクセルで棒グラフを作って t 検定を行い、
有意差があるかどうかをアスタリスクなどで示すことはできないのでしょうか。
↓こういう感じに……

| 
| *  
| | 
| |
| | **
| | |
1 2 3

(この場合、1 と 2、1 と 3 を比較しています)
t 検定は出来ますが、なにしろ数が多いので、一つ一つやっていくのは非常に煩雑です。
もしかして、一つ一つやった揚げ句、テキストでアスタリスクを貼る、
なんていう運命にあるのでしょうか……つД`)・゚・。・゚゚・*:.。

438名無しさん@そうだ選挙にいこう :2006/02/02(木) 21:24:36
>>437
そのとおり。

439名無しさん@そうだ選挙にいこう :2006/02/02(木) 21:45:07
excelで普通に1行目に関数をいれて下へそのセルをずっとコピーしていくとき
マウスでカーソルを+にして下へぐわっとコピーしていきますよね?
そのときどうしてもファイルの最後を通り越して
クリックを押しながら上下へいったり来たりしなければいけなくなるときが多々あります。
なにかいい方法はありませんでしょうか?

440名無しさん@そうだ選挙にいこう :2006/02/02(木) 21:46:37
>>そのときどうしてもファイルの最後を通り越して
意味が分からないよ

441439 :2006/02/02(木) 21:50:47
すみません。
ファイルが3000行で終わってた場合、行き過ぎて3200行とかまでいってしまって
また上の方へ戻そうとしたら2800行のとこまできちゃったりみたいな感じです。

442名無しさん@そうだ選挙にいこう :2006/02/02(木) 21:53:38
3000行もどういう目的でコピーするのか
教えてください
お願いします

443名無しさん@そうだ選挙にいこう :2006/02/02(木) 21:54:58
時々そう言う事を俺もよくやる w

444439 :2006/02/02(木) 21:59:14
>>442
いえ、普通にデータファイルの計算をしていきたいのですが・・・・・_| ̄|○

445名無しさん@そうだ選挙にいこう :2006/02/02(木) 22:04:32
>>441
オートフィルでもいいけど普通に関数が入ってるセルをコピーした後
「SHIFT」押しながら「PageDown」で降りていって適当なところで
「Down」なり「Up」なりに切り替えた方が良くね?

446437 :2006/02/02(木) 22:05:25
>>438
えっ……
じょ、冗談だとどなたか仰って下さい……(T_T)

447名無しさん@そうだ選挙にいこう :2006/02/02(木) 22:06:59
”デフォルトでぐわっと移動してしまう量”って変更できなかったっけ?


448名無しさん@そうだ選挙にいこう :2006/02/02(木) 22:12:19
左隣のセルがその3000行とやらまで連続して空白でないなら「+」マークにして
ダブルクリックは?
まぁ途中で空白あったら駄目だけどね

449439 :2006/02/02(木) 22:15:30
>>448
そんな方法があったのですか!?!??!?
空白とはどの列の空白を判断しているのでしょうか??

450名無しさん@そうだ選挙にいこう :2006/02/02(木) 22:17:04
>>446
Excelはそういうことをするソフトじゃない。

どうしてもやりたけりゃ、VBAでShapeをいじるコード書いてみたら?
多分、手作業で張るほうが早いだろうけど。

451名無しさん@そうだ選挙にいこう :2006/02/02(木) 22:21:47
>>449
左隣のセルに値なり関数なりが入ってない場合だよ
ずっと連続してれば、それで関数に関してはコピペになるよ
ただし文字列の場合数字が含まれていると数字が1ずつプラス
されるよ

452439 :2006/02/02(木) 22:22:18
今簡単にA列に適当に数字を入れてB1にA1を参照させて
A1の右下をダブルクリックしたらA列の長さと同じ長さまでB列がコピーできました!!!!

こんな方法があったとは!
ありがとうございました

453439 :2006/02/02(木) 22:26:24
>>451
なるほど
少し制限があるのですね・・・
でもかなり楽になりそうです。

454名無しさん@そうだ選挙にいこう :2006/02/02(木) 22:27:54
>>453
VLOOKUPみたいに範囲(テーブル)を参照する場合は絶対参照にして
おくことを忘れずに

455446 :2006/02/02(木) 22:48:29
>>450
そうですか……
Excel でやるのをあきらめることにします。
そういう方面に特化された Mac のソフトに変えてやることにしました。

有難うございました m(_ _)m

456名無しさん@そうだ選挙にいこう :2006/02/03(金) 01:43:00
教えてください。
色々な人が触る環境な為、ツールバーの位置や表示非表示・オプション設定が滅茶苦茶になってしまいます。
Excel10.xlbというファイルを削除すれば初期設定に戻る事は検索でなんとか分かりました。
しかし完全に初期設定ではなく、使いやすいようにいくつかオプションを変えた上で毎回その設定で起動させ
尚且つ、設定をいじられても設定が変わらないようにしたいのですが可能でしょうか?
ご存知の方いましたらよろしくお願いします。

OSはXP、エクセルもXPです。

457名無しさん@そうだ選挙にいこう :2006/02/03(金) 01:57:42
>>456
ちょっとスレ違いになるが、XP だったら各ユーザー毎にアカウントを作成して
使用したほうが良いと思うよ。

そうすれば、各ユーザーが使い易いようにカスタマイズ、出来るから。

458名無しさん@そうだ選挙にいこう :2006/02/03(金) 05:05:18
すいません、2重投稿してしまいました

459428 :2006/02/03(金) 07:43:18
>>431
ありがとうございます。ヘルプに似たようなものがありました。
それをちょっと変えて頑張ってみます。

>>435
ありがとうございます。
「○○分足して」っていう部分を式に盛り込めばいいわけですね、
頑張ってみます。
出来たらまた報告しますね。

460名無しさん@そうだ選挙にいこう :2006/02/03(金) 10:17:29
>>456
使いやすいようにいくつかオプションを変えた上で、EXCELを終了する。
excel10.xlbファイルをコピーして、任意の場所に任意の名前で保存する。
以降そのファイルを開けば、保存時のツールバーが再現できるよ。


461428 :2006/02/03(金) 11:38:39
>>431
>>435

やっと出来ました。
=FLOOR(A1+"0:24:0","0:30:0")
ってことですよね?

どうもありがとうございました。

462fei :2006/02/03(金) 12:07:43
市況2の、ウォンを看取るスレに置いた、
ウォン・ウォッチング用Excel VBAのクロスポストでつ。
4日の夜の禿の戦いをウォッチングするために書きました。

あっちは流れが速いのでここに置かせて頂きまつ m(_ _)m
改良してグラフを表示するようにしたシートにしていただけるとありがたいでつ。
または、為替ウォッチング用のコードの参考にでもしてください。

****sheet1のコード
Sub StartWatching()
UserForm1.Show (vbModeless)
End Sub
****

↓↓↓↓ (続く)

463fei :2006/02/03(金) 12:08:38
****WebBrowser1を貼り付けたUserForm1のコード
Public WithEvents WB As WebBrowser
'スコープが外れて消えないようにグローバル化
Dim cIndex As Integer

Private Sub UserForm_Initialize()
Set WB = WebBrowser1
WebBrowser1.Navigate ("http://www.xe.com/ucc/convert.cgi?template=crm1&Amount=1&From=USD&To=KRW")

cIndex = 1
End Sub

Private Sub WB_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim Doc As MSHTML.HTMLDocument
Set Doc = WebBrowser1.Document
Dim ele
Set ele = Doc.body.Children(0).Children(3).Children(0).Children(0).Children(0).Children(0).Children(0)

'Won -> strWon
Dim eleWon
Set eleWon = ele.Children(1).Children(1).Children(2).Children(0).Children(0)
Dim strWon As String
strWon = eleWon.innerText

↓↓↓↓ (続く)



464fei :2006/02/03(金) 12:10:02
'Time -> strTime
Dim eleTime
Set eleTime = ele.Children(1).Children(0).Children(0).Children(0)
Dim mStr As String
mStr = eleTime.innerHTML
TStart = InStr(1, mStr, "UTC") - 20
Dim strTime As String
strTime = Mid(mStr, TStart, 20)

'Write into Cell
Sheet1.Cells(cIndex, 1) = strTime
Sheet1.Cells(cIndex, 2) = strWon
cIndex = cIndex + 1
End Sub
****

(注)参照設定に Microsoft HTML Object Library を追加してください。


465名無しさん@そうだ選挙にいこう :2006/02/03(金) 16:27:30
VBAで1つのデータを複数のオブジェクトに
与えることは出来ますか?

466名無しさん@そうだ選挙にいこう :2006/02/03(金) 16:40:18
さあ?

467名無しさん@そうだ選挙にいこう :2006/02/03(金) 18:08:09
【1 OSの種類         .】 Windowsxp pro
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

教えてください。
945→9:45というように
数値を入れると自動的に時刻に変換されるようにしたいです。
TEXT関数で、別のセルに9:45と表示させることまでは
なんとかこぎつけたのですが、できれば945と入力するだけで
入力したセルで9:45と表示させたいのですが・・・
出来ますでしょうか?

468名無しさん@そうだ選挙にいこう :2006/02/03(金) 18:13:03
>>465
テンプレ嫁

469467 :2006/02/03(金) 18:19:42
すみません、頑張って自己解決してみます。

470名無しさん@そうだ選挙にいこう :2006/02/03(金) 19:07:55
>>467
テンプレにも書いてあるけど、関数では入力セルに結果を返せないから
入力セルに結果を返したければVBA必須。
9.45形式での入力で良ければ>>10という方法もあるけど。


471名無しさん@そうだ選挙にいこう :2006/02/03(金) 19:10:01
>>467
VBA使わないと無理な気がする


472名無しさん@そうだ選挙にいこう :2006/02/03(金) 19:32:05
>>469
がんばる前に聞くのはやめろよ・・・
最低な人ですね・・・

473名無しさん@そうだ選挙にいこう :2006/02/03(金) 20:05:28
正論ぶって嬉しそうに悪口書き込む奴よりはマシだけどな

474名無しさん@そうだ選挙にいこう :2006/02/03(金) 20:22:20
467 名前:名無しさん@そうだ選挙にいこう[sage] 投稿日:2006/02/03(金) 18:08:09
469 名前:467[sage] 投稿日:2006/02/03(金) 18:19:42

11分w

475名無しさん@そうだ選挙にいこう :2006/02/03(金) 20:23:45
467がどう受け止めるかによって
これからの人生が決まるな
473のような人はもう終わってるけどさ^^;

476名無しさん@そうだ選挙にいこう :2006/02/03(金) 20:33:32
>>475
>>472もな。


477名無しさん@そうだ選挙にいこう :2006/02/03(金) 21:07:15
言い方はもっとあったよな


478名無しさん@そうだ選挙にいこう :2006/02/03(金) 21:14:08
>>469
自己解決したら解決法をこのスレにもよろ


479名無しさん@そうだ選挙にいこう :2006/02/03(金) 21:19:32
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 A4サイズ 書式 プリンター

 Excel2003をノートパソコンで使用しているのですが、
 プリンターの設定をしないで、ページ設定をする方法ってありますか?
 A4サイズで予めグラフなどを作成したいのですが、印刷範囲内がプリンター
設定しないと使えないようで、わかりません(点線が出ません…)
 初めからA4サイズの範囲が解る方法ってありますか?
 それとも、やはりプリンター設定しないと駄目でしょうか?

 どうぞよろしくお願い致します。

480名無しさん@そうだ選挙にいこう :2006/02/03(金) 21:24:54
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

WindowsでVBA作ったプログラムはそのまま
Macで走るか知りたいです


481名無しさん@そうだ選挙にいこう :2006/02/03(金) 21:25:36
とりあえずダミーで適当なプリンタ設定しとけば?

482479 :2006/02/03(金) 21:34:51
>481さん
479です。
おおっ!!
出来ました(笑)
ありがとうございました〜!!!
とりあえずは、ダミーでやっておきます。
出来ないと思っていたので、随分頭を悩ませました(笑)
本当にありがとうございました///

483名無しさん@そうだ選挙にいこう :2006/02/03(金) 21:45:45
>>480
基本的には大丈夫
ただWindowsの機能に依存しているのもたまにある

484名無しさん@そうだ選挙にいこう :2006/02/03(金) 23:17:49
>>467
とりあえず見かけ上で良いなら書式設定で『00":"00』
とでもしておけば?
そこに入る値から時間や分を取り出す場合は関数使えばいいし

485名無しさん@そうだ選挙にいこう :2006/02/03(金) 23:26:31
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel20003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 セル 範囲

VBAで質問です。
 Range("A1:A6,C1:E6")
このような範囲指定で、「6」の部分を変数にして可変にしたいんですが
どうすれば良いでしょうか。
Cellsを使ってもこういう指定方法は出来ないみたいですし。


486名無しさん@そうだ選挙にいこう :2006/02/03(金) 23:30:20
>>485
Range("A1:A" & i & ":C1:E" & i )

487名無しさん@そうだ選挙にいこう :2006/02/03(金) 23:33:54
× Range("A1:A" & i & ":C1:E" & i )
○ Range("A1:A" & i & ",C1:E" & i)
だった


488485 :2006/02/03(金) 23:55:12
>>486-487

出来ました!ありがとうございます!!
こんな書き方もあるんですね〜

489名無しさん@そうだ選挙にいこう :2006/02/04(土) 00:13:00
お恥ずかしながら聞きますが、VBAって
なんですか?

490名無しさん@そうだ選挙にいこう :2006/02/04(土) 00:15:47
Visual Basic For Application

491WinXP/Excel2003 :2006/02/04(土) 00:47:30
昇順・降順のような機能を行方向でかけることは出来ませんか?

一旦、列方向でかけといて、行と列を入れ替えるでいけそうだと思うのですが。

便利な方法をご存じのかた、伝授下さい。 

492名無しさん@そうだ選挙にいこう :2006/02/04(土) 00:52:53
>>491
[並べ替え]-[オプション]-[列単位]

493名無しさん@そうだ選挙にいこう :2006/02/04(土) 00:54:57
>>491
並び替えのオプション→方向→列単位ではだめ?

494名無しさん@そうだ選挙にいこう :2006/02/04(土) 00:55:27
ツールバーが消えてしまいました。
どうしたらいいのでしょうか?

495名無しさん@そうだ選挙にいこう :2006/02/04(土) 00:57:45
>>494
メニューバーの[表示]→[ツールバー]

496名無しさん@そうだ選挙にいこう :2006/02/04(土) 00:59:35
それがでないんですよ


497名無しさん@そうだ選挙にいこう :2006/02/04(土) 01:20:17
>>496
情報の後出しは禁止事項の一つだよ。
ttp://support.microsoft.com/default.aspx?scid=kb;ja;825052

498名無しさん@そうだ選挙にいこう :2006/02/04(土) 02:41:29
>>496
右端に寄ってるだけとか。


499名無しさん@そうだ選挙にいこう :2006/02/04(土) 04:03:47
>>496
まずはテンプレ嫁

500467 :2006/02/04(土) 08:07:51
皆さんご迷惑をお掛けしました。

>>470
入力したセルに返せないのはなんとなく分かってました。
で、循環関数がどうとか、計算回数がどうとかって
あたりで、なんとかなるかなって思いました。
なんとかなりませんでしたけど。

>>471
そうですね、VBAというのを勉強します。

>>472
おっしゃるとおりです。以後気をつけます。

>>474
その11分の間に何とかなりそうな気がしたのですが
やっぱり無理でした。

>>478
まだ、自己解決していません。

>>484
そうですね、一旦見かけだけ00:00にしておいて
時間から時間を引いたりするときには、どれかの
関数で取り出せばいいわけですね。
ありがとうございます。



501WinXP/Excel2003 :2006/02/04(土) 11:44:31
>>492-493 出来ました。ありがとうございました!!

502名無しさん@そうだ選挙にいこう :2006/02/04(土) 12:35:00
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 並べ替え セル 結合

皆さん教えてください。
例えばこんなデータがあったとします。

名前    | 商品コード | 項目  | 1/1 | 1/2 | 1/3 | 1/4 |
-----------------------------------------------------
ああああ | 00000021 | 入荷  |  10 |  20 |  10 |  15 |
       |        | 在庫  |  10 |  21 |  17 |  21 |
       |        | 出荷  |   9 |  14 |  11 |  13 |
       |        | 残り   |   1 |   7 |   6 |   8 |
-----------------------------------------------------
いいいい | 00000011 | 入荷  |  15 |  15 |  10 |  15 |
       |        | 在庫  |  15 |  20 |  17 |  17 |
       |        | 出荷  |  10 |  13 |  15 |  17 |
       |        | 残り   |   5 |   7 |   2 |   0 |
-----------------------------------------------------

名前と商品コードは縦方向に結合してあります。
他の項目は単一セルです。
この場合、名前や商品コードでソートするということはやはり出来ないのでしょうか。
また、出来ない場合、このような表でかつソートを行える構成を教えていただけませんでしょうか。
宜しくお願いします。


503名無しさん@そうだ選挙にいこう :2006/02/04(土) 13:13:31
@セルを結合しないで、4セルに同じ値を入れておく(内3つは表示形式などで非表示に)

A「名前・商品コード」と「日付」を入れ替える(列ソート可能)

    |      | ああああ | いいいい |
日付 | 項目 | 00000021 | 00000011 |
-----------------------------------
1/1 | 入荷 |
    | 在庫 |
    | 出荷 |
    | 残り  |
-------------
1/2 | 入荷 |


504名無しさん@そうだ選挙にいこう :2006/02/04(土) 13:14:28
別の場所に名前をソートしたデータを作って残りはMATCH,INDEXで参照

505名無しさん@そうだ選挙にいこう :2006/02/04(土) 13:15:31
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 あまり使えない
【4 VBAでの回答の可否】 可

デスクトップに「mona.bat」というバッチファイルを置いています。
エクセルにコマンドボタンを配置して、このバッチを実行させたいのですが
どんなマクロを組んだらよいかわかりません。教えてくださいお願いします。

506名無しさん@そうだ選挙にいこう :2006/02/04(土) 13:28:09
>>502

ああああ|00000021|1/1|[入荷数]|[在庫数]|[出荷数]|[残り]
ああああ|00000021|1/2|[入荷数]|[在庫数]|[出荷数]|[残り]

みたいな形式で管理した方がいいと思うよ
>>502みたいな形式で表示したいときはピボットテーブルレポートを使う

507名無しさん@そうだ選挙にいこう :2006/02/04(土) 14:18:17
>>505
Shell "バッチファイルパス"

508名無しさん@そうだ選挙にいこう :2006/02/04(土) 15:18:03
>>507

無事動きました
ありがとうございました

509名無しさん@そうだ選挙にいこう :2006/02/04(土) 17:02:01
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 あまり使えない
【4 VBAでの回答の可否】 可

c:\テキスト 内に数個のファイルがあります。
エクセルにコマンドボタンを配置して
クリックしたらフォルダ内の全てのファイルが削除できる
ようにしたいのですが、どうしたらよいですか?
(フォルダは残しておきたいです)
マクロでできるのでしょうか?教えてくださいお願いします。

510名無しさん@そうだ選挙にいこう :2006/02/04(土) 17:21:00
>>509
FileSystemObject使って、いったんフォルダごと消して同じ名前で
作り直すのが楽かなあ?

With CreateObject("Scripting.FileSystemObject")
 .DeleteFolder "C:\テキスト", True
 .CreateFolder "C:\テキスト"
End With


511名無しさん@そうだ選挙にいこう :2006/02/04(土) 17:28:07
【1 OSの種類         .】 WindowsXP SP2
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 グラフ チャート
エクセルを用いて株のチャートを作っています.
09/16467472460468
09/20464466458460
のようにすると,市場が休みの日(17,18,19日)もグラフの横軸に入ってしまい,
その分隙間があいてしまいます.
データにない日付をグラフに含めないようにするにはどうすればよいか教えて下さい.

512511 :2006/02/04(土) 17:29:17
09/16467472460468
09/20464466458460

09/16, 467, 472, 460, 468
09/20, 464, 466, 458, 460
です.

513名無しさん@そうだ選挙にいこう :2006/02/04(土) 18:14:42
マウスをクリックしてください

514名無しさん@そうだ選挙にいこう :2006/02/04(土) 18:26:09
【1 OSの種類       .】 WindowsXPか98
【2 Excelのバージョン 】 win98以降
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

受注された商品(管理番号のようなもの10桁で表示されます)毎に何個受注
されたかを加算して表示したいのです。例えば今日1234567890という商品を
10個在庫として作り、その時点で1/10としてカウントし、翌日以降その
商品が受注されたなら2/10としてカウントする、という事をしたいのです。
このようなケースはどのようにすれば良いでしょうか?

515名無しさん@そうだ選挙にいこう :2006/02/04(土) 18:48:17
>>514
具体的に

516名無しさん@そうだ選挙にいこう :2006/02/04(土) 19:01:19
>商品を 10個在庫として作り、その時点で1/10としてカウントし、
>翌日以降その 商品が受注されたなら2/10としてカウントする

カウントの仕方のルールが理解できませんよ

517名無しさん@そうだ選挙にいこう :2006/02/04(土) 19:07:48
>>511
[グラフのオプション]-[軸]→[項目]を選択

>>514
まずやりたいことをもうちっと具体化したほうがいいと思うよ
どういう形式の表にしたいかとか

518名無しさん@そうだ選挙にいこう :2006/02/04(土) 19:13:55
【1 OSの種類       .】 WindowsXPか98
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

     A
1 アメリカ合衆国
2 イギリス
3 ウクライナ
4 エジプト
5 オマーン
:   :

というデータがあり、これらの"読み"をセルBに書き出したい。
つまり

     A          B
1 アメリカ合衆国 あめりかがっしゅうこく
2 イギリス     .いぎりす
3 ウクライナ    うくらいな
4 エジプト     .えじぷと
5 オマーン     おまーん
:   :         :

こんな感じになるようにしたい。
なお殆どがカタカナなので、漢字の誤変換は手直しできる程度の量である。

519名無しさん@そうだ選挙にいこう :2006/02/04(土) 19:15:06
う、何か変な日本語だな。
なので → で

520514 :2006/02/04(土) 19:15:13
>>515-517
すみません、後ほど具体的にサンプル的な表を作ウプします。

521名無しさん@そうだ選挙にいこう :2006/02/04(土) 19:18:09
>>518
StrConv関数で「カナ→かな」変換出来る
漢字の読みはGetPhoneticメソッド

522名無しさん@そうだ選挙にいこう :2006/02/04(土) 19:18:24
>>518
PHONETICというワークシート関数がある

523名無しさん@そうだ選挙にいこう :2006/02/04(土) 19:19:20
>>518
A列への入力はどうやってしましたか?
Excelのそのファイル上でキーボードから入力してますか?
それなら、 B1 =PHONETIC(A1) です。

どこかから、コピーなどした場合は、PHONETIC関数では無理です。

524名無しさん@そうだ選挙にいこう :2006/02/04(土) 19:23:01
PHONETICは入力方法に左右されるけど
GetPhoneticはコピペだろうとなんだろうと変換出来る

525518 :2006/02/04(土) 19:28:57
>>521-524
高圧的な文なのにも関わらず丁寧に答えていただきありがとうございます。
早速試してみたいと思います。

526名無しさん@そうだ選挙にいこう :2006/02/04(土) 21:15:49
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 少々
【4 VBAでの回答の可否】 可

例えば下の様なデータを
    A    B
1 2006/1/1  10
2 2006/1/20  20
3 2006/1/31  10
4 2006/2/2  10
5 2006/2/9  15
6 2006/3/10  10
7 2006/3/20  20
    ↓
    A    B
1  2006/1/1  10
2  2006/1/20  20
3  2006/1/31  10
4  2006/1 計  40
5  2006/2/2  10
6  2006/2/9  15
7  2006/2 計  25
8  2006/3/10  10
9  2006/3/20  20
10 2006/3 計  30

上のように月ごとの集計を出せるようにしたいのですが、どのようにしたらよいでしょうか?
よろしくお願いします。

527名無しさん@そうだ選挙にいこう :2006/02/04(土) 21:24:26
>>526
月と日を別の列にしてピボットテーブル

528名無しさん@そうだ選挙にいこう :2006/02/04(土) 21:31:55
>>526
>>527
年をまたぐとしたら、YEAR()+MONTH()ごとに集計


529名無しさん@そうだ選挙にいこう :2006/02/04(土) 21:38:34
>>510

できました!
なるほど、フォルダごと消してまた作り直すという手もあるんですね
ファイルを消す事しか考えていませんでした・・・(^_^;)

ありがとうございました。

530526 :2006/02/04(土) 23:00:55
>>527-528
すばやい回答ありがとうございます。
お手数ですが、操作またはプログラムの全体の流れなどを、もう少し詳しく
お願いできますでしょうか?

ちなみに説明のような表は、自分で作るのではなく、仕事上の相手から送られるもので、
データもかなり膨大な量なので、可能な限り操作の手間を少なくしたいのですが。
馬鹿な頭でご迷惑おかけします。

531名無しさん@そうだ選挙にいこう :2006/02/04(土) 23:13:16
>>530
1. "年""月""日"(あるいは"年+月""日")の列を作る。
  ワークシート関数のYEAR(),MONTH(),DAY()を使うと簡単にできる。
2. [データ]-[ピボットテーブルと...]でウィザード起動
  ウィザードの指示に従ってピボットテーブル作成。

あとは自分で適当に試行錯誤するなりヘルプ読むなりすべし
全部、Excelの基本機能みたいなもんだぞ

532名無しさん@そうだ選挙にいこう :2006/02/04(土) 23:49:05
集計
http://www11.plala.or.jp/koma_Excel/contents3/mame3025/mame302501.html
日付の左のフィールドに、次の式を入れる
=YEAR(B2)&"/"&MONTH(B2)
「2006/2」と、年月が入るから、これ毎に集計

ピボットテーブル
http://hp.vector.co.jp/authors/VA014071/tips/xl_pvt1.html


533名無しさん@そうだ選挙にいこう :2006/02/05(日) 01:42:21
同一ファイルを共有して使用中が前提条件で、住所録などを編纂中に
そのファイルをA,B,Cのユーザーが同時に編集して、各自が好きなタイミングでほぼ同時間に
保存を掛けた場合、そのファイルにはどのような状況で記録されるのでしょう?

例えば1列に対して名前、住所、電話番号、FAX番号、そのほかがあった場合、
Aが名前を打ち込んだ時点で保存、
Bが名前と住所、
Cが名前、電話番号のみの場合

共有されているファイルのセルがずれたりしますか?

534511 :2006/02/05(日) 01:42:39
>>517
無事,期待通りに出力できました.ありがとうございます!

535名無しさん@そうだ選挙にいこう :2006/02/05(日) 02:39:21
>>533
>ほぼ同時間に
人間にとっては「同時」でも、CPUから見れば相当の時間差ではないかな?
書き込みキャッシュのラグを含めて、1番最初に受けた書き込み命令が
優先して実行されると考えられる。
2番目以降は、エラーで弾かれるか、そのまま更新として書き込まれるかどちらか
だと思うが。

536社長さん :2006/02/05(日) 04:40:49
 小さな会社の社長です。
 3人の社員が外で金を儲けてきます。一人一人にEXCELで、自分の経理をつけさせます。
 3人の社員が作った、3つのファイルを集めた後、プログラムを使って一つの大きな経理書(EXCEL)にまとめたいのです。
 
 あと社員に経理をつけさせるときも、入力が簡単に済むように、直接EXCELに入力するのではなく、
プログラムからEXCELに入力させるようにしたいのです。

 こうゆうプログラムって、どうやったら作れますか?どこかで学べますか?
 こうゆうのはやはりVBAなどが必要になりますか?

 このような簡単なソフトが作れるようになったら後々の仕事にも役に立つので、
どうかお知恵を貸していただければと思います。
 

537名無しさん@そうだ選挙にいこう :2006/02/05(日) 04:56:16
なぜ会社が小さいかがよくわかる質問の仕方だな。
法の改正で誰でも社長という地位に付くのは簡単になったが
まともな人間じゃないとそりゃ会社大きくは出来ないわな。

538名無しさん@そうだ選挙にいこう :2006/02/05(日) 04:59:40
>>536
本でも買えばいいんじゃね?

539名無しさん@そうだ選挙にいこう :2006/02/05(日) 05:17:04
>>536
弥生販売 05 プロフェッショナル
http://www.yayoi-kk.co.jp/products/dealing/05pro/index.html
- 売上管理資料/Excel書き出し -


> 同製品の追加購入によりLAN環境で、最大PC5台までデータ共有が可能です。

弥生販売 05 プロフェッショナル 5ユーザー
メーカー希望小売価格 262,500円 (本体価格250,000円)

弥生販売 05 プロフェッショナル バリューパック
メーカー希望小売価格 94,500円 (本体価格90,000円)


540社長さん :2006/02/05(日) 06:08:12
あれあれ、言われてしまいましたか。確かに、ちょっとけちだったかもしれませんね。
539さん、アドバイスありがとうございました。
会社が大きくなったらまた挨拶に伺いますよ。ではでは。

541名無しさん@そうだ選挙にいこう :2006/02/05(日) 08:34:36
>>533
全部の履歴が書き込まれて、保存するときに最終的にどれを反映するかを
確認させられるようになるよ。
ブックの共有の設定でいろいろ変えられるけど、個人的には、すごいスピードで
ファイルサイズ大きくなるし確認面倒だし、ずっと使い続けたくは無い機能かな。

542名無しさん@そうだ選挙にいこう :2006/02/05(日) 08:48:59
すいません。質問があるのですがよろしいでしょうか?

並べ替えを行いたいのですが、
990円
980円
800円
8,800円
8,300円
700円

みたいになってしまいます。
どなたか解決策をお教えくださいませ

543名無しさん@そうだ選挙にいこう :2006/02/05(日) 08:52:59
>>542
どうしたいのかがわからない
テンプレ読んで鯉

544542 :2006/02/05(日) 09:03:33
テンプレはVBAとかで全くわかりません(つд・)
普通に値段が高いほうから並べ替えを行いたいのですが、
一番上の桁の数値が高い順になってしまいます・・・
円 をつけなければ問題なく並べ替えられるのですがどうしてもつけたいので・・・

★Word/Excel (MS-OFFICE) 初心者スレッド Part26★
http://pc7.2ch.net/test/read.cgi/pcqa/1138247967/
の初心者スレッドで聞いてみますね

545名無しさん@そうだ選挙にいこう :2006/02/05(日) 09:05:44
VBAでselectとactivateでは何が違うのでしょうか。
VBAのヘルプを見ても、
「〜をアクティブにします」
「〜を選択します」
という解説でよくわかりません。

546名無しさん@そうだ選挙にいこう :2006/02/05(日) 09:15:39
>>544
「円」も入力してしまっているの?
数値として扱いたいなら書式の『#,##0"円"』でいいんじゃね?

547名無しさん@そうだ選挙にいこう :2006/02/05(日) 09:36:23
>>546
SelectとActivateの違いが解らないと言うより
選択範囲をアクティブセルの違いがわかってないだけだな。
アクティブセルってのは入力対象となる単一のセルで、
選択範囲ってのは文字通り反転選択されたセル範囲のこと

例えばマウスドラッグでA1→C3と選択すると
@ アクティブセルはA1、選択範囲はA1:C3
この状態でEnterキーを1回押せば、選択範囲の中の白セルが下に移動し
A アクティブセルはA2、選択範囲はA1:C3
となる。この白セルがアクティブセルで、影が掛かってる範囲が選択範囲

で、Select使うと基本的に左上がアクティブになるので、コードでAの状態にしたければ
Range("A1:C3").Select
Range("A2").Activate
とする
但しActivateはそのセルが選択範囲内に無ければセルを選択する処理を行うし
先にも書いたようにSelectは範囲の左上をアクティブにする処理を行うので
単一セルではどちらも変わらない

548名無しさん@そうだ選挙にいこう :2006/02/05(日) 09:47:14
>>546
超初心者なのでよくわかりません・・・
書式の『#,##0"円"』って何なのでしょうか?

549名無しさん@そうだ選挙にいこう :2006/02/05(日) 10:03:00
>>548はマルチなので以後放置で。

550名無しさん@そうだ選挙にいこう :2006/02/05(日) 10:07:08
>>549
そうだったのか(汗
危うく書き込むところだったw

>>548
ちっとはググれ
初心者付けてりゃ丁寧に教えてもらえるってものではない
むしろ放置されるぞ

551名無しさん@そうだ選挙にいこう :2006/02/05(日) 10:27:34
マルチというか

>>544にあるように
★Word/Excel (MS-OFFICE) 初心者スレッド Part26★
http://pc7.2ch.net/test/read.cgi/pcqa/1138247967/
のスレを見つけて、初心者スレッドの方が適切かなと思いあちらに
書き込みました。

でも>>546さんから回答があったのでこちらにまた書き込みました。

もう書き込みません。すいませんでした。

552526 :2006/02/05(日) 10:48:16
>>531-532
丁寧な回答ありがとうござました。
早速試してみます。
エクセルの基本を勉強し直さないといけないですね。


553名無しさん@そうだ選挙にいこう :2006/02/05(日) 12:19:19
あるセルに =11*12 と入力し、その下のセルに =11*13 と
入力し、その2つをカーソルで囲んで右下のハンドルを
下にぐぐっと引っ張っていっても11*14、11*15 と続いて
いってくれず、2つの数字が繰り返されます。どうすれば
よいのでしょうか?(セル参照なら$マークで対処できる
気はするのですが…)

554名無しさん@そうだ選挙にいこう :2006/02/05(日) 12:27:09
>>553
12以降増えていく分はROW関数を利用

555名無しさん@そうだ選挙にいこう :2006/02/05(日) 12:31:02
>>554
ありがとうございます。できました!

556名無しさん@そうだ選挙にいこう :2006/02/05(日) 14:50:26
質問です。
ある範囲内でAという文字なら文字が何回出てきたか、という合計を特定のセル
に表示したいのですが、可能でしょうか?

557名無しさん@そうだ選挙にいこう :2006/02/05(日) 15:01:05
Countif関数

ところで、Aという文字がセル中の文字列に含まれるケースじゃないよね。

558名無しさん@そうだ選挙にいこう :2006/02/05(日) 15:03:36
>>556
A1:D5の範囲だったら配列数式で
{=SUM(LEN(A1:D5)-LEN(SUBSTITUTE(A1:D5,"A","")))}

559名無しさん@そうだ選挙にいこう :2006/02/05(日) 16:54:39
VBAで
ActiveSheet.Shapes.AddShape Type:=msoShapeHexagon, Left:=x, Top:=y, Width:=7, Height:=5
と六角形のオートシェイプを沢山書くとき
for 〜 nextで変数x、yに数値を指定回数分読み込むにはどうしたらいいですか


560名無しさん@そうだ選挙にいこう :2006/02/05(日) 18:10:43
セルの数式を表示させるにはどうする?

561名無しさん@そうだ選挙にいこう :2006/02/05(日) 18:22:40
>>560
Shift+Ctrl+@
もしくは
ツール(T)→オプション(O)→表示タブの数式(R)にチェック

562名無しさん@そうだ選挙にいこう :2006/02/05(日) 18:58:39
>>561
ありがと!!
特定の範囲だけ数式表示させたいんだけど、この場合はどうすればいい?

563502 :2006/02/05(日) 19:35:53
>>503
>@セルを結合しないで、4セルに同じ値を入れておく
いちばん簡単なこれを使おうと思います。

>A「名前・商品コード」と「日付」を入れ替える
少し違う形ですが自分も同じように考えました。
ですが、日毎の出荷数を追いかけたりする場合に
見づらくなってしまうのが難点でしょうか。

>>504,506
出来れば表示とデータを統合したいので別の方法を試したいと思います。
ですが、>>506さんのようなデータの管理の仕方で
>>504さんのように表示を別で行うようにすれば、
データの汎用性は高いと思われますので、今後の参考にさせていただきます。

ありがとうございました。

564名無しさん@そうだ選挙にいこう :2006/02/05(日) 19:38:39
趣味を兼ねてVBAを独学でチマチマと弄ってる者です。
現在自作のユーザーフォームを作ろうと四苦八苦してます。

□A □B □C □D

上記のようにチェックボックスを用意した場合、複数にチェックを入れた時に
VBA上でどのように判定すればいいでしょうか?
素人知恵では、二進数を使って

未入力=0 A=1 B=2 C=4 D=7 とすればいいような気がするのですが、
入力先のシートに非表示の行でも用意して、そのセルの合計値(0〜7まで)を
一つずつIf文でチェックするしかないのでしょうか?
何かスマートな手法などがありましたら、ご教示願います。


【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 ほんのちょっとだけ
【4 VBAでの回答の可否】 可

565名無しさん@そうだ選挙にいこう :2006/02/05(日) 20:14:05
>>564
何をしたいのかよくわからんけど、チェックボックスの状態を知りたいだけなら
If CheckBox1.Value Then
  処理
End If
でいいんじゃないの?

あと何か二進数使いたいんならD=7じゃなくて8で合計は0〜15だね


566名無しさん@そうだ選挙にいこう :2006/02/05(日) 20:25:00
>>562
一つのシートの特定範囲だけってのはできないんじゃないかなあ。
別シートで数式表示させたものをカメラ機能とかで貼り付けるか
http://www.relief.jp/itnote/archives/001221.php
のユーザー定義関数使って別セルに表示させるか。
あまり詳しくないので識者のレスを待つ。

567名無しさん@そうだ選挙にいこう :2006/02/05(日) 20:32:30
>>565
複数の条件判断のしかたを聞いてるんじゃないの?
俺はIf文をネストするか、0〜7までで分岐させるくらいしか思いつかんから返答できんがな

568名無しさん@そうだ選挙にいこう :2006/02/05(日) 20:36:21
ユーザーホームでボタンにマウスが乗ったときにカーソルを変更したいのですが、
ウィンドウ標準のリンク時のカーソル画像ってどこにありますか?
カーソルフォルダを探しても見当たりませんでした。
エクセルとは関係ないような質問で初歩的ですみません。期日が迫ってて焦ってます。
XP/2002を使用しています。よろしくお願いします。

569名無しさん@そうだ選挙にいこう :2006/02/05(日) 20:50:48
>>568
Cursor プロパティ
関連項目 対象 使用例 アプリケーション情報
Excel のマウス ポインタの形状を設定します。値の取得および設定が可能です。XlMousePointer クラスの定数を使用します。

使用できる定数は、次に示す XlMousePointer クラスのいずれかです。
xlDefault 標準のポインタ
xlIBeam I 字型ポインタ
xlNorthwestArrow 矢印型ポインタ
xlWait 砂時計型ポインタ


570名無しさん@そうだ選挙にいこう :2006/02/05(日) 21:21:07
Excel2003です。
セルの幅を短くして、そこに文字を入力すると#と表示されます。
会社のエクセルではそのセルからはみ出して表示するのです。
(というか、そういう仕様だとおもっていたが。。)

どうやったらちゃんと表示されるのでしょうか?

571名無しさん@そうだ選挙にいこう :2006/02/05(日) 21:29:41
>>570
文字は隣が空セルなら、はみ出して表示される。
数は ### になる

572名無しさん@そうだ選挙にいこう :2006/02/05(日) 21:47:59

質問です。

妻が妊娠中で分娩予定日、もしくは最終月経開始日から
現在(本日)の妊娠週数(例 32週5日)を算出したいんですが、
どのような関数を用いればよいのでしょうか?

573名無しさん@そうだ選挙にいこう :2006/02/05(日) 21:54:42
>>564
いずれにしろ、非表示の行を作る必要はあるまい
あとは目的に応じてIfでネストするか、Select使うか、好きなほうでいいんじゃないか
もう少しエレガントに、ということなら論理積でマスクする、とかもあるけど
具体的に何がやりたいかわからんと何とも言えない

>>568
俺も今みたけど見当たらないね
多分、link.curとかそんな名前のファイルなんだよな

574名無しさん@そうだ選挙にいこう :2006/02/05(日) 22:00:45
>>572
とりあえずヘルプで日付・時間関係の関数の説明でも読んでみては?
まあ、単純に NOW - [予定日] の小数点以下(時分秒)を切り捨てて
あとは7で割ったり、余りを求めたりすればおkかと

575名無しさん@そうだ選挙にいこう :2006/02/05(日) 22:24:48
>>547は妊娠週の数え方を分かっていないと思われ



576572 :2006/02/05(日) 22:30:05
>>574
レスありがと
週数は =(TODAY()-最終月経日)/7 で小数点以下切捨てで出ますが
何日の出し方がわからないです。
どなたか御教示を・・

577名無しさん@そうだ選挙にいこう :2006/02/05(日) 22:34:07
MOD()

578572 :2006/02/05(日) 22:42:33
>>577
ありがとうございます。
無事算出できました。

579名無しさん@そうだ選挙にいこう :2006/02/05(日) 22:48:06
>>547のどこを読んで「妊娠週の数え方を分かっていない」という結論に至ったのかを簡潔に説明してくれw

580名無しさん@そうだ選挙にいこう :2006/02/05(日) 23:44:57
俺にわからないことはお前にも分からないはずだ論理

581564 :2006/02/05(日) 23:58:43
>>573
後出しですいません。
ユーザーフォームでチェックボックスにチェックを入れた際、
シート側の入力データ(どの項目にチェックが入っているか)をフォーム側に
返して表示するようにしたいのですが、その場合はどこかしらに対応した行が要りますよね?

前例ですと、AとCにチェックがある場合にはA+C=5なので、5という数字が入力された
セルが必要になると思うのですが、他にも方法はあるでしょうか?

582名無しさん@そうだ選挙にいこう :2006/02/06(月) 00:38:03
>>581
意味が分からん
ユーザーフォーム上のチェックボックスにチェックをいれて
その状態をフォーム上で表示したいんだったら
単純にCheckBoxのValueがTrueかFalseか見ればいいだけだろう

なんでわざわざシートに数字書き込まなきゃいけないんだ?

583名無しさん@そうだ選挙にいこう :2006/02/06(月) 00:50:12
シートに書き込んで、エクセルで状態を判断したければ、書き込めば?マクロで判断するならシートに書き込む必要ないよ。

レスさんくす。
リンクのカーソルファイルどこ探してもなかったです。
なんかに埋め込まれてるんだろな。
そこで、もう一度お願いします。
ブック内に、アイコンファイルを埋め込んだり、シート上に画像を貼りつけて、アイコンファイルとして保存することは出来ますか?ブックだけを配布しただけで、同様のカーソルを表示したいのですが。

584名無しさん@そうだ選挙にいこう :2006/02/06(月) 01:10:47
>>583
この辺が役に立つかも

ttp://www.nurs.or.jp/~ppoy/access/access/acF026.html

585名無しさん@そうだ選挙にいこう :2006/02/06(月) 02:01:05
セルのなかの文字列をぶら下げたいです。
たとえば、

今日の晩御飯なんだろうな。じゃ
 がいもだったらいいのにな。
でも、サラダフライはいやだなぁ。本
 当に困る。

のように自動でしてくれるとうれしいのですが。
セルの書式設定のインデントをすると
 今日の晩御飯なんだろうな。じゃ
 がいもだったらいいのにな。
となってしまいます。

【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel XP
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル ぶら下げインデント

586名無しさん@そうだ選挙にいこう :2006/02/06(月) 07:09:47
>>585
たぶん無理。
使い古された一言だけど「Excelはワープロではない」

587名無しさん@そうだ選挙にいこう :2006/02/06(月) 07:35:54

ワープロ代わりにExcel使うなハゲ!
http://pc5.2ch.net/bsoft/kako/1025/10255/1025524380.html


588名無しさん@そうだ選挙にいこう :2006/02/06(月) 10:29:33
Excelでなきゃいけない事情があるのでは?
>>559
はセルに数値を記入して読み込ませる方法もあるけど
数値をプロシージャに記入したいのかな

589名無しさん@そうだ選挙にいこう :2006/02/06(月) 11:26:02
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel office
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

A1〜A3までを結合して1と入力し、A4で間を空けて
A5〜A8までを結合して2と入力し、A9で間を空けて
A10〜A11までを結合して3と入力し、A12で間を空けて・・・、という風に
A列を作っています。
A列の結合しているセルの数値が奇数の行全体に
(この例で言えば1〜3行、10〜11行全体に)
パターンで網掛けをしたいのですが・・・。
結合しているセルが増えたり減ったりや、2と3の間にセルを挿入して
新しく3を作り、元の3を4に変えたりすると網掛けがずれて・・・
MOD関数など使ってみたのですがうまくいきませんでした。

何か良い方法はございませんでしょうか?
どなたかお願いいたします。



590名無しさん@そうだ選挙にいこう :2006/02/06(月) 11:44:49
>>586-588
質問者にはそれなりの事情があるんだろうし
方法論はこのスレでやることじゃないでしょ

591名無しさん@そうだ選挙にいこう :2006/02/06(月) 11:46:46
TTESTのことで質問です。
普通に(date1,date2,2,2)で検定したのですが、
ある特定部分のデータを範囲に指定すると、
数字でなくEを含む数式?が出てきてしまいます。
9.8605E-0.6のような
別のシートに再び入力しても何度やっても
同じです。
Eは何を意味しているのでしょうか?
どなたか教えてください。


592名無しさん@そうだ選挙にいこう :2006/02/06(月) 11:49:54
それ数字

593名無しさん@そうだ選挙にいこう :2006/02/06(月) 11:53:54
>>591
*10^

594名無しさん@そうだ選挙にいこう :2006/02/06(月) 11:54:30
解決しました!
めちゃ小さいってことですよね!
桁数設定し直したら
数字になりました☆

595名無しさん@そうだ選挙にいこう :2006/02/06(月) 14:49:43
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel office
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

Excelの別のファイルから数式の貼り付けをするにはどうしたらよいでしょうか?


596名無しさん@そうだ選挙にいこう :2006/02/06(月) 16:01:19
>>595
>★2 要望は具体例や図を使って明確かつ具体的に。
数式のままなのか、文字列でもいいのか、計算結果を出すのかなど

597559 :2006/02/06(月) 16:17:36
>>588
数値の入力はセルに書きたくないです
プロシージャ内にxとyの数値だけdataとして記入し
for nextで順番に読み込みたいのです

598名無しさん@そうだ選挙にいこう :2006/02/06(月) 16:34:04
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 列幅 実寸 行の高さ テキストボックスetc...

【大まかな要望】
初めから表が印刷されている用紙に
エクセル上で罫線等を抜いた文字列等を入力し
手差しで印刷すれば、入力した文字が上手く印刷されるようにしたいです。

【試した事】
1、エクセルに正方形の細かい罫線を引いてフォーム用紙に印刷したが
  印刷される用紙のフォームが複雑な為、セル事態に入力するより
  テキストボックスを貼り付け、位置を微調整する事にした。
2、5.6個程度のテキストボックスを作成し、ある程度調整した後印刷すると
  その場ではうまくいった。
3、プレビューを閉じた後もう一度画面を見ると、テキストボックスが画面左端に集まっていた。
4、エクセルのアイコンの「フォーム」の「ラベル」を使えば、印刷後も自動で動かない事はわかったが、
  「ラベル」は入力フォームとリンクできなかった。

【質問】
1、フォームを自動的に移動しないようにするにはどうすればいいのですか?
2、もし1が無理な場合はラベルを使おうと思うのですが
  「フォーム」の「ラベル」の文字列をマクロや関数を使って任意に変える事はできますか?

現在、テキストボックスは
Worksheets("印刷シート").txtMikaHonbanprice.Value = Worksheets("入力フォーム").Range("A" & StartR + 1).Value
こういった感じでリンクするようにしています。

599名無しさん@そうだ選挙にいこう :2006/02/06(月) 16:49:18
>>597
配列に図形の情報入れておいて、それをfor eachで読み込む感じ?

list = Array(Array(msoShapeIsoscelesTriangle, 181, 114, 40, 45), _
        Array(msoShapeIsoscelesTriangle, 242, 114, 40, 45), _
        Array(msoShapeOval, 167, 136, 133, 96), _
        Array(msoShapeRectangle, 195, 161, 7, 29), _
        Array(msoShapeRectangle, 262, 161, 6, 31), _
        Array(msoShapeRightTriangle, 217, 190, 35, 20))

For Each p In list
 ActiveSheet.Shapes.AddShape p(0), p(1), p(2), p(3), p(4)
Next


600名無しさん@そうだ選挙にいこう :2006/02/06(月) 16:59:56
>>598
Label.Caption

601598 :2006/02/06(月) 17:09:24
>>400
コントロールツールボックスの「ラベル」は各プロパティが設定できるので
マクロでリンクできますが、プレビューの後に位置が移動します。
(Left671.25が171に移動したり)

対してフォームの「ラベル」はプレビュー後も自動で移動しませんが
プロパティが無いので、そのラベルのコードもわかりません

602名無しさん@そうだ選挙にいこう :2006/02/06(月) 17:19:49
>>601
あれは図形扱いだからこんな感じだよ。
ActiveSheet.Shapes("ラベル 1").TextFrame.Characters.Text = "テキスト"

603名無しさん@そうだ選挙にいこう :2006/02/06(月) 17:24:45
>>584 できました。本当にありがとうございました。
ちなみに、UserFormの記述です。

Private Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" _
(ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
Private Declare Function SetCursor Lib "user32" _
(ByVal hCursor As Long) As Long
Private Const IDC_HAND = 32649&
Private xx As Long
Private Sub UserForm_Initialize()
xx = LoadCursor(0&, IDC_HAND)
End Sub
Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
Call SetCursor(xx)
End Sub


604名無しさん@そうだ選挙にいこう :2006/02/06(月) 17:29:31
【1 OSの種類         .】 Windows 2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 少し
【4 VBAでの回答の可否】 可

Shell("バッチファイル")
MsgBox "終了しました"

上記のマクロを組んでいますが、バッチファイルが終了してから
”終了しました”のメッセージボックスを表示するのが早すぎる(一瞬ででてしまう)ので
2〜3秒ぐらい時間をおきたいのですが、間にどんな命令を入れたらできるでしょうか?

605597 :2006/02/06(月) 18:07:01
>>599
ありがとうございます
やりたかったのはこんなのです
こうゆう記述もあるんですね

606しろうと :2006/02/06(月) 18:09:52
エクセルで数学Cの行列のカッコを表示するにはどうしたらいいんですか

607名無しさん@そうだ選挙にいこう :2006/02/06(月) 18:11:01
>>604
Application.Wait Now + TimeValue("00:00:03")

でも終了するまでちゃんと待った方が良くないか?

608名無しさん@そうだ選挙にいこう :2006/02/06(月) 18:54:54
コンボボックスを使用する際、定義した条件に満たないものは表示しない(もしくは選択できないようにする)ことは出来ますか?

609名無しさん@そうだ選挙にいこう :2006/02/06(月) 19:25:34
>>608
>>1★1〜4、>>149

610名無しさん@そうだ選挙にいこう :2006/02/06(月) 19:36:50
すみません、よく読んでいませんでした。
入力規則によるコンボボックスです。

611名無しさん@そうだ選挙にいこう :2006/02/06(月) 19:44:25
>>610
・・・で?

612名無しさん@そうだ選挙にいこう :2006/02/06(月) 19:53:18
>>610
お前みたいな自己中心的な人って
なんで生きてるの?
他人にどれだけ迷惑かけてるか分かる?

613名無しさん@そうだ選挙にいこう :2006/02/07(火) 06:53:02
>>589

ひとつの式にもまとめられなかったけど

BCDの3列を使って、

B1は =A1、B2以降は =IF(ISBLANK(A2) = FALSE,A2,B1)でオートフィル。
C列は =IF(AND(ISBLANK(A2)=FALSE,A2=B2)=TRUE,"",B2)でオートフィル。
D列は =IF(ISNUMBER(C1) = TRUE,B1,"")でオートフィル。

あとは範囲指定して条件書式「数式が」で = MOD($D1, 2 )= 1

でいけるんじゃない。



614589 :2006/02/07(火) 07:31:12
>>613
返答ありがとうございます。
早速やってみます。
ご丁寧にありがとうございました。

615589 :2006/02/07(火) 07:43:05
>>613
早速やってみたのですが、若干不具合があるようです。
網掛けになる数行のうち最後の行のB列以降が網掛けに
なりません。
それから、情報後出しになって申し訳ありませんが、
表のB列以降にも数値や文字を入力していきたいのですが・・・
ご無理を言って申し訳ありませんが宜しくお願いいたします。

616名無しさん@そうだ選挙にいこう :2006/02/07(火) 08:00:24
>>589

一応、動作確認はしているよ。
めんどくさかったら左上の何もないところ(列と行の交差点)をクリックして
シート全体を範囲指定しまえば?
列は「挿入」でも切り取って「切り取ったセルの挿入」でもお好きなように。
注意点としては、行の挿入、切り取りのたびに式を直さなければならない事。


617名無しさん@そうだ選挙にいこう :2006/02/07(火) 08:16:09
連続カキコ、すみません。

最後の行のB列直下のセルが空白じゃないと駄目。
1行空行入れれば大丈夫だと思うけど、
無理なようだったら他の人の回答を待ってください。

618589 :2006/02/07(火) 09:18:28
>>616-617
もう一度やってみますね。
何度も教えていただきありがとうございました。

619名無しさん@そうだ選挙にいこう :2006/02/07(火) 09:38:30
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Googleやヘルプでの検索キーワード 多元配列、関数

質問1
2元動的配列の宣言文を、1元からの発想で
Dim Kcalc( , ) as double
Redim Kcalc(RNo-1,GNo-1)
とするとエラーになります。今便宜的に
Dim Kcalc() as double
Redim Kcalc(RNo-1,GNo-1)
として動いてますが、これでいいのでしょうか?


620名無しさん@そうだ選挙にいこう :2006/02/07(火) 09:39:08
>>619 続き
質問2
原数値を加工した計算値グループを2元配列Kcalcに格納しています。

独自の評価関数tensu(a(),i,Heikin,Hensa)を定義し、これは1元配列に正常に動いています。
2元配列をこの評価関数に入れたいのですが

For j=0 to GNo-1

 For i=0 to RNo-1

cells(i,j)=tensu(Kcalc(i,j),i,Heikin,Hensa)

 Next i

Next j

とすると関数がKcalcを「型が違うと認識してしまいます。
確かにそうですが、この考えでうまくやる方法はないでしょうか?
初心者としては2元配列にせず、Kcalcを沢山つくればエラーは回避できるのは
分かりますが。


621名無しさん@そうだ選挙にいこう :2006/02/07(火) 09:39:38
>>607

回答いただきありがとうございます。

複数のテキストを1つにまとめるバッチ処理をしてますので
テキスト量が多いと若干時間がかかるようなのです。
まとまっているか確認せずに次の作業にうつるとエラーが出てしまいますし、
いちいち確認するのも少し面倒なので良い方法はないかと思っておりました。


622名無しさん@そうだ選挙にいこう :2006/02/07(火) 09:59:53
>>621
たぶんwshのrunメソッドの第4引数にtrueを指定すると同期取れると思うよ。
試してみてね。

CreateObject("WScript.Shell").Run "バッチファイル", , True
MsgBox "おわりますた"


623名無しさん@そうだ選挙にいこう :2006/02/07(火) 10:00:32
あ、第3引数だった。ごめんごめん。

624589 :2006/02/07(火) 10:05:07
>>616-617
出来ました!
どうもありがとうございました!!

625名無しさん@そうだ選挙にいこう :2006/02/07(火) 10:11:14
>>619
いいよ

626名無しさん@そうだ選挙にいこう :2006/02/07(火) 10:13:14
>>619
> として動いてますが、これでいいのでしょうか?
良い

>>620
>>2・3
tensu関数の内容も省略せずに書くこと

627名無しさん@そうだ選挙にいこう :2006/02/07(火) 10:15:16
>>620
意味が良くわかんないけど、619の続きだったらkcalc(i,j)って
ただのdouble型の数値じゃないの?

628名無しさん@そうだ選挙にいこう :2006/02/07(火) 10:27:25
>>625-626
早速ありがとうございます。関数は以下です。

Function Tensu(a() As Double, h As Integer, Heikin As Double, Hensa As Double) As Integer
'配列を平均、標準偏差で3段階評価、係数はK
Const K=1.0

'まずa(h),Heikin,Hensaのどれかがエラーなら0を返す。
If (IsError(a(h)) Or IsError(Heikin) Or IsError(Hensa)) = True Then
Tensu = 0
Else
End If

'数値が確認されたら3段階評価
Select Case a(h)

Case Is >= Heikin + K * Hensa
Tensu = 3

Case Is > Heikin - K * Hensa
Tensu = 2

Case Is <= Heikin - K * Hensa
Tensu = 1

End Select
End Function


629名無しさん@そうだ選挙にいこう :2006/02/07(火) 10:39:26
>>628
a() As Double

a As Double

630名無しさん@そうだ選挙にいこう :2006/02/07(火) 11:14:28
【1 OSの種類         .】 Windows98SE
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 EXCEL VBA マウス ホイール 無効

あちこち調べてみたのですが、わからなかったので教えてください

あるファイルのみマウスのホイールを無効化したいのです
出来るのでしょうか?

631619、628 :2006/02/07(火) 11:42:27
>>629
関数を数値に対して行うようにするのですか。
そのように書き換えてみます。どうもすみません。

632名無しさん@そうだ選挙にいこう :2006/02/07(火) 11:42:29
>>630
APIでフックして、ホイールメッセージを殺してやればよい
その方法についてはExcel関係ないので>>2・7

ただ、シートをスクロールさせたくないだけなら
表示領域の全てを「ウィンドウ枠の固定」の左上の位置に割り当てることで
スクロールさせなくすることも可能
但しマウス以外でもスクロール出来なくなるけどな

633名無しさん@そうだ選挙にいこう :2006/02/07(火) 11:42:42
ほんと初心者ですみません
EXCEL2002

EXCELでまとめた物なんですが
証券コードを入力し、クリックしたさいに
ヤフーの日足のサイトに飛ぶようにしたいのです
コードの列を一括でハイパーリンクする関数はどうしたらいいのでしょう?
ひとつひとつする方法はわかるのですが
一括でやりたいのです

例えば
 8922 ┃IDU 
 4321 ┃ケネ 
 
 ↑この列
おねがいします

634名無しさん@そうだ選挙にいこう :2006/02/07(火) 11:48:35
>>633
@作業列に数式でハイパーリンク式の文字列を作りフィルコピー→値の張り付け→文字列を数式に直す
AVBAでループ回してハイパーリンク式を入れていく

>>2※を読んだ上で、お好きな方をどうぞ

635名無しさん@そうだ選挙にいこう :2006/02/07(火) 12:02:28
>>634様 サンクスです

まったくの初心者なのでもう少しおねがいします

VBA? ツール→マクロ なのでしょうか
ほんとすみません

636名無しさん@そうだ選挙にいこう :2006/02/07(火) 12:10:14
633です 初心者のほうで 伺ってきます
失礼しました

637名無しさん@そうだ選挙にいこう :2006/02/07(火) 15:14:02
>>622

おおっ、できました

ありがとうございます。

638名無しさん@そうだ選挙にいこう :2006/02/07(火) 16:19:01
DXFとかでオートシェイプを自作できないですかね?

639名無しさん@そうだ選挙にいこう :2006/02/07(火) 16:27:15
すいません、オートシェイプで四角等を書くと真っ白な四角ができてしまうようになってしまいました。
前は黒い線の四角ができていたのですがどうすれば元に戻せますか?初心者で質問の仕方もわかりづらく
申し訳ないのですが、ご回答宜しくお願いいたします。。

640d :2006/02/07(火) 16:41:17
>>639
適当な図形を好みに書式設定して「オートシェープの規定値に設定」
を実行してみてはいかがでしょうか。


641名無しさん@そうだ選挙にいこう :2006/02/07(火) 16:51:48
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 フォーム

入力フォームを作ったんですが、データを1件入力した後に、続けて次のデータを
フォームをアンロードせずに入力したい場合、複数のテキストボックスとかの
値をまとめてクリアしたいです。
なぜ、アンロードしないかと言うと日付等前のデータと同じ事が多い項目は
そのまま残したいからです。まとめてクリアしたいのはひとつひとつクリアしていくと
コーディングが冗長になって見難いし、漏れが起こりやすいので。
複数のオブジェクトの値をまとめてクリアできますか?
また出来る場合はどんな書き方になるでしょうか?
よろしくお願いします。

642d :2006/02/07(火) 16:53:06
>>640
>「オートシェープの規定値に設定」
「オートシェイプの既定値に設定」 です。


643名無しさん@そうだ選挙にいこう :2006/02/07(火) 17:04:35
携帯からPCに送ったメールを日付、件名、添付、本文を受信したら自動で別々にエクセルに書き込む事って出来ますか?


644名無しさん@そうだ選挙にいこう :2006/02/07(火) 17:26:03
>>641
For Each回せばいいじゃん


>>643
ほとんどExcel関係ないでしょ
関係あるところと言えば、Excelに書き込む部分くらいだが、そこは
セル.Value = 書き込みたい内容
で終わり
他にこのスレで教えるべき事は無い

645630 :2006/02/07(火) 17:31:01
>>632
サンクス
APIで検索してみます

646643 :2006/02/07(火) 17:49:53
本文に数字を入れてその数字を全部足したいんです。
1日に1〇通以上送るので自動で全部計算終わってると良いな…って。

647名無しさん@そうだ選挙にいこう :2006/02/07(火) 18:08:19
>>646
どうぞ、ご自由に

648名無しさん@そうだ選挙にいこう :2006/02/07(火) 18:12:41
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】空白、 固定長、可変長

固定長のデータを可変長に変えたいのですが、その際、空白をカットするには
どうしたら良いでしょうか?
例えば氏名で固定長時には10桁取ってあると、
4文字の名前の場合、4文字+空白6桁ってなるんだけど、
その空白部分をカットしたいです。
一文字ずつIFとかで判定してくってのもあるんだろうけど、
それだとめんどくさいので空白は自動的にカットしたいです。
何か良い方法あるでしょうか?

649名無しさん@そうだ選挙にいこう :2006/02/07(火) 18:15:28
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

=IF(VLOOKUP(C7,'2005年度'!A:N,4,FALSE)="","",VLOOKUP(C7,'2005年度'!A:N,4,FALSE))
=IF(VLOOKUP(C7,'2006年度'!A:N,4,FALSE)="","",VLOOKUP(C7,'2006年度'!A:N,4,FALSE))
今現在シートを二つ使って05年度、06年度を見れるようにしているのですが、一枚のシートで2つ05年度と06年度を見れるようしたいのです。


= FAQ: 条件によって表示を変更するには? =

例2:if文の中にif文
 A1が、1の場合○、2の場合△、それ以外×。
 =IF(A1=1,"○",IF(A1=2,"△","×"))

を参考に、

=IF(VLOOKUP(C7,'2005年度'!A:N,3,FALSE)="","",IF(VLOOKUP(C7,'2006年度'!A:N,3,FALSE)="","",VLOOKUP(C7,'2006年度'!A:N,3,FALSE)))
とやったのですが、うまくいきません。
数式の検証を行ってみたのですが、#N/Aが返ってきてしまいます。
訂正と検証を繰り返しているのですがうまくいきません。

助けて下さい、宜しくオネガイシマス。

650名無しさん@そうだ選挙にいこう :2006/02/07(火) 18:17:12
trim関数

651名無しさん@そうだ選挙にいこう :2006/02/07(火) 18:17:50
yearワークシート関数

652名無しさん@そうだ選挙にいこう :2006/02/07(火) 18:19:04
>>648
Trim

653名無しさん@そうだ選挙にいこう :2006/02/07(火) 18:31:04
>>650,652

ありがとうございました!
やりたい事はまさにこの関数で解決です。


654名無しさん@そうだ選挙にいこう :2006/02/07(火) 18:53:33
【1 OSの種類         .】 MacOSX
【2 Excelのバージョン   】 Excel*2004
【3 VBAが使えるか    .】 はい(初心者)
【4 VBAでの回答の可否】 可

マクロの初心者です
マクロの中で
a = Worksheets("sheet1").Cells(b, c)
このような形でセル(b,c)の内容を参照し,aの内容を
別のワークシートのセルで表示させようとしています
セル(b,c)の中には計算式が打ち込まれており,
別のセルにはその計算結果を表示させようとしたところ,
そのセルにはその計算式そのもの(たとえば「=counta(A1)」とか)が
表示されましたが,そうではなくその計算結果(たとえば「20」とか)を
表示させたい場合は,どのようにすればよろしいのでしょうか.
どなたかご教示よろしくお願いいたします.

655名無しさん@そうだ選挙にいこう :2006/02/07(火) 19:22:45
MacのExcelは使ったこと無いが、Winだと
a = Worksheets("sheet1").Cells(b, c).Text

656名無しさん@そうだ選挙にいこう :2006/02/07(火) 19:25:14
【1 OSの種類         .】 WINDOWSXP
【2 Excelのバージョン   】 Excel20004
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

参照しているシートを関数で表示できるのか??

LOOKUP関数などでどこかしら参照している場合
A   B   C   D   この数値はホニャララのシートを参照しています。
という風にしたいのです。

こんなことできますでしょうか?

657名無しさん@そうだ選挙にいこう :2006/02/07(火) 19:33:02
>>655
できた!どうもありがとうございました

658名無しさん@そうだ選挙にいこう :2006/02/07(火) 20:43:21
エクセルの習得に評判のいい学校とかってありますか?

659名無しさん@そうだ選挙にいこう :2006/02/07(火) 21:03:59
>>656

700

↑これはあるスレのレス番です、さてどのスレのレス番でしょう?
って聞かれても解るわけないでしょ
同じように値だけが返ってきてるものから、それが何処の物かは判断出来ない

VBAならセルの値ではなくセルそのものをオブジェクトとして返して
値を返したいセルにValue、シート名を返したいセルにParent.Nameを返すってことも出来るけど
ワークシート上の数式でこれと同じ事をやろうとすると結構面倒
数式を文字列解析するって手もあるけど、汎用的な物は無理だし、そもそもワークシート上の
数式が返した値が、必ずしもどこかのセルの直接参照値であるとは限らないからな

まあ参照シートなんてその式自体を書き換えなければ変化しないんだから
関数式使って返さずともベタ書きでいいじゃん


>>658
さようなら

660名無しさん@そうだ選挙にいこう :2006/02/07(火) 21:25:58
>>658
テンプレ理解できないの?

661名無しさん@そうだ選挙にいこう :2006/02/07(火) 22:57:23
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否

662名無しさん@そうだ選挙にいこう :2006/02/07(火) 23:02:25
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000

コンボボックスをワークシート上に作成して、
Rowsourceで選択領域を指定しようとしたのですが、
Rowsourceの項目が見あたりません。
ユーザーフォーム上のコンボボックスではあるのですが、
ワークシート上では、その項目は設定出来ないのでしょうか?

663名無しさん@そうだ選挙にいこう :2006/02/07(火) 23:13:51
>>662
ListFillRange

664エクセル達人になりたい :2006/02/07(火) 23:28:06
初めての書き込みです。
礼儀をわきまえていなかったら、お許しください。

さっそくですが、エクセルで、一番上だけ枠の固定をしたいので、
“1”にカーソルを置き、ウィンドウ枠の固定を設定しようとするのですが、
何回やっても、関係のないところに枠が設定されてしまいます。
しかも十字で設定されるので、全くダメです。
どうしたら、一番上の枠だけ固定できるのですか。


665名無しさん@そうだ選挙にいこう :2006/02/07(火) 23:36:08
ウィンド枠の固定は、選択していたセルの「上部ライン&右ライン」で固定されます。
すなわち、664さんは、A2セルを選んでから設定すればおk!と思われ。

666名無しさん@そうだ選挙にいこう :2006/02/07(火) 23:37:40
「礼儀をわきまえていなかったら、お許しください。」というのは
一見丁寧そうに聞こえるかもしれないけど、
「礼儀をわきまえて振る舞う気は一切ありません」と言ってるのと同じ

667エクセル達人になりたい :2006/02/07(火) 23:48:09
ありがとうございました。
わかりました。
また、教えてください。

668名無しさん@そうだ選挙にいこう :2006/02/08(水) 00:09:01
>>663
ありがとうございました。
項目が違うんですね。勉強になります。

669名無しさん@そうだ選挙にいこう :2006/02/08(水) 00:40:27
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 初心者
【4 VBAでの回答の可否】 可

やりたいこと
あるセルの値(始点・長さ)を参照して、オートシェイブの直線を引きたいのですが
どのように、構文を組めばよいでしょうか?
このとき、直線の書式もすべて設定したいのですが・・・

うまく説明できなくてすみません。

670名無しさん@そうだ選挙にいこう :2006/02/08(水) 01:33:20
windowsXPprosp2 excel2002sp3です
グラフの凡例に下付き文字を使いたいのですが、方法がわかりません
どなたか教えてください

671619、628 :2006/02/08(水) 01:41:55
>>625,626、627、629
関数書き換えで(配列を受ける→ 数値を受ける)
うまくいきました。この辺は基礎過ぎるのかいろいろネットをあったても
本にも出てなかったので、助かりました。ありがとうございます。

672名無しさん@そうだ選挙にいこう :2006/02/08(水) 03:20:38
【1 OSの種類         .】 WindowsXP Pro
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel グラフ クリップボード エラー

エクセルのグラフ関係で非常に困った事態になっています.

・エクセル上で作成したグラフを切り取ろうとすると,何の警告表示も
出ずに突然エクセルが終了.
・他のPC(Excel2000?)で作成したエクセルファイル(グラフ含)を開こうとすると,
突然エクセルが終了(↑と同じ)
・右クリックでコピーを選択してから貼り付けする際に,
「形式を選択してコピー」の表示が灰色のままで選択できない.

といった状態になっています.
クリップボード関連で何か壊れてるのかとも思ったのですが・・・・

エラー表示も出ずに突然終了,という同様の症状を見聞きしたことが
ある人います?
Officeの再インストールや最新の更新チェックはしたのですが,全く
症状が解決しないため困っています.
なお,ウイルスソフトにはノートンを使っています.関係ないとは思いますが

673名無しさん@そうだ選挙にいこう :2006/02/08(水) 04:51:05
そのブックだけ?それとも新しいブックで簡単なグラフ作っても同じように落ちるの?

674672 :2006/02/08(水) 07:20:17
>>673
新規ブックでデータ数3つくらいの簡単なグラフを作って試しましたが
同様に落ちてしまいます

675名無しさん@そうだ選挙にいこう :2006/02/08(水) 09:54:02
>>674
じゃあ、単純にクリップボードの問題なんじゃない?

676名無しさん@そうだ選挙にいこう :2006/02/08(水) 10:35:39
>>674
ウィルスか、ファイルが壊れてるか、ディスクが壊れてるか・・・

ファイルのコピーをとり、2003の形式として保存してみる。
無理なら、シートを新規文書にコピーしてみる。
効果なしなら、1行ずつ、1列ずつコピーでクリップボードに入れていく。
コピーでダメなら切り取っていく。
運がよければ問題のあるデータを特定できる。


677名無しさん@そうだ選挙にいこう :2006/02/08(水) 12:03:10
>>664
テンプレ嫁

678名無しさん@そうだ選挙にいこう :2006/02/08(水) 12:05:12
>>672
常駐してるソフトは?
PC環境書かないと原因特定できないと思われ


679名無しさん@そうだ選挙にいこう :2006/02/08(水) 12:26:10
>>669
A・B・C・D列に始点のx座標・y座標・終点のx座標・y座標を入力してあるとすると、
with activesheet.shapes.addline ([b1],[a1],[d1],[c1]).line
 .forecolor.rgb = rgb(255, 0, 0)
 .weight = 0.5
end with
とかかな?addlineで始点のy座標,x座標,終点のy座標,x座標って感じで指定できるよ。

680名無しさん@そうだ選挙にいこう :2006/02/08(水) 12:29:35
>>670
凡例選択し右クリックして書式設定のフォントで下付きにチェックとか?

681名無しさん@そうだ選挙にいこう :2006/02/08(水) 13:22:57
どなたか教えてください。

A列に名前があり、B列に売上金額があります。
それを別のシートに、売上金額が多い順に名前ごと並び替えたいのですが
できません。
どなたか教えていただけないでしょうか。お願いしますm(__)m

682名無しさん@そうだ選挙にいこう :2006/02/08(水) 13:53:04
>681
別のシートにコピペ。
「データ」の「並び替え」で売上金額列の降順でいいのでは?

コピペじゃなくリンクでやる必要があるの?

683名無しさん@そうだ選挙にいこう :2006/02/08(水) 13:54:42
>>681
コピペしてソートすりゃいいじゃん

変更を自動反映させたければVBA使うかRANK、INDEX、MATCHあたりを使え
つーか、その書き方じゃ金額と名前どっちが優先なのかもわからんぞ
あとは>>2※読んでがんばれ

684名無しさん@そうだ選挙にいこう :2006/02/08(水) 13:58:23
excelのvbaでとあるHPのHTMLを取得する方法はどんなものがありますか?
又それぞれのメリット・デメリットも知りたいです。

685名無しさん@そうだ選挙にいこう :2006/02/08(水) 14:05:38
>>684
 >>2・7

686684 :2006/02/08(水) 14:08:58
>>685
あっちで聞いてみます

687名無しさん@そうだ選挙にいこう :2006/02/08(水) 15:28:03
>>682
>>683
ありがとうございましたm(__)m
自動反映させたいので、頑張りますね。
親切にありがとうございました

688名無しさん@そうだ選挙にいこう :2006/02/08(水) 15:29:32
>>686
マルチ宣言乙

689名無しさん@そうだ選挙にいこう :2006/02/08(水) 18:11:56
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可


すみません、どうしても下罫線の引き方で分からない事があったので
教えてください。
短い文章に下罫線を引こうとしたんだけど、セルの枠でしか引けません。


http://homepage1.nifty.com/kenzo30/ex_kisonyu/ex_ks_nyumon9.htm
文章の範囲指定しているセルに、その罫線が描かれます。罫線はセルの枠線上に描かれます。

この使い方説明サイトを読むと、セルの枠でしか下罫線は引けないのですか?
文章の後には、図があって、もしセルの幅を変えてしまうと、図の形が変形してしまうのです。


つまり、下の図の形を変えずに、上の文章に引く下罫線(下線)の幅を文字
の両端にあわせたいのです。セルの横幅を上と下で幅をずらす方法ってあるんですか?
エクセルに詳しい方、是非教えてください。お願いします。



690名無しさん@そうだ選挙にいこう :2006/02/08(水) 18:21:39
>>689
お前がやりたいのは、下罫線ではなくアンダーラインでは?

691名無しさん@そうだ選挙にいこう :2006/02/08(水) 18:35:09
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】
【4 VBAでの回答の可否】 可

列(A B C D 〜)の上段に数字のボタンと+(クリックすると-)
が表示されました。
このエリアって何なのかわかりません
どうやったら消せますか?




692698 :2006/02/08(水) 18:36:07
>>690
そうです。アンダーラインを引きたいのです。
しかし、セル内の文章の長さとアンダーラインの長さが一致しないのです。
セルの幅を文にあわせると、同じところに作っている図の形まで変形してしまう。


つまり、図の形を変えずに、文のアンダーラインを文と同じ長さで引きたいのです。
上の方と下の方とかで、同じアルファベットのセルの横幅を変えることって出来るんですか?

693名無しさん@そうだ選挙にいこう :2006/02/08(水) 18:45:34
javascriptにあるような連想配列ってVBにはありませんか?
あれば使い方を教えてください。お願いします。

694名無しさん@そうだ選挙にいこう :2006/02/08(水) 18:52:14
>>691
> このエリアって何なのかわかりません
グループ

> どうやったら消せますか?
グループ解除


>>692
だから、おまえはアンダーラインを引きたいのに、
アンダーライン機能を使わず罫線機能を使ってるんじゃないかと言ってるんだ
罫線機能をねじ曲げて使うことを考える前に、まずアンダーライン機能を使え
アンダーライン機能に不満があるなら何が不満なのかを書け


>>693
答えは持ち合わせているが、VBの言語仕様に関してはスレ違いなので回答は控える
とりあえずVB6スレ行け

695693 :2006/02/08(水) 18:53:05
>>694
VB6すれってありませんが?

696名無しさん@そうだ選挙にいこう :2006/02/08(水) 18:58:36

VBプログラマ質問スレ(6.0以前) Part46
http://pc8.2ch.net/test/read.cgi/tech/1138975113/

697698 :2006/02/08(水) 19:18:09
>>694
ありがとうございます

アンダーライン機能がどこにあるのか分かりません。誰か、アンダーライン機能の
使う方法教えてください。お願いします。

698698 :2006/02/08(水) 19:24:55
あ!Bというアイコンクリックしたら普通のアンダーライン引けました!
ありがとうございます・

2重線のアンダーライン引くには、どうすればよいのでしょうか?

699698 :2006/02/08(水) 19:25:30
訂正
Uというアイコンクリックしたら普通のアンダーライン引けました

700名無しさん@そうだ選挙にいこう :2006/02/08(水) 19:26:16

.U


701名無しさん@そうだ選挙にいこう :2006/02/08(水) 19:27:17

.D


702名無しさん@そうだ選挙にいこう :2006/02/08(水) 19:27:53
>>692
セルを結合するのは出来る

703689 :2006/02/08(水) 20:11:33
698ではなく私の最初のレスは689でした




704名無しさん@そうだ選挙にいこう :2006/02/08(水) 20:21:09
分かりづらい訂正なら
しなくていいよ


705名無しさん@そうだ選挙にいこう :2006/02/08(水) 20:38:31
【1 OSの種類         .】 WINDOWSXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

VBAで重複しない乱数を発生させる事はできますか?

706名無しさん@そうだ選挙にいこう :2006/02/08(水) 20:47:32
>>705
ランダム関数


707名無しさん@そうだ選挙にいこう :2006/02/08(水) 20:51:26
>>705
Rndの返す値を重複しないようにすることは出来ないけど
重複チェックルーチンを組み込めば、重複しない乱数を返すようにすることは可能
そもそも、丸めたりしなければチェック入れなくても重複する可能性はかなり小さいがな
発生させる乱数の範囲が狭ければ、重複チェックより効率的な方法もあるし

んで、例によって「VB言語(VBA)での重複しない乱数生成」は一切Excel関係ないので
具体的な方法は伏せる

708名無しさん@そうだ選挙にいこう :2006/02/08(水) 20:59:59
シートの最大6万行×250列を扱うには
どれくらいのCPUとメモリが必要ですか?


709名無しさん@そうだ選挙にいこう :2006/02/08(水) 21:04:30
CPU:初代Pentium 100MHz
RAM:PC-100 24MB

で、普通に65536行*256列使えてますが

710705 :2006/02/08(水) 21:23:11
>>707
うーん いけずぅ


711名無しさん@そうだ選挙にいこう :2006/02/08(水) 22:05:42
ローレス指数を計算したいのですが、
体重[kg] /(身長[cm]の3乗)× 10の7乗 というものです

どのようにすればよいですか?


712名無しさん@そうだ選挙にいこう :2006/02/08(水) 22:22:25
>>705
簡単には目的の範囲の値に乱数を振ってソート

713名無しさん@そうだ選挙にいこう :2006/02/08(水) 23:15:39
オートシェイプで正三角形を確実に簡単に書く方法はありますか?
XP Excel2003

714名無しさん@そうだ選挙にいこう :2006/02/08(水) 23:39:47
>>713
方法1:電卓で計算して高さを幅の((ルート3)/2)倍にする
方法2:VBAが使えるなら、1の操作をVBAで自動化する

715名無しさん@そうだ選挙にいこう :2006/02/09(木) 04:52:28
>>711

その通りにやればいいでしょ。
体重や身長が別セルならそこを参照するようにすればいい。
演算子については、ヘルプを参照。
演算の優先順位についても、ついでに調べておけば間違いなし。

716名無しさん@そうだ選挙にいこう :2006/02/09(木) 05:17:38
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】 可

セルA1の値によってK1:K19間のセルを参照するにはどうしたらいいですか。
強引な方法ではJ1:J19間にインデックスを付けてLOOKUP関数を使う方法もありますが、
もうちょっとエレガントに済ますことは出来ないでしょうか。
実際出来はしないのですが、 =$K$(A1-5) (K列の"A1から5引いた値"行目を参照)
みたいに出来たら良いなと。

717名無しさん@そうだ選挙にいこう :2006/02/09(木) 06:32:16
>>716

>>8
> = FAQ: 参照するシートやセルをセルの値で指定する =

718名無しさん@そうだ選挙にいこう :2006/02/09(木) 06:32:17
>>716

>>8
> = FAQ: 参照するシートやセルをセルの値で指定する =

719名無しさん@そうだ選挙にいこう :2006/02/09(木) 09:52:15
結局テンプレってこうやって他人を叩く材料にしか使えないんだな

720名無しさん@そうだ選挙にいこう :2006/02/09(木) 10:20:14
ルール守らず弾かれた子の負け惜しみ?

721名無しさん@そうだ選挙にいこう :2006/02/09(木) 10:54:47
いーんじゃね?テンプレ原理主義者は笑って眺めてれば
暴動起こすわけでもないんだし、まあ、がんばってくれ
本人はなんで笑われるかも理解できないんだろうけど

722名無しさん@そうだ選挙にいこう :2006/02/09(木) 11:03:19

これってさ、どれなんだろうね。

a) テンプレの意味を本当に理解できない正真正銘のバカ。
b) 720の言うとおり、本当は意味があることわかってるんだけど
  負け惜しみで書いてるだけの哀れなピエロ。
c) 意味もなく挑発してるだけの寂しい人。
d) テンプレという言葉があるとなぜか反発したくなる反抗期なお年頃。


723d :2006/02/09(木) 11:23:22
>>713
Shiftキーを押しながらドラッグ。


724名無しさん@そうだ選挙にいこう :2006/02/09(木) 11:55:55
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2000、2003

オートフィルタで質問です
まず、フィルタのコンボを開いて、任意の値を選択して一度行を抽出します
その後、再びフィルタのコンボを開いた際に、
(オプション)が一番上に来て選択されている場合と、
先ほど選択した値が選択されている場合と、
2通りの状態になります

フィルタをかける列によって、なったりならなかったり、
例えば数値だけのフィールドをフィルタした後に、
再度コンボを開くと(オプション)が選択されているのに、
その中に日本語を1行入れてみてフィルタでそれを選択して、
再度コンボを開くとその日本語が選択されていたり

どういう条件で、再度コンボを開いたときの状態が分けられているのでしょうか
よろしくお願いします

725598 :2006/02/09(木) 12:36:50
亀レスで申し訳ないです。
>>602さんのお陰で解決しそうです。
助かりました。ありがとうございました。

726名無しさん@そうだ選挙にいこう :2006/02/09(木) 14:27:32
テンプレが何のためにあるかも
考えてから質問してほしいな

727名無しさん@そうだ選挙にいこう :2006/02/09(木) 18:09:53
Word、Excelって、ソフト買うんですか?それとも、どこかのサイトからダウンロードするんですか?

728名無しさん@そうだ選挙にいこう :2006/02/09(木) 18:22:10
>>727
犯罪幇助ともとれるので
通報しておきますね


729名無しさん@そうだ選挙にいこう :2006/02/09(木) 18:30:41
>>727
当然、買う物だ。

730名無しさん@そうだ選挙にいこう :2006/02/09(木) 18:33:29
>>727
売ってるのはぼったくりなので気をつけてください
買ってる人はほとんどいませんので
安心してダウンロードしてください
絶対に捕まりません。

731 :2006/02/09(木) 18:35:16
Excel2000ユーザーですが製品CD-ROMを無くしました。
有料でもかまわないのでCD-ROMだけを再購入できますか?

ポイントはマイクロソフトのロゴが入った
Excel2000の正規のCD-ROMが欲しいのです。

会社が不正コピー撲滅運動に参加しているため
知人等からCD-ROMをコピーしてもらって
その場しのぎの解決策は駄目ということです。


732名無しさん@そうだ選挙にいこう :2006/02/09(木) 18:38:20
>>731
2ちゃんねるに来るのは会社で許されてるのですか?


733名無しさん@そうだ選挙にいこう :2006/02/09(木) 18:39:19
スルー汁
>会社が不正コピー撲滅運動に参加しているため
会社が参加してなかったら犯罪を犯すって言ってるような人だぞw


734名無しさん@そうだ選挙にいこう :2006/02/09(木) 18:39:46
いくらかかるが知らんが
ttp://www.microsoft.com/japan/customer/infokb/Search.aspx?si=700334&ts=

735名無しさん@そうだ選挙にいこう :2006/02/09(木) 19:01:44
傷がついたCDを送ったら
新しいの無料で送ってくれたよ
直接電話して聞いてみるといいよ


736名無しさん@そうだ選挙にいこう :2006/02/09(木) 19:37:53
WINDOWSXP
EXCEL20003
VBA いいえ
VBAでの回答 可


  1月 2月 3月 4月 5月 6月

A 数値 数値 数値 数値 数値 数値
B 数値 数値 数値 数値 数値 数値
C 数値 数値 数値 数値 数値 数値
D 数値 数値 数値 数値 数値 数値

こういう表があり、数値の高い月・低い月は出せるのですがその高い月or低いが何月なのかを出したいのですが。
なにか手法はありませんでしょうか?

737名無しさん@そうだ選挙にいこう :2006/02/09(木) 19:40:49
キズが入ってても割れてても、現物が有る場合だと料金違うらしい。
紛失にまで無償対応してたら、コピー代わりに再発行依頼する奴出てくるだろうからな。


>>736
言ってることが矛盾してるぞ。

738名無しさん@そうだ選挙にいこう :2006/02/09(木) 21:39:18
>>736
たぶん MATCH & INDEX

739名無しさん@そうだ選挙にいこう :2006/02/09(木) 21:44:45
あるセルが参照しているセルを確認するには、次の二つの方法がありますよね。
 (A) セルを編集状態にすると参照元セルが色づけされる
 (B) 参照元のトレース

では、あるセルを参照しているセルを確認するには
 ・参照先のトレース
がありますが、ほかに方法はあるのでしょうか?
(たとえば、上の(A)みたいに参照先が色づけされるとか・・・)

740名無しさん@そうだ選挙にいこう :2006/02/10(金) 00:25:13
Excel2003使用してます。教えてください。
あるセルに対し、入力規則→リストと適用してプルダウンから項目を
選択できるようにしました。で、選択肢の範囲指定で、別の場所の
選択肢リストを指定したのですが、あとから選択肢を追加するときの
ために、空っぽのセルもある程度含めました。
そうした場合、プルダウンの下の方に、空白の選択肢がいくつかできる
ときとできないときがあります。この空白の選択肢を作りたくないの
ですが、なぜ出ないときと出るときがあるのか違いがわかりません。
ちなみに入力規則の設定で必ず「空白を無視する」にチェックをつけてます。
選択肢の範囲指定時に、予備の空白を含めなければ良いのかもしれませんが、
選択肢が増えるたびに、再度範囲指定したくないので、できれば予備のセル
を含めたいのです。
どうすればプルダウンに空白の選択肢ができなくなるでしょうか?


741716 :2006/02/10(金) 00:50:27
>>717
=INDIRECT("$K"&"$"&TEXT(A1-5, "0"))

と一度文字列に変換して出来はしましたが、
文字列じゃなくて数値で指定出来る関数はありませんか?

742名無しさん@そうだ選挙にいこう :2006/02/10(金) 01:24:46
>>741
=OFFSET(A1,ほげ,ふげ)

743716 :2006/02/10(金) 01:39:40
>>742
!! まさにそれです。
いやホントありがとうございます。

744名無しさん@そうだ選挙にいこう :2006/02/10(金) 02:11:36
VBAの"Format"に相当する関数はエクセル関数にありませんでしょうか。。
私は以下の関数fooを定義したのですが、元からあってもおかしくない関数ですよね。
ご存知の方がいらっしゃいましたら、お教えください。

Function foo(v As Variant, f As String) As String
foo = Format(v, f)
End Function

【使い方】
A1:今日は
A2:38758
A3:だよ。
B1:=A1 & foo(A2,"mm/dd") & A3
に対して、
B1の値が「今日は02/10だよ。」となる。

745名無しさん@そうだ選挙にいこう :2006/02/10(金) 02:35:26
>>744
自分でレス。
TEXTという関数がそれですね。

Excelのヘルプで「文字列」を検索して調べたら分かりました。


746名無しさん@そうだ選挙にいこう :2006/02/10(金) 09:13:29
>>739
VBAだとDependentsとかPrecedentsでわかるよ。
同じシート内限定だけどね。

range("a1").Dependents.selectとか。

747名無しさん@そうだ選挙にいこう :2006/02/10(金) 09:18:08
【1 OSの種類         .】 Windows 2000 sp4
【2 Excelのバージョン   】 Excel 2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 どうぐぐっていい物か…関数は一応理解できる範囲で全部見てみました。

表が別ページで二つあり
Aの表には名前と数字を入れる部分があり、これがメインです。(実際には項目はたくさんあります)

   A    B
1 名前1  5
2 名前2  3
3 名前3  0
4 名前4  1

Bにも同じく名前と数字が入っていますが、縦一列ではありません。( こちらはデータとしての使用 )

   A    B    C    D
1 名前1  5  名前5  4
2 名前2  3  名前6  0
3 名前3  0  名前7  2
4 名前4  1 


Aの名前と同じ名前をBの表に見つけたら、隣の数字を拾ってきて、Aの数字部分に入れる
という数式は可能ですか?
Bを縦一列にすればINDEXとMATCHで拾ってこれるのですが
やはり無理でしょうか?


748名無しさん@そうだ選挙にいこう :2006/02/10(金) 09:47:50
お世話になります。
このコードはどういう意味でしょうか?
詳細を教えて下さい。

With Sheets("Aシート")
Sheets("Bシート").Cells(1).CurrentRegion.AdvancedFilter xlFilterCopy, _
.Range("J1:J2"), .Range("A1:H1")
Sheets("Cシート").Cells(1).CurrentRegion.AdvancedFilter xlFilterCopy, _
.Range("J1:J2"), .Range("L1:P1")
End With

749名無しさん@そうだ選挙にいこう :2006/02/10(金) 09:57:50
やはり無理でしょうか?
やはり無理でしょうか?
やはり無理でしょうか?

750名無しさん@そうだ選挙にいこう :2006/02/10(金) 10:09:04
>>747
VBA使えば可能だろうが、
シートBのデータの管理の仕方を見直したほうがよいと思う

>>748
とりあえずHelp調べるかgoogleで検索するかしてみたらどうだろう

751名無しさん@そうだ選挙にいこう :2006/02/10(金) 10:10:53
じゃぁこのスレ洋なしだね!!!

752名無しさん@そうだ選挙にいこう :2006/02/10(金) 10:13:39

そうぢゃねーだろ。

753747 :2006/02/10(金) 10:15:10
>>750
そうですか
シートBを項目A,Bだけにするのは難しいのですが、何とかやってみます。
ありがとうございました。


754名無しさん@そうだ選挙にいこう :2006/02/10(金) 10:36:07
お願い!
Sheets("Bシート").Cells(1).CurrentRegion
ここの意味だけ教えて下さい!

755名無しさん@そうだ選挙にいこう :2006/02/10(金) 10:40:13
Sheets("Bシート").Cells(1)は、"Bシート"という名前のシートのA1セル
CurrentRegionはアクティブセル領域

つまり、「"Bシート"のA1を含むアクティブセル領域」という意味


・・・アクティブセル領域の意味が分からないとか言い出すなよ
これくらいは自分で調べろ
まあ、本来はこの程度なら全て自分で調べるべきなんだけどね
全部VBAヘルプに載ってるわけだし

756名無しさん@そうだ選挙にいこう :2006/02/10(金) 11:10:54
>>755
ありがとね!ちゅっ

757名無しさん@そうだ選挙にいこう :2006/02/10(金) 11:30:32
フィルタオプション(AdvancedFilter)って見出し行(一致)が
ないと効かないんですよね?

758名無しさん@そうだ選挙にいこう :2006/02/10(金) 11:30:44
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel 2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

オートシェイプに影をつけるのって
ActiveSheet.Shapes(1).Shadow = True
じゃ ダメなんですか


759名無しさん@そうだ選挙にいこう :2006/02/10(金) 11:40:19
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel 2002
こんにちは。高度な質問ばかりのところ恐縮なのですが(・ω・)

先日から、Excelでのみ、
変換中の文字列の下線(点線)が見えなくなってしまいました。
Wordやほかのアプリではいままでどおり表示されます。
変換範囲や確定/未確定がわからなくてなかなか不便なので
解決方法がわかれば教えてください。
IMEスタンダード、です。


760名無しさん@そうだ選挙にいこう :2006/02/10(金) 12:11:56
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 初心者
【4 VBAでの回答の可否】 可

エクセルを起動すると同時にユーザーフォームを前面に表示させて
エクセルのシート部分(本体)は表示させないようにしたいのですが
  
 Private Sub Workbook_Open()
 UserForm1.Show
 End Sub

だとエクセル画面が出たままです。
あと何をいれたらいいでしょうか?

761名無しさん@そうだ選挙にいこう :2006/02/10(金) 12:38:41
>>758
影の有無しか設定出来ないオブジェクトの場合はそれでいいんだけど
ShapeオブジェクトのShadowはBoolean値プロパティではなく
ShadowFormatオブジェクトを返すプロパティ
とりあえず影の詳細を設定せずに表示させるだけなら
.Shadow.Visible = msoTrue
詳細な設定はShadowFormatでVBAヘルプ検索しな
それと、こういう場合はオブジェクトブラウザ活用した方がいいよ


>>760
シートの非表示は
Worksheet.Visible = xlSheetHidden
だけど、アドインとかではなく普通のワークブックなら最低一つはシート表示させなくてはならない
全くシートのないExcelのオーナーフォームの上にユーザーフォーム表示させたいなら
ユーザーフォームをPersonal.xlsやアドイン.xla上に作ればいい
Excelのオーナーフォームすら表示させたくないなら普通にアプリの開発環境使え

762名無しさん@そうだ選挙にいこう :2006/02/10(金) 12:51:12
>>761

質問の仕方が悪かったですね、ごめんなさい。

表示させたくないというのは、最小化の事なのです。

test.xlsを起動させて

フォームが表示される

エクセル自体が最小化

すると、パソコンの画面上にはフォームだけが見えている
という状態にしたいのです。

Private Sub Workbook_Open()
UserForm1.Show
Application.WindowState = xlMinimized
End Sub

としても、エクセルが最小化しないどころか、フォームすら出なくなり困っています。

763名無しさん@そうだ選挙にいこう :2006/02/10(金) 12:59:44
>>762

すいません、自己解決しました。

Private Sub Workbook_Open()
Application.Visible = False
UserForm1.Show
End Sub

で、ユーザーフォームだけが表示できるようになりました。

>>761さん、ありがとうございました。


764名無しさん@そうだ選挙にいこう :2006/02/10(金) 12:59:45
>>757
うん

765名無しさん@そうだ選挙にいこう :2006/02/10(金) 15:46:42
10年前後?昔のExcelデータが開けないのですが、
何か開く方法はありませんでしょうか。

Excel2000では×でした。
データをヘキサで見ましたが、さっぱり判断が付きません。

766名無しさん@そうだ選挙にいこう :2006/02/10(金) 16:12:36
>>765
バージョン毎の互換性はほとんどないから
古いエクセルで開くしかない
長期保存はcsvのも残しておいた方がいいかと

767名無しさん@そうだ選挙にいこう :2006/02/10(金) 16:27:58
2003─────→
←──XP─────→
←─────2000─→
      ←─────97────────→
                  ←──95─────→
                  ←─────5───
                        ←─────4

768名無しさん@そうだ選挙にいこう :2006/02/10(金) 16:30:02
2003だと読めることが多いよ


769名無しさん@そうだ選挙にいこう :2006/02/10(金) 16:30:32
>>765
>データをヘキサで見ましたが、さっぱり判断が付きません。
通報しておきますね。


770名無しさん@そうだ選挙にいこう :2006/02/10(金) 18:20:46
>>769
まあまあ、解けたわけじゃないんだし放っておけ

771名無しさん@そうだ選挙にいこう :2006/02/10(金) 19:18:02
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 コンボボックス リストボックス

   A    B    C    D    E    F
1           い社  ろ社  は社  に社
2  ろ社  400        400

A2はリストボックスで、そこから会社を一つ選択する。
その後B2に数値を入れると、対応するセルにその値がコピーされる。
↑このような機能を実装したいのですが、何をすればよいのか皆目見当も付きません。
できれば入力直後にコピーが行われるようにしたいのですが・・・
宜しくお願いします。

772名無しさん@そうだ選挙にいこう :2006/02/10(金) 19:28:37
>>771
 >>149


それと数式による参照ではなく、"コピー"じゃなきゃだめなのか?

773名無しさん@そうだ選挙にいこう :2006/02/10(金) 19:34:24
対象のセルに値が入れば何でもかまいません。
>ユーザーフォーム、コントロールオブジェクト、フォームオブジェクト
これに関してはどれのことだかわからないので、依頼文を下記のように変更します。

A2はリストボックスで、そこから会社を一つ選択する。

A2に会社の名前を入力する。

774名無しさん@そうだ選挙にいこう :2006/02/10(金) 19:54:40
>>773
> それと数式による参照ではなく、"コピー"じゃなきゃだめなのか?

775名無しさん@そうだ選挙にいこう :2006/02/10(金) 20:44:22
>>774
> 対象のセルに値が入れば何でもかまいません。

773みたいな、ユーザーフォームとかコントロールオブジェクトとかいわれてもわからない奴がいることだし、
もっとわかりやすい言い方で指摘するといいと思うのだが。
こういうのを書かないような奴は大概わかってないのだろうし。

776名無しさん@そうだ選挙にいこう :2006/02/10(金) 20:53:48
>>773
HLOOKUP、またはINDEX&MATCH
使い方はヘルプ参照


>>775
> もっとわかりやすい言い方で指摘するといいと思うのだが。
全部の使い方は解らないにしても、自分で設置したものが何なのかくらい普通わかるだろ
入力規則のリストなら、メニューから「入力規則」を選択して設定するし、
フォームツールバー、オブジェクトツールバーはデフォルトでは表示されてないから、
これらを設置してるなら自分で選んで出してるはず
ユーザーフォームはデフォルトのフォーム名が「UserForm1」だし

そもそも「もっとわかりやすい言い方」があるなら>>149に変わるテンプレ案を君が作ればいい
暗いと文句を言うよりも進んで明かりを・・・ってな

777名無しさん@そうだ選挙にいこう :2006/02/10(金) 20:56:04
>>776
ありがとうございます、早速やってみます。

778名無しさん@そうだ選挙にいこう :2006/02/10(金) 20:56:08
>>769
データをバイナリエディタで見たら違法なの?

779名無しさん@そうだ選挙にいこう :2006/02/10(金) 21:02:25
>778
( ̄ー ̄)ニヤリッ

780名無しさん@そうだ選挙にいこう :2006/02/11(土) 00:54:48
4つのセルをリンクさせてて、SAM関数で足していますが、その中に空欄も入っており、
「♯VALUE!」となってしまいます。
空欄を「0」と認識させる良い方法はありませんか?

781名無しさん@そうだ選挙にいこう :2006/02/11(土) 01:12:31
>>780

地対空ミサイル関数?
てのは冗談で、空欄ならば普通にけいさんできるのじゃないの。
恐らく途中のセルにスペースなどの数字に変換できない
文字があるんじゃないのかな。

782名無しさん@そうだ選挙にいこう :2006/02/11(土) 01:27:01
>>740
参照範囲が可変になるようにすれば予備の空白は必要ないんじゃない?
http://www2.odn.ne.jp/excel/waza/validation.html#SEC3

783名無しさん@そうだ選挙にいこう :2006/02/11(土) 01:28:59
>>781
ごめん、よく見たら、空欄が原因じゃないみたい。
でも、どうやっても計算式に乗らないセルがある。ナンダこれ?
マクロで制御されてる高級(?)なEXCELだから、「安っぽい計算なんてできねぇな」
と言わんばかりに動かない。
なんでだろ?
色がつけてあるだけで、どう見ても空欄なんだが?

784名無しさん@そうだ選挙にいこう :2006/02/11(土) 05:46:51
>>783
自分で作ったブックじゃないの?
だとすればそれを作った人に聞いたほうがいいな。
それが出来ないならブックをどこかロダなどにうp。
それもできないならどうしようもないよ。

785名無しさん@そうだ選挙にいこう :2006/02/11(土) 07:43:19
エクセルのVBAからWindowsの画面サイズを調べるにはどんな方法がありますか?
APIを使わないとできないんだろうとはわかっているんですが、ネットを検索しても
これっていうのを見つけられなくて、調べるだけのシンプルな方法を教授願いたいんですが。
WindowsXP/Excel2002を使用
VBAでの返答、使用…可です。

786名無しさん@そうだ選挙にいこう :2006/02/11(土) 07:57:57
>>785
VBだとAPI使わずに調べる方法があるんだが、VBAだとAPIだね
WMI使う方法も手軽だが、どっちにしろ>>2・7なのでここではスレ違い

787名無しさん@そうだ選挙にいこう :2006/02/11(土) 08:28:24
>>783
>色がつけてあるだけで、どう見ても空欄なんだが?
本当に空欄かどうか確かめろよ・・・
それに君は質問者の態度じゃないし・・・

788名無しさん@そうだ選挙にいこう :2006/02/11(土) 08:45:07
>>785
Declare Function GetDesktopWindow Lib "user32" () As Long
Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Type WindowSize
Height As Long
Width As Long
End Type

Declare Function GetWindowRect Lib "user32" ( ByVal hwnd As Long, _
lpRect As RECT _
) As Long

'ディスプレイの解像度を取得する
Public Function GetWindowSize() As WindowSize
Dim Re As RECT
Dim hwnd As Long
Dim RetVal As Long

hwnd = GetDesktopWindow()
RetVal = GetWindowRect(hwnd, Re)

GetWindowSize.Height = Re.Bottom - Re.Top
GetWindowSize.Width = Re.Right - Re.Left
End Function



789名無しさん@そうだ選挙にいこう :2006/02/11(土) 09:15:02
>>788
モーグから拾ってきたならURL貼ればいいじゃん。
ttp://www.moug.net/tech/acvba/0020006.htm

スレの方は消えるけど、テクニック集の方はほとんど消えないし。



790名無しさん@そうだ選挙にいこう :2006/02/11(土) 11:44:10
すみません、質問です。
数式を入力して、エンターを押すと演算後の数値がでると思うのですが、
そのセルをコピーした場合、数式がコピーされますよね?数式をコピーするのではなく、
演算後の数値をコピーする方法ってないのでしょうか?

791名無しさん@そうだ選挙にいこう :2006/02/11(土) 12:00:47
y軸にgでx軸に日数でグラフ作りたいんですが
経過日数によるgの変化を折れ線グラフにしたいんですができません。
ちなみに経過日数のスタートは0なので、さらにわかりません
どうか教えてください

792名無しさん@そうだ選挙にいこう :2006/02/11(土) 12:17:34
>>790
コピーする方法となるとVBAだが
数値を張り付ける方法なら「形式を選択して貼り付け > 値」


>>791
なぜ出来ないのかが、さらにわかりません
どうか教えてください

793785 :2006/02/11(土) 12:25:29
すみませんお願いします。
エクセルが画面の最大(タイトルバーあり)かつ手前に表示されてる状況で、
ブックの状態は、
○ブックタイトルだけの最小
○任意のサイズ
●整列させたときのMAXサイズ
○エクセル内での最大
○画面上の最大(タイトルバーなし)
って考えられますが、●のサイズにVBAから指定できますか?

794名無しさん@そうだ選挙にいこう :2006/02/11(土) 12:45:26
>>793
取得じゃなくて指定したいなら実際に整列さsればいいじゃん
UsableWidth、UsableHeightで表示領域サイズを取得できるから
そこから計算すれば出せないこともないけど、開いてるブックの数によって
並び方が変わる(=計算方法が変わる)から面倒でしょ

795名無しさん@そうだ選挙にいこう :2006/02/11(土) 13:37:05
エクセルの基本動作とは、どの程度の事ができれば良いと思いますか??

796名無しさん@そうだ選挙にいこう :2006/02/11(土) 13:40:00
フィルタとオプション項目わかってりゃエクセル使えてる。
後は本みながらで十分。

797名無しさん@そうだ選挙にいこう :2006/02/11(土) 13:44:55
あとウインド枠の固定も。

この程度があれば、エクセルをワープロにしちゃってる職場では余裕の基本動作。

798名無しさん@そうだ選挙にいこう :2006/02/11(土) 15:06:45
>>784
これは社外秘だし、作った本人に聞くしかないかな・・・
マクロを起動しなければ、空欄は空欄でしかないと思ってたけど、違うのね。


799名無しさん@そうだ選挙にいこう :2006/02/11(土) 21:11:02
Excel2003ですが、ご教授ください。
あるセルの値を特定の値にすると、そのセルを含む行が
自動的に塗りつぶされるというようなテクニックを
見かけたことがあるのですが、どうやっているのでしょうか?

800名無しさん@そうだ選挙にいこう :2006/02/11(土) 21:11:56
条件付き書式

801799 :2006/02/11(土) 21:23:46
>>800
ありがとうございます。

802名無しさん@そうだ選挙にいこう :2006/02/11(土) 21:35:02
1分に1度VBAを実行し、それ以外の時間には普通にエクセルを動かしたいのですが
どうすれば良いでしょうか?
waitでやってみたのですが、待ち時間はエクセルが止まってしまいます

803名無しさん@そうだ選挙にいこう :2006/02/11(土) 21:48:05
>>802
ontime

804名無しさん@そうだ選挙にいこう :2006/02/11(土) 21:55:14
Excel2003です。
VBAでセル範囲の値を一気に二次元配列に取り込むとき
v = Range("a1:b5000").Value
などとしますが、宣言は
Dim v as variant
Dim v() as variant
どちらがいいの?

805802 :2006/02/11(土) 22:03:33
>>803
ありがとうございます
ontimeを使えばうまくいきそうです

806名無しさん@そうだ選挙にいこう :2006/02/11(土) 22:49:58
>>804
必ず配列として扱いたいなら、v()の方が単一セルだった場合にエラーで弾けるから、そっちのがいいかな。

807若葉 :2006/02/11(土) 22:51:55
エクセルでワードみたいにセル関係なしに
連続文章書くにはどうしたらいいですか?
教えてくださいませ。(^^)

808802 :2006/02/11(土) 23:02:52
>>802です
ontimeを使ってみたのですが、1分後に作動させる為には問題ないのですが
毎分ごとになると、ontimeの構文を何処においたらよいのやら分かりません
ontimeで実行するプロシージャの部分に置けば、実行するごとにネストが深まり
最終的にメモリーオーバーになるように思います
何か、良い方法がありましたらご教授願います

809名無しさん@そうだ選挙にいこう :2006/02/11(土) 23:27:00
Excel2003にて教えてください。
セルA1とA2を結合したとします。そこに"1"という値を入力すると
見かけ上、結合されているのでA1もA2も"1"に見えますが、
実際他からA2を参照すると値は"1"とはなりません。
A1はちゃんと"1"になっているようですが。
結合されているすべてのセルの値を同一の扱いにさせることって
できないのでしょうか?

810802 :2006/02/11(土) 23:28:31
たびたびすいません
実行させたいプロシージャ内にontime文を書いても問題なさそうでした
ontime文を教えてくれた>>803さん、すいませんでした

811名無しさん@そうだ選挙にいこう :2006/02/11(土) 23:36:12
>>804
vだけの方がいいよ。
その方が速いし、どのバージョンでも動く。
たしかv()では動かないバージョンがあったんじゃなかったか?


812名無しさん@そうだ選挙にいこう :2006/02/11(土) 23:42:16
>>807
やりたいことがわからない
セル内で折り返ししたいんだったら
 セルの書式設定→配置→折り返して全体を表示
セル内で改行したいんだったら
 Alt+Enter

>>809
多分無理だと思う

813809 :2006/02/11(土) 23:49:22
>>812
そうですか・・・ orz
ありがとうございました。

814名無しさん@そうだ選挙にいこう :2006/02/11(土) 23:57:33
>>809

作業列使っていいなら
>>613の最初の式使ってできないかい。

815名無しさん@そうだ選挙にいこう :2006/02/12(日) 00:01:11
訂正

× 作業列使っていいなら
. >>613の最初の式使ってできないかい。

○ × 作業列使っていいなら >>613でできないかい。

816若葉 :2006/02/12(日) 00:18:38
>>812

ありがとうございます。
でも、初心者すぎてわかりません。
例えばこの2ちゃんの書き込み枠みたいに
自由に・・・んー自分でもわかりません(〜〜)

817名無しさん@そうだ選挙にいこう :2006/02/12(日) 00:37:21
セル上で右クリックすると項目が色々出てくるから、
812さんが書いてくれている所にチェック入れて設定すればできるよ?
セル大きさの変え方はわかるよね?


818名無しさん@そうだ選挙にいこう :2006/02/12(日) 03:14:40
excel2002を使っています。
web上の表をexcelに丸々コピペしたいのですが、
表中の数字が勝手に日付として認識されてしまいます。

例えば
web上の表中に 6167-02 という数字があると Feb-67 となってしまいます。
そのまま6167-02と表示させるには、どうすればいいでしょうか?



819名無しさん@そうだ選挙にいこう :2006/02/12(日) 04:01:17
とりあえずコピーすると、コピーしたセルの右下あたりにアイコンがでると思うので
そのアイコンをクリックして「テキストファイルウィザードを使用する」を選択
あとはウィザードの途中で「文字列」を選択すればいけるんじゃないかと思う
なんか他にも方法ありそうな気がするけど知らない

820818 :2006/02/12(日) 04:17:13
>>819
夜遅くにレスありがとうございます。

EXCELに貼り付けた時点で日付になってしまっているので、
ウィザードを使って文字列にしても 6167/1/1 となってしまいました。

が、それをヒントに一度メモ帳に貼り付けて保存。
textファイルとして読み込み、そこで文字列を選択したらきちんと出来ました。

ヒントありがとうございました。

821名無しさん@そうだ選挙にいこう :2006/02/12(日) 04:24:11
EXCELに貼り付けた時点で日付になってても問題なく修正されるはずなんだけどな
まあできたんならどっちでもいいや

822名無しさん@そうだ選挙にいこう :2006/02/12(日) 05:28:40
すいません、ネット上で拾った画像をエクセルを使って
並べてプリントアウトしたいんですけどなにかいい方法はありませんか?
自分まったくの初心者なので誰かアドバイスしていただけたらうれしいです。

823名無しさん@そうだ選挙にいこう :2006/02/12(日) 10:58:18
>>822
エクセルを使わないのがオススメです

824822 :2006/02/12(日) 11:50:09
>>823
それはエクセルを使わなくてもできるということでしょうか?

825名無しさん@そうだ選挙にいこう :2006/02/12(日) 11:59:28
>>822
やって見たけど、こういう所が上手くいかないとか
こんな風にしたいとか、具体的な事が何も分からない。

エクセルに好きなように貼り付けて印刷すれば、いいんじゃないの?
居間の質問じゃ、それ以上コメントできないよ。

まずはやってみな。ちなみに自分は823じゃありません。

826名無しさん@そうだ選挙にいこう :2006/02/12(日) 13:36:11
入力リストで「元の値」を別シート参照させる事ってできないんですか?

827名無しさん@そうだ選挙にいこう :2006/02/12(日) 13:46:38
元の値の範囲に名前を付けて置けば可

828名無しさん@そうだ選挙にいこう :2006/02/12(日) 15:01:37
ありがと〜

829名無しさん@そうだ選挙にいこう :2006/02/12(日) 15:09:53
PC初心者板の質問スレで尋ねても回答が無かったので
こちらで質問し直させていただきます。

Excel2003使用中です。

「Office Online のテンプレート」をクリックすると
ttp://office.microsoft.com/en-us/templates/default.aspx?Application=XL&Ver=11
この英語表記のページが出てしまいます。
僕としては
ttp://office.microsoft.com/ja-jp/templates/default.aspx
こっちの日本語ページが出てくれるとありがたいのですが、
クリックした時に日本語のテンプレページに飛べるよう設定を変更することは可能ですか?

830名無しさん@そうだ選挙にいこう :2006/02/12(日) 16:35:06
Office Onlineの日本語ページが立ち上がったのはOffice2003日本語版発売以後
当然、開発時に存在しなかったページへの変更なんて考慮されてない

831名無しさん@そうだ選挙にいこう :2006/02/12(日) 16:38:32
複数条件にマッチするセルを参照したいのですが
合計する方法はよく書かれていますが、参照する式が見つかりません。
例えば
A列に"男優"と入ってる行の中でB列に"Robert"と入っているセルを参照する式は可能ですか?


832名無しさん@そうだ選挙にいこう :2006/02/12(日) 16:43:14
とりあえずは、Ifのネスト。

でもその条件で何をしたいか書かないと、欲しい答えは貰えないと思。


833名無しさん@そうだ選挙にいこう :2006/02/12(日) 16:43:19
>>830
なるほど、ありがとうございます。
現在Excelの資格取るための問題集を見ているのですが、
その本ではテンプレートをクリックすると日本語ページが表示されています。
なのでできるのかなーと思ったのですが、無理なんですかね…

834名無しさん@そうだ選挙にいこう :2006/02/12(日) 16:58:01
ちなみにおいらのEx2002では
「Microsoft.com上のテンプレート」でちゃんと日本語ページに飛ぶ

2003のことは知らんが、ちゃんとアップデートしとるか?

835831 :2006/02/12(日) 17:46:33
>>832
申し訳ないです。
複数条件といっても、ANDなんです。
A列に"主演男優"と入っていて、なおかつB列に"ROBERT"と入っているセルを知りたいのです。

シート1に見た映画のデータベースがあって
その中の主演男優のセル等に、シート2からアカデミー受賞数等を取ってきたいのですが…

これでわかりますか?

836名無しさん@そうだ選挙にいこう :2006/02/12(日) 18:02:24
さっぱりわからんけど

C列を =A1&B1 にして"主演男優ROBERT"で検索、とかで駄目なん?


837名無しさん@そうだ選挙にいこう :2006/02/12(日) 18:15:12
んんん?
オートフィルタをオンにして、
A列から「男優」を選んで表示された一覧の中からB列の「Robert」を選べば
良いような気もするけど、式じゃないと拙いん?

838831 :2006/02/12(日) 21:11:56
>>836,837
すいません。質問って難しいですね…orz
勿論、自動でシート1の方に入力されるようにしたいのです。

    A        B         C
1  作品賞   Chicago   Rob Marshall
2  監督賞  The Pianist Roman Polanski
3  男優賞  The Pianist  Adrien Brody
4  女優賞   The Hours  Nicole Kidman

この表をから、
たとえば映画「ピアニスト」の男優は賞を取ったのか、取ったのなら誰なのか、を調べたいのですが、
「ピアニストで普通にMATCH検索すると、同じタイトルが「監督」にもあるので無理ですよね
ですので、A列が男優でありB列が「ピアニスト」であるC列のセルを参照する方法があるのかな?
と思ってるのですが…
あくまでも式でです、手動で検索すればもちろん簡単に出てきますが、
シート1を変更しても、シート2を変更しても、両方に反映されるようにしたいのです。




839名無しさん@そうだ選挙にいこう :2006/02/12(日) 22:16:19
完全一致で結果は1つだけ見つければいいなら
A5,B5に検索したいデータを置いてあるとして
=INDEX(C1:C4,MATCH(1,(A5=A1:A4)*(B5=B1:B4),0))
と入力してCTRL+SHIFT+ENTER

D列に
=if(and(a1=??,b1=??),1,0)
..
等の作業列を作ってそこを検索とかの方がいいと思うけど

840名無しさん@そうだ選挙にいこう :2006/02/12(日) 23:44:21
Excel2003ですが、同一ブックで他のシートのセルの値を参照するには
どうすればいいのでしょうか?

841名無しさん@そうだ選挙にいこう :2006/02/12(日) 23:52:25
=Sheet1!A1

842831 :2006/02/13(月) 00:04:25
>>839
それです!
それこそ私の求めていた答え!
ありがとうございます。


843840 :2006/02/13(月) 00:05:34
>>841
ありがとうございます。

844名無しさん@そうだ選挙にいこう :2006/02/13(月) 00:52:36
マクロを使ってシート見出しの色を変える方法を教えてください。
たとえばシート1に見出しの色を変えるマクロを登録して、そのシートをコピーして、シート2という名前をつけたとして、
シート2でそのマクロを実行しても、シート1の見出しの色が変わってしまいます。

845844 :2006/02/13(月) 00:58:00
すまんこってす。自己解決しました。
ActiveWorkbook.ActiveSheet.Tab.ColorIndex = 4
って事で、お騒がせしました。

846名無しさん@そうだ選挙にいこう :2006/02/13(月) 09:16:29
>>829
もう見てないかな?

Office Onlineの英語ページを表示する
→画面の一番下あたりにある「Office Worldwide」をクリック
→「United States(米国)」を「Japan(日本)」に変更
→「Remember this selection」にチェックを付けて「Go」をクリック

これでExcelを一度終了し、再起動するとちゃんと日本語ページに行く。
少なくともうちではそうなる。

847765 :2006/02/13(月) 11:34:59
>>767
わかりやすい情報、ありがとうございます。
Excel97を探してみます。

>>769
Binaryエディタで見るのが違法なのでしょうか?
自分で作った物ですし、リバースエンジニアリングをしてるわけでもないのですが…。
違法であるのなら以後、こういう事は止めます。


848名無しさん@そうだ選挙にいこう :2006/02/13(月) 12:11:06
39022を表示形式で11/ 1と表示させる方法をお願いします。

849名無しさん@そうだ選挙にいこう :2006/02/13(月) 12:29:29
>>848
ユーザー定義の表示形式で「m/d」だよっ☆

850名無しさん@そうだ選挙にいこう :2006/02/13(月) 12:41:59
インストールCD出してくんのめんどいから適当に言うけど
古いファイル形式とかよそのメーカーのオフィスソフトのファイルとかを
読み込むためのコンバータって追加インストールできなかったっけ

851名無しさん@そうだ選挙にいこう :2006/02/13(月) 12:54:34
インストールオプションのExcel項目下にはコンバータは無く
Office共有機能のコンバータ項目下には文書用しか無いね。

852848 :2006/02/13(月) 13:03:58
>>849
すいません。説明不足でした。
例えば11/11ならそのまま表示し、1桁の数値は11/ 1のようにmm/ddで0を消すことは可能でしょうか?

853名無しさん@そうだ選挙にいこう :2006/02/13(月) 13:08:35
表示形式では無理

ってこれも相当既出だがテンプレには載ってなかったんだな

854848 :2006/02/13(月) 13:24:16
>>853
そうですか。ありがとうございました。
同じ事やろうとした人が結構いるみたいですね。

855名無しさん@そうだ選挙にいこう :2006/02/13(月) 15:18:42
普通にm/dで11/1、mm/ddで11/01にならないか?

856名無しさん@そうだ選挙にいこう :2006/02/13(月) 15:20:06
あースペース入れるってことか失礼

857名無しさん@そうだ選挙にいこう :2006/02/13(月) 15:21:29
11/01の「0」の所にスペース入れたいってことだろ

858名無しさん@そうだ選挙にいこう :2006/02/13(月) 16:24:15
A1からA2000までの、奇数番目のセルを選択するにはどうすればいいですか?
マクロで
Range("A1", Range("A1").End(xlDown)).Select
Set rg = Selection
For Each rg In rg
奇数番目.select
Next rg
みたいなのを考えたのですが、よくわかりません。
もっと簡単にやる方法とかありますか?

859名無しさん@そうだ選挙にいこう :2006/02/13(月) 16:40:58
質問させてください。

消費税込の販売価格から、商品価格と消費税に分けたいのですが、
計算方法が分かりません。

販売価格  商品価格  消費税
 10500    10000     500
  ↑
自分で数値を入力するのは「販売価格」のセルです。
商品価格の部分の計算方法が分かりません。
よろしくお願いします。

860名無しさん@そうだ選挙にいこう :2006/02/13(月) 16:41:18
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

Cancel = True
If Target.Row > 4 Then
Select Case Target.Column
Case 2

Dim i As Integer
Dim lastrow As Long
With Worksheets("摘要表")
lastrow = .Range("b65536").End(xlUp).Row
For i = 4 To lastrow
If .Cells(i, 2).Value = ActiveCell.Value Then
入力フォーム.Show
Else
Call 区域入力
End If
Next i
End With

case 3
(略)
End With
End Select
End If
End Sub

以上のコードなのですが、ワークシートAで右クリックした際に
摘要表ワークシートのB列五行目以降と、右クリックしたアクティブセルを
for nextと変数 i を使用し、比較して同じものがあった場合、「入力フォーム」を開きたいのですが
このコードだと正しく比較されずサブルーチン区域入力に進んでしまいます。Next i の位置を変えるとnextに対してのforがありませんというエラーになります
どこかが間違っていると思います。正しい記述の解る方、どうぞご教示ください。よろしくお願いします

861名無しさん@そうだ選挙にいこう :2006/02/13(月) 17:10:49
>>859
A1=販売価格
商品価格=A1/105*100
消費税=A1/105*5

862859 :2006/02/13(月) 17:14:49
>>861
おお!これです。
ありがとうございます。

863名無しさん@そうだ選挙にいこう :2006/02/13(月) 17:28:58





みなさん、>>1のに書いてあること読めますか?


> ▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
> ★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
> ★2 要望は具体例や図を使って明確かつ具体的に。
> ★3 質問前に>>2-20あたりの注意書きやQ&Aも読もう。
> ★4 質問テンプレは必須じゃないけど、
>    OSやExcelのバージョンやVBAの可否など(下記テンプレ1〜4の情報)は必須。


日本語読めない子には日本語で回答しても無駄になるのでここではお断りしてます、、、、、って
日本語読めな子には日本語で書いても伝わらないかw







864名無しさん@そうだ選挙にいこう :2006/02/13(月) 19:24:35
>>860
Cancel = True
の所にいったんブレークポイント付けて、思ったような分岐に
なってない場所を調べてみ。付け方はヘルプでも調べて。
左のほうクリックして丸つけるだけなんだけどな。

マクロが一旦停止状態になったら[F8]キーを押すと1行ごと
実行して一時停止するから、それで変な場所を特定して。

865名無しさん@そうだ選挙にいこう :2006/02/13(月) 19:29:29
>>858
Dim r As Range, i As Long
Set r = Range("A1")
For i = 3 To 2000 Step 2
Set r = Application.Union(r, Cells(i, 1))
Next
r.Select
とか?遅いけどこんな感じでまとめて選択できるんじゃね?

866名無しさん@そうだ選挙にいこう :2006/02/13(月) 19:52:58
>>864
レスありがとうございます
ブレークポイントをつけて、調べてみたところ

1 For i = 4 To lastrow
2 If .Cells(i, 2).Value = ActiveCell.Value Then
3 入力フォーム.Show
4 Else
5 Call 区域入力
6 End If
7 Next i
8 End With

2行目で、最初に比較した値が一致して、if文がtrueだった場合は
問題なく3が実行されます。しかしそこで一致しなかった場合4,5と進んでしまうようです
本当は変数iを1づつ加算することで1行目の範囲を全て比較させて、それらが全てfalseだった場合に
5行目のサブルーチンを呼びたいのです。7行目のnext iの位置を3行目と4行目に入れてみましたが
「nextに対応するforがありません」というエラーが出てしまいます。。。
何故そのエラーが出るのかわからなくて困っています。原因の可能性を指摘してくださるだけでも
歓迎ですのでレスが頂けたら有難いです。よろしくお願いします


867名無しさん@そうだ選挙にいこう :2006/02/13(月) 19:54:45
×3行目と4行目に
○3行目と4行目の間に

訂正します

868名無しさん@そうだ選挙にいこう :2006/02/13(月) 20:47:28
自己解決しました
下記のように、nextの前にend ifを入れたら正しく作動しました
本当にありがとうございました

1 For i = 4 To lastrow
2 If .Cells(i, 2).Value = ActiveCell.Value Then
3 入力フォーム.Show
4 End If
5 Next i
6 Else
7 Call 区域入力
8 End With

869名無しさん@そうだ選挙にいこう :2006/02/13(月) 20:59:17
たびたび失礼
上のレスの6行目は不必要でした


870名無しさん@そうだ選挙にいこう :2006/02/13(月) 23:43:19
VBAで上書き確認のメッセージを出さずにファイルを保存する方法はありませんか?

871名無しさん@そうだ選挙にいこう :2006/02/14(火) 00:11:09
alt,F,Sで上書き保存になるからそれを新しいマクロの記録でやってみるとか

872名無しさん@そうだ選挙にいこう :2006/02/14(火) 00:27:35
>>870
あるよ

873名無しさん@そうだ選挙にいこう :2006/02/14(火) 00:28:23
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel2002sp3
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否


すいませんが質問です。100%積み上げ縦棒で集計結果のグラフを作っていましたが、
2回目との比較グラフを作成しなければならなくなりました。
「100%積み上げ縦棒」で、「集合縦棒」のように比較したグラフを作成したのですが、出来ないのでしょうか?
1回目と2回目の集計結果を比較したいのです。
とりあえず、横に並べてみましたが、1回目と2回目のグラフの間にどうしても間隔が空いてしまい、
あまり見栄えがよくありません。
どうすればいいでしょうか?



874名無しさん@そうだ選挙にいこう :2006/02/14(火) 00:37:38
データ系列の書式設定でオプションの間隔を0に

875名無しさん@そうだ選挙にいこう :2006/02/14(火) 00:38:53
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類         .】 Windows2k
【2 Excelのバージョン   】 Excel2k
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否(相手がマクロ嫌いなので……)
【5 検索キーワード     】 Excel 差分

説明が苦手なんで、例え話でいきます。

まず、元のExcelファイル「A」があります。
で、それを複数の人が同時に編集を加えて、それぞれが「AB」「AC」「AD」を作ったとします。
で、その三つのファイルを合わせて「ABCD」っていう風にするのに、効率のいい方法はありませんか?

よろしくお願いします。

876870 :2006/02/14(火) 00:43:23
>>871
できた。ありがとう

877名無しさん@そうだ選挙にいこう :2006/02/14(火) 00:47:39
>>875
そんなことできんの?

878名無しさん@そうだ選挙にいこう :2006/02/14(火) 00:50:37
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 共通関数 参照設定 ユーザ定義型

VBAで、複数のブックから呼び出すような共通関数を作りたいと思っています。
ただし、その関数の引数にはユーザ定義型を指定します。

共通関数用のブックを作成し、その中の標準モジュールで共通関数を作り、
他のブックから参照設定で共通関数を呼び出すようにしたのですが、
引数にユーザ定義型を持つ場合、その定義は関数を呼び出す側、呼び出される側
両方にしないとダメなのでしょうか。
あるいは、他にやり方があるのでしょうか。

どなたかご教授、よろしくお願いします。

879名無しさん@そうだ選挙にいこう :2006/02/14(火) 00:51:42
>>875
何をどう合わせるのか不明だし、VBA無しだと手作業でコピペくらい

880名無しさん@そうだ選挙にいこう :2006/02/14(火) 01:03:58
>>875
共有フォルダかどっかにおいてあるxlsファイルを複数のユーザーが同時に開いて
作業を行うということなら[ツール]-[ブックの共有]でできる。
xlsのレプリカを作成して各ユーザーに配布し、あとで集めて同期を取るって
ことなら、AccessだとできるけどExcelは知らない

881875 :2006/02/14(火) 01:07:24
>>879さん

説明がわかりにくくてすいません。

具体例で言うと、2者がおなじExcelのファイルを持っていて、
説明がしやすいように、そのファイルは何も書いていないものとします

AさんがA1のセルに「A」と書きました。
BさんがB1のせるに「B」と書きました。
このとき、A1のセルに「A]と書かれたものとB1のセルに「B」と書かれたものの2種類のExcelファイルが存在します。
で、このファイルをあわせて、A1のセルに「A」、B1のセルに「B」と書かれた一つのファイルにする、って言うものです。

やっぱり、コピペするっきゃないんでしょうか…………

882873 :2006/02/14(火) 01:17:40
>>874さん
ギャオーーー!!
ありがとうございます。大好き(ハァト

883名無しさん@そうだ選挙にいこう :2006/02/14(火) 10:20:01
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 初心者
【4 VBAでの回答の可否】 可

sheet1のA1セルに挿入→図→ファイルから で「***.wmf」ファイルを貼り付けています。
図はA1セルに合わせてサイズを変更しています。

コマンドボタンを配置して、ボタンを押すとA1セルに張り付いている図が
sheet2のアクティブセルに貼り付くようにしたいのですが、貼り付けすると
セルからずれて張り付いてしまいます。

下記はマクロの記録で取った動きです。

  Sheets("Sheet1").Select
ActiveSheet.Shapes("Picture 1").Select
Selection.Copy
Sheets("Sheet2").Select
Range("C1").Select
ActiveSheet.Paste
Selection.ShapeRange.IncrementLeft -143.25 ←こんな風に手作業で位置を修正しなくてはいけません。
Range("A2").Select

位置の修正をしないでいいように、うまくセルに合わせて貼り付けるにはどうしたらよいでしょうか?
ちなみにsheet1のセルサイズとsheet2のセルサイズは合わせてあります。

884名無しさん@そうだ選挙にいこう :2006/02/14(火) 11:52:50
(C)と打つと,○の中にCと
勝手に変換されてしますのですが
どのように修正すればよいのでしょうか

885名無しさん@そうだ選挙にいこう :2006/02/14(火) 11:53:32
>>884
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に>>2-20あたりの注意書きやQ&Aも読もう。
★4 質問テンプレは必須じゃないけど、
   OSやExcelのバージョンやVBAの可否など(下記テンプレ1〜4の情報)は必須。


886884 :2006/02/14(火) 12:05:47
ツール→オートコレクトで解決しました。
ありがとうございました

887名無しさん@そうだ選挙にいこう :2006/02/14(火) 12:10:56
入力規則で作ったプルダウンメニューを作ったのですが、
▼ボタンを押して出てくる選択肢のリストの長さを変更することは可能でしょうか?
現在は1ページあたり8項目まで表示されています。

【1 OSの種類         .】 Windows2000 SP4
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 プルダウン(プルダウンメニュー)の長さ(大きさ 幅)

888名無しさん@そうだ選挙にいこう :2006/02/14(火) 12:16:49
>>887
できないよ

889名無しさん@そうだ選挙にいこう :2006/02/14(火) 12:26:33
>>883
たぶん貼り付けたあとにアクティブセルのtopとleftに合わせれば
いいんじゃないかな?

Sheets("Sheet1")..Shapes("Picture 1").Copy
Sheets("Sheet2")..Select
Sheets("Sheet2")..Paste
Selection.Top = ActiveCell.Top
Selection.Left = ActiveCell.Left

890名無しさん@そうだ選挙にいこう :2006/02/14(火) 13:08:57
ずーっと2,180円キャンペーンと併用して1年目平均 \1,574/月に!

http://blogs.yahoo.co.jp/tkitatokyo/MYBLOG/yblog.html?fid=30807&m=lc


891名無しさん@そうだ選挙にいこう :2006/02/14(火) 13:20:52
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

すみませんが質問させてください。

csvファイルで、"15-8"と入っているファイルを
読み込むとEXCELでは、8月15日と変換されます。
15-8という文字列そのままに読み込むには、どうしたら良いでしょうか?
もし分かりましたらおしえてください。


892名無しさん@そうだ選挙にいこう :2006/02/14(火) 13:48:56
>>891
データ>外部データの取り込み>データの読み込み、を使い
区切り文字を「カンマ」に変更。
日付に化ける列を「G/標準」から「文字列」に変更して読み込む。

893名無しさん@そうだ選挙にいこう :2006/02/14(火) 13:55:36
>>892

出来ました。
ありがとうございました。


894名無しさん@そうだ選挙にいこう :2006/02/14(火) 14:39:46
一通り見て確認したものの 検索語がよくわからないため既出かもしれませんが…
よろしくお願いします
【1 OSの種類         .】 Windows 2000
【2 Excelのバージョン   】 Excel 2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 セレクト 選択
     A                A
 ┌────┬─┐     ┌────┬─┐
1│        │▼│  → 1│        │▼│
 └────┴─┘     ├────┴─┴──┬─┐
            ↑        │甘口カレー         │  │
           クリック      │柚子ゼリー←クリック│  │
                     │リンゴゼリー       │  │
                     └─────────┴─┘
                     ↓
                      A 
                  ┌─────┬─┐
                 1│柚子ゼリー │▼│
                  └─────┴─┘

上のAAのように セル右端に▼ボタンを出し それをクリックすると商品名リスト(別
シートで作成済み)が現れ 商品名を選択すればその商品名がセルに入力されたと
判断されるようにしたいのですが このような方法は可能でしょうか?

商品名を検索値としてVLOOKUPを使用する予定であること 依頼先から受けるデータ
が毎回同じ商品名とは限らないこと(「柚子ゼリー」であったり 「ゼリー 柚子」で
あったり) そして新任の人に引継ぎする必要があることから どうしても選択型式で
セルを入力したいのです

検索した限りではその方法が見つからないのですが やはり不可能なのでしょうか?
もし可能でしたらその方法をご教授いただけると幸いです

895887 :2006/02/14(火) 14:39:51
>>888
残念(´・ω・`)
ありがとうございました(・∀・)

896名無しさん@そうだ選挙にいこう :2006/02/14(火) 14:48:46
>>894
入力規則のリストじゃダメなの?
それとも、これすら調べ付かなかったとか?

897名無しさん@そうだ選挙にいこう :2006/02/14(火) 14:49:25
>>894
簡単なのは入力規則を使うことでしょうね
セルを選択してデータ、入力規則、入力値の値をリストを選択する
その中に項目を入力してカンマで区切れば望んだものに近い動作が出来ます
ただしこれは柔軟性がない。普通のセル入力で、設定した項目以外が入力できなくなるなどの
問題点があり実務的には使いにくいでしょう

使いやすいものを作ろうとすればVBAですが、、、結構ややこしいよwwww

898894 :2006/02/14(火) 14:50:33
>>895さんありがとう
自分の探していた物が「入力規則」である事がわかりました
壮大なAAまで作ったのにすぐ手前のレスに答えがあったとは…(´・ω・`)
回線切って首吊って来ます

899名無しさん@そうだ選挙にいこう :2006/02/14(火) 14:54:30

> ただしこれは柔軟性がない。普通のセル入力で、設定した項目以外が入力できなくなるなどの
> 問題点があり実務的には使いにくいでしょう
設定次第でリストの値以外も入力できますが、何か?
柔軟性が無いのは897自身ってことだね

900897 :2006/02/14(火) 14:58:29
そうなんや
知らんかったww


901883 :2006/02/14(火) 15:01:57
>>889

うまくいきました。

ありがとうございました。


902名無しさん@そうだ選挙にいこう :2006/02/14(火) 16:00:46
>>899
でもソートとかはたしかできないべ

903名無しさん@そうだ選挙にいこう :2006/02/14(火) 16:06:16
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 初心者
【4 VBAでの回答の可否】 可

A1セルに ”X”または”I”または”D”の文字を含む単語が入力されたとき(たとえばDOWNとか、IBOXとか)
A2セルに ”LOVE” と表示されるようにしたいのですが、どうしたらよいでしょうか?


904名無しさん@そうだ選挙にいこう :2006/02/14(火) 16:12:57
>>899
何ができて何ができないか調べてからおっしゃった方がいいですよ


905名無しさん@そうだ選挙にいこう :2006/02/14(火) 16:36:21
普通に入力規則のエラーメッセージタブの設定で切り替えられるじゃん

906>>903 :2006/02/14(火) 16:39:48
=IF(AND(ISERR(FIND({"X","I","D"},A1))),"","LOVE")

907名無しさん@そうだ選挙にいこう :2006/02/14(火) 16:44:30
>>902
どこにソートなんて書いてあるの?


>>904
どこか「できる←→出来ない」が反転してる部分がある?

908894 :2006/02/14(火) 16:49:45
すいません >>894です 首吊ってきました
できるできないの議論がすこしあるので 首吊ったくせに甘えてもう一つ
質問してもよろしいでしょうか

ttp://www.eurus.dti.ne.jp/~yoneyama/Excel/n-kis.htm#list3
ttp://www.eurus.dti.ne.jp/~yoneyama/Excel/n-kis.htm#list4
この二つを同時にやろうと思ったのですが上手くいきません
後者のほうを設定すると二つ目のプルダウンが選択できなくなります

商品数が多いので分野毎に分けようと思い前者を 各分野毎に商品数が異なる&今後
新規商品登録が増えるだろうと言うことで後者を導入したいのですが…
これは入力規則ではできないと考えるべきでしょうか?
VBAならできるのでしょうか… でもマクロの実行もしくはボタンのクリックが必要
になりますよね…
アホな僕にアドバイスいただけたら幸いです



909名無しさん@そうだ選挙にいこう :2006/02/14(火) 16:50:22
>>907
>どこにソートなんて書いてあるの?
ぐぐれってことじゃない?
それにできないのはソートだけじゃないし・・・

910名無しさん@そうだ選挙にいこう :2006/02/14(火) 16:53:29
やれやれ。Excel覚える前に謝り方のお勉強しろよ
>>894がじゃないよ。念のため

911名無しさん@そうだ選挙にいこう :2006/02/14(火) 16:54:26
【1 OSの種類         .】 WindowsXP Pro
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Index,Match、max min excel 比較

エクセルで毎日証券口座残高を管理しているのですが、
最高に儲けていたときからどれくらい地獄を見たのかを計算させる方法が分からず困ってます。

Min関数を使うと口座に一番金が残ってないときが表示されるので初日のデータとなり、
一番儲けている日よりあとの日をIndex(a1:a1000(match(Min関数で探すと、一番儲ける直前で100万赤字の
地獄を見てるのに、たった3万ぐらいの赤字が選ばれてしまいます。
何か良い方法がありましたら教えてください。


912d :2006/02/14(火) 16:57:05
>>903
シートモジュールに下記のコードを貼り付けてください。

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Cells.Count <> 1 Then Exit Sub
  If Target.Address(0, 0, xlA1, 0) <> "A1" Then Exit Sub
  
  Application.EnableEvents = False
  
  With Target
    If .Value Like "*[XID]*" Then
      .Offset(1).Value = "LOVE"
    Else
      .Offset(1).Value = ""
    End If
  End With
  
  Application.EnableEvents = True
End Sub

913名無しさん@そうだ選挙にいこう :2006/02/14(火) 16:58:33
バレンタインデーのときぐらい
ケンカはやめないか?

914名無しさん@そうだ選挙にいこう :2006/02/14(火) 17:35:02
なぜTarget.Cells.CountではCellsを入れてるのに
Target.AddressやTarget.Valueを
Target.Cells.Address、Target.Cells.Valueとしないのか気になる。

あと、A1以外の変更はIf Target.Addressで弾いてるんだから
EnableEvents = False要らないのでは?
でもEnableEvents = Falseが必要かどうかを処理内容から判断できないうちは
Changeイベントでの代入や消去操作は一律してEnableEvents = False入れちゃった方が
問題起きないかな?

915名無しさん@そうだ選挙にいこう :2006/02/14(火) 18:13:49
・・・失礼

916名無しさん@そうだ選挙にいこう :2006/02/14(火) 18:17:19
>>911
MAXで最大値を得てそれ以降の日からMINで探して引く
それ以降の日はMATCHとOFFSETなどを組み合わせれば求まる

917897 :2006/02/14(火) 18:27:07
>>908
そうですよね。実務で使いたい場合、セルAに任意で入力した値によって
リストAに対応した内容が表示され、そこで選択した項目によってリストBの内容が表示される。
みたいな使い方をしたいんだと思います。
それをやろうとすると、入力規則単体ではできませんし、>>908のリンク先の内容もかなり高度です

私が例のコードを挙げることはできますが、応用して業務に利用されたいのであれば
VBAを勉強される事をお勧めします。お勧め図書は秀和システムズのVBA本ですww



918897 :2006/02/14(火) 18:36:05
http://www.shuwasystem.co.jp/cgi-bin/detail.cgi?isbn=4-7980-0642-4
私が持ってるのはこれです
VBAを利用して、複数のリストを連動させるコードや
データの集計、印刷等業務に応用できる技術が沢山載っている。
発注管理、在庫管理、販売管理などのサンプルのエクセルファイルもついていて、コードも自由に書き換えられます

この本の内容を事細かに2chで説明するのは難しいので
これを購入して、解らない部分を質問するのであれば私も答えられる範囲なら答えられますw


919名無しさん@そうだ選挙にいこう :2006/02/14(火) 18:50:48
宣伝乙

920名無しさん@そうだ選挙にいこう :2006/02/14(火) 19:05:54
初心者です。
エクセルで数式をコピーしたのですがコピー元の数値がそのまま表示され、
ツールバーの下に表示された式をクリックすると計算値がでてきます。
どこの設定の問題でしょうか?
親切な方よろしくお願いします。
親切でない方、初心者スレをおしえてください。

921名無しさん@そうだ選挙にいこう :2006/02/14(火) 19:14:31
>>920
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に>>2-20あたりの注意書きやQ&Aも読もう。
★4 質問テンプレは必須じゃないけど、
   OSやExcelのバージョンやVBAの可否など(下記テンプレ1〜4の情報)は必須。

922名無しさん@そうだ選挙にいこう :2006/02/14(火) 19:16:42
920です。
解決しました。
どうもお騒がせしました。


923名無しさん@そうだ選挙にいこう :2006/02/14(火) 20:03:42
>>906

ありがとうございます、助かりました。

924名無しさん@そうだ選挙にいこう :2006/02/14(火) 20:44:37
>>916
レスありがとうございます。

それだと駄目なのですよ。
たとえば、
1/1  1000
1/2  1200
1/3  1300
1/4  500
1/5  1000
1/6  1200
1/7  1400
1/8  1300

というデータの場合、
最大値以降の一番落っこちたデータとなると1/7以降になってしまうので1/8の1300になります。
でも一番地獄を見てるのは1/4日の-800の500でして、これを表示させたいのですが、
うまい方法がないもので。

良い方法は無いでしょうか?

925名無しさん@そうだ選挙にいこう :2006/02/14(火) 20:48:54
前日比で一番上がった日や下がった日を調べたいのかな


926名無しさん@そうだ選挙にいこう :2006/02/14(火) 20:53:25
>>924
質問変わってるし・・・


927名無しさん@そうだ選挙にいこう :2006/02/14(火) 21:13:36
>>914
Application.EnableEvents = Falseは無くても動くだろうけど、厳密にはあった方がいい。
前の2行の判定を1回で済ますことができる。




928名無しさん@そうだ選挙にいこう :2006/02/14(火) 21:29:13
>>924
作業列としてC列にその日以降の最小値
D列にB列との差
でD列の最大値を求める

929名無しさん@そうだ選挙にいこう :2006/02/15(水) 01:47:50
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 時間


ネットワークアナライザのキャプチャ結果をcsvで開くと経過時間という項目が表示されるのですが、

時 分 秒
000:05:01.747452

のように表示されてしまいます。
これを秒だけに換算して

301.747452

と表示したいのですが、何か方法はありますでしょうか?
よろしくお願いします

930名無しさん@そうだ選挙にいこう :2006/02/15(水) 02:59:22
>>929

時間・分が3桁・2桁の固定、
その数値が入っているセルをA1と仮定。

=VALUE(MID(A1,1,3))*3600+VALUE(MID(A1,5,2))*60+VALUE(RIGHT(A1,LEN(A1)-7))

931894=908 :2006/02/15(水) 09:06:43
>>917-918=>>897さん
遅くなってすいません ご丁寧に回答いただきありがとうございました
やっぱり入力規則の限界ですね…

VBA やってみたい気もするんですが そもそも>>894>>908の内容は僕が
退職することによる引継ぎをスムーズにする事が目的で これが達成でき
たらVBAはまたしばらく使わないんですよね
でもこの後更にやりたいこと(商品の個数に合わせて報告書を自動作成す
る しかも商品の種類ごとに1枚ずつ)があって そこでは絶対VBAが必要か
らなぁ…
そこで躓いたらこの本の購入を検討します ありがとうございました!

932名無しさん@そうだ選挙にいこう :2006/02/15(水) 13:14:53
時間ごとに変化する値をリアルタイムでグラフにしたいのですが、
excelを用いて現在の時刻で1秒ごとにセルに時刻をおとしたいのですが
どのようにすれば実現できますでしょうか?


例)
13:25:13 16200
13:25:14 16198
13.25:15 16201






933名無しさん@そうだ選挙にいこう :2006/02/15(水) 13:31:23
>>932
VBA使え

934名無しさん@そうだ選挙にいこう :2006/02/15(水) 21:58:14
こういった複合関数は、どう関数を組み立てればよいですか?

D1が0以外なら A1=B1-C1
1が0なら 無条件でA1は0

935名無しさん@そうだ選挙にいこう :2006/02/15(水) 22:05:13
>>922,934
テンプレ嫁

936名無しさん@そうだ選挙にいこう :2006/02/15(水) 22:45:38
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】

もし、A1に入っている文字列に「スキー」の文字列が含まれているなら「○」を、
含まれていなければ「×」をB1に返せ、というような関数はありますか?

937名無しさん@そうだ選挙にいこう :2006/02/15(水) 22:58:27
ありません。
IFとFINDやSEARCHを組み合わせましょう。

938934 :2006/02/15(水) 23:27:19
>>935
THX
テンプレ読んで、色々考えて、なんとか解決できました。
他にスマートなやり方があるかもしれないけど、
A1=B1-C1の他に、E1=A1を余分に一本立てて、
=IF(D1=0,0,E1)でなんとか解決しました。

939名無しさん@そうだ選挙にいこう :2006/02/16(木) 00:42:23
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 初心者
【4 VBAでの回答の可否】 可

標準モジュールに「テスト」というマクロを作成しています。
下記のようにsheet1をアクティブにしたら「テスト」が動きます。

   Private Sub Worksheet_Activate()

      Application.Run "test.xls!テスト"
                 ~~~~~~   
   End Sub

そこで質問です、このブックは「test.xls」なのですが
別名で保存する(「test_a.xls」などにする)と
当然エラーになってしまいます。
エラーにならないようにはどうしたらよいのでしょうか?

940名無しさん@そうだ選挙にいこう :2006/02/16(木) 00:56:48
ThisWorkbook.FullNameとかで名前がわかる
とかそういうこと?

941名無しさん@そうだ選挙にいこう :2006/02/16(木) 01:04:50
そもそも標準モジュールのプロシージャ動かすのに
なんでファイル名なんか指定する必要があるんだ?

942名無しさん@そうだ選挙にいこう :2006/02/16(木) 01:09:23
>>865
助かりました。ありがとうございました。

943929 :2006/02/16(木) 01:13:03
>>930
できました。
本当にありがとうございました。

944939 :2006/02/16(木) 01:35:07
>>940,941
ありがとうございます。

Private Sub Worksheet_Activate()

      Application.Run "テスト"
                ~~~~~~   
End Sub

にしたら難なく動きました!いらん事してましたね・・・

標準モジュールの動かし方がわからなかったので、
マクロの記録をとってみたら"test.xls!マクロ"となっていたので
そうしなくてはいけないのかとおもってました。

945名無しさん@そうだ選挙にいこう :2006/02/16(木) 01:58:10
Private Sub Worksheet_Activate()
  テスト
End Sub

だけでいいんじゃね?

946705 :2006/02/16(木) 03:10:00
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
このユーザーフォームのコードを実行したとき
textbox1に101以上の数値を入れたとき
commandbutton1のフォーカスしないのはナゼ?

ttp://venus.aez.jp/uploda/index.php?dlpas_id=22490
pass:test

947名無しさん@そうだ選挙にいこう :2006/02/16(木) 04:40:56
book内の全シートを個別のシート名を使わずに範囲指定する方法はありますか?

948名無しさん@そうだ選挙にいこう :2006/02/16(木) 08:13:50
>>946
たぶん圧縮失敗してる
ロダに表示されてるサイズ118byteってのもおかしいし、
落として解凍すると0byteのtest01.xlsが作成される
解凍失敗したかと思い、書庫閲覧モードで見てみたが、
やはり0byteファイルとして格納されてるので間違いない

ちなみにシートと連動してないならフォームモジュール(.frm)だけでもいいよ


>>947
VBAで出来る
>>2※を読んだ上で自分でやれ

949936 :2006/02/16(木) 09:14:06
>>937
どうもっす。

うーむ、、、どうするんだろ

950名無しさん@そうだ選挙にいこう :2006/02/16(木) 09:45:20
>>949
> IFとFINDやSEARCHを組み合わせましょう。

951名無しさん@そうだ選挙にいこう :2006/02/16(木) 12:56:41
>>936
Windowsで言えばスタートボタンからソフトを起動する方法が分からないレベルの話だから
それが自分で解決できないようならVBA使うのは無理だと思うよ

まずは本屋行って適当な入門書一冊買ってきたほうがいいと思うぞ

952名無しさん@そうだ選挙にいこう :2006/02/16(木) 12:57:16
↑VBAじゃねえやワークシート関数だ

953名無しさん@そうだ選挙にいこう :2006/02/16(木) 13:11:10
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

今週、祝日があるか判定したい。祝日は別シートに日付を入力している。
EXCELを開く日が毎日ではないため、その日を基点に+−して1日ずつ祝日判定するしかないのでしょうか?

954名無しさん@そうだ選挙にいこう :2006/02/16(木) 13:19:18
MATCHで照合の型を以上以下の2通りしらべてWEEKNUMが同じかチェック
とか色々あると思う

955名無しさん@そうだ選挙にいこう :2006/02/16(木) 15:43:21
ふと疑問に思ったので、叩かれるの覚悟で質問させて下さい。
同じ単語はすべて同じハイパーリンクにすることが出来ますか?
いちいち全てに設定しなくとも、簡単に出来ますかという質問です。

956名無しさん@そうだ選挙にいこう :2006/02/16(木) 16:00:10
VBA使えば出来ますという回答です

957名無しさん@そうだ選挙にいこう :2006/02/16(木) 16:43:59
Excel2002を使っているのですが
音声読み上げのタスクを立ち上げても
アイコンが灰色になっててクリックを受け付けません。
何か追加のソフトをダウンロードする必要があるのでしょうか?

958759 :2006/02/16(木) 16:51:37
>>759 ですがやっぱり改善できません。
不便です、
・・・どなたかお分かりになる方、
よろしくお願いします。

959名無しさん@そうだ選挙にいこう :2006/02/16(木) 17:40:28
【1 OSの種類         】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    】 はい
【4 VBAでの回答の可否 】 可
【5 検索キーワード     】 −

どなたか助けてください…。
結合されたセルが「シートの保護」でうまくロックできない現象が起こってます。

@結合されたセルを「セルの書式設定」→[保護]タブ画面で「ロック」する。
A「ツール」→「保護」→「シートの保護」を選択。
B結合されていないセルを選択し「コピー」
CBでコピーしたセルを、結合されているセル@へ「貼り付け」する。
Dセルは保護されず、結合されていないセルBが上書きコピーされる。

尚、@のセルが結合されていない場合は、うまく保護されます。

宜しくお願い致しますm(_ _)m

960名無しさん@そうだ選挙にいこう :2006/02/16(木) 19:01:55
excel2002です。

A1列〜A10列まで、あいうえお順ではない文字が入っています。
これをA10〜A1となるように、左右(?)反転させたいのです。
通常の並べ替えの操作だとあいうえお順になってしまい意味がありません。
指定した特定の数セルを丸ごと並べ替えることってできるのでしょうか?

961946 :2006/02/16(木) 19:03:41
>>948
すいません再度うPしました
改めて質問です
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
このユーザーフォームのコードを実行したとき
textbox1に101以上の数値を入れたとき
commandbutton1のフォーカスしないのはナゼ?

ttp://venus.aez.jp/uploda/index.php?dlpas_id=22513
pass:test

962名無しさん@そうだ選挙にいこう :2006/02/16(木) 22:12:31
>>956
通常のやり方では出来ないのですね。
わかりました、ありがとうございます。
意味のない作業をやっているのではないことがわかっただけで満足です。

963名無しさん@そうだ選挙にいこう :2006/02/16(木) 23:44:17
先日入力規則も知らずに質問してご迷惑をおかけしたものですが また
わからないところが出てきました

【1 OSの種類         】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    】 無知ですが使ってます
【4 VBAでの回答の可否 】 可
【5 検索キーワード     】 R1C1

Sheet1のとあるセルにSheet2のとある列のセルを上から順に参照しようと
思ったのですが
ActiveCell.FormulaR1C1 = "=Sheet2!RxC1"
のようにセルを変数xで指定したいのですが 変数を入れると参照してくれ
ず うまくいきません
コピーペーストの方式にすればこれを使わずとも何とかなるのですが コピ
ーのセルとペーストのセルではシートが異なり しかも何回も繰り返すので
何かスマートじゃないなぁと思っています
絶対参照でやりたいのですが 仕様上無理と考えるべきでしょうか?
ご回答いただけたら幸いです

964名無しさん@そうだ選挙にいこう :2006/02/16(木) 23:49:03
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 初心者
【4 VBAでの回答の可否】 可

作成したユーザーファイルとか標準モジュールなど、マクロのすべてを
別のブックに丸ごとコピーしたいのですがどうしたらよいのでしょうか?

コピー先のブックに多少マクロが組まれているのですが、
不必要なので削除したいのです、
すっきり綺麗に削除するにはどうしたらよいのでしょうか?

965名無しさん@そうだ選挙にいこう :2006/02/16(木) 23:55:52
>>960

ソートしたい範囲を指定して降順でソート。
もしかして、そんな簡単なことではないの?

966名無しさん@そうだ選挙にいこう :2006/02/17(金) 00:17:10
>>963
"=Sheet2!R" & x & "C1"

>>964
2002ならモジュールの解放とかドラッグ&ドロップとかで普通にできる
2000は知らんが、多分同じだろう
ExcelやVBEの基本操作だから、ヘルプとかマニュアルとか見るべし

>>960
作業列を作って1〜10みたいに番号を振る
その列をキーにして10〜1の順で並べ替える

967963 :2006/02/17(金) 00:28:30
>>966さん

うぉおおおおお!!! できました!!! ありがとうございます!!!

検索が下手な僕にとってこのスレは神のような存在です…
みなさん こんな僕にアドバイスいただいて本当にありがとうございます

968名無しさん@そうだ選挙にいこう :2006/02/17(金) 00:30:57
Excel2002です。
集計の方法をどなたかよろしければ私に教えてください。

まず以下の表が元データです。
(カンマ区切りで表現、列は左からNumber, 担当者, 状況)

1, 鈴木, 完了
2, 田中, 作業中
3, 鈴木, 作業中 
4, 高橋, 作業中
5, 田中, 未着手
...
という風に、データがずーっと続きます。
下に続きます。

969名無しさん@そうだ選挙にいこう :2006/02/17(金) 00:33:37
質問の途中だがCOUNTIF使えばいいよと予想してみる

970名無しさん@そうだ選挙にいこう :2006/02/17(金) 00:37:30
>>968の続き)
>>968のような形式で収められているデータを、
別シートで担当者と状態別に件数の集計をしたいのです。
集計表の形式は(行と列はどっちがどっちでもいいんですが)

    未着手 作業中 完了 合計
田中
鈴木
高橋
合計
…こんな感じです。(合計欄はさすがに大丈夫です)

作業状態ごとの件数や、担当者ごとの件数はなんとか私にもできるんですが…
DCOUNTA()を使うといいのかなぁというところまでは調べられたんですが、
使い方がちょっとよくわかりませんでした。
すみませんがわかる方居ましたら教えて頂けると嬉しいです。

971名無しさん@そうだ選挙にいこう :2006/02/17(金) 00:40:24
ピボットテーブルレポートで
行見出しを担当者、列見出しを作業内容にして
値のところを要素数にすればおkかな

972名無しさん@そうだ選挙にいこう :2006/02/17(金) 01:05:59
>>971
やってみました。いとも簡単に集計テーブルができました…すごいですねこれ。

ただ、共有ファイルにして複数人でどんどん状態変えたり新しい行を作ったりするので
リアルタイム集計?というか、行を追加したり状態を変更したら件数も更新されてほしいのです。
なので、やっぱり関数かな、と・・・
更新ポチッと…でなんとかなるかもしれませんが、我侭言ってすみません。

ピボットテーブルレポートは使った事なかった(今まで存在にも気付かなかった)ので
大変良い勉強になりました。ありがとうございました。

973 :2006/02/17(金) 02:15:26
【1 OSの種類         .】 Mac0S9.2
【2 Excelのバージョン   】 Excel98
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

セルデータをコピーして他のソフト(イラストレーター8.0)に
ペーストしようと思うのですがうまくいきません。コピー後
イラストレーターをアクティブにしようとしても、アクティブになるのに
一分以上かかってしまうのです。一マスの空欄のコピペでも、
一分以上かかってしまいます。
どうしたらいいでしょうか。


974名無しさん@そうだ選挙にいこう :2006/02/17(金) 09:03:14
>>966

回答ありがとうございます。

解放をすれば削除できるんですね、
解放するなんて言葉聞き慣れないもんで気付きませんでした・・・



975名無しさん@そうだ選挙にいこう :2006/02/17(金) 10:01:08
叩かれるのを覚悟で書込みします。

【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

今までEnterキーを押しても今までは入力したセルから下↓に向かって
進んでいたのですが、昨日から何故か横右→に向かって進んでしまいます。
バグってしまったのでしょうか?サポートデスクに問い合わせたら、
Excel2000のサポートが終了して有償のなんとかかんとか...一度契約して...
等と言われ、得意の盥回しをされてしまったので困っています。
何方かご教示下さい。よろしくおねがいします。



976名無しさん@そうだ選挙にいこう :2006/02/17(金) 10:13:35
オプション(編集タブ)で横移動に設定したか、
セルをロックしていて、「次のセル」が右にあるから横に動くかだろうな。


977名無しさん@そうだ選挙にいこう :2006/02/17(金) 11:51:45
>>961
こんどはちゃんと解凍出来たんで、回答しようかと思ったけど、
マルチしてるみたいなんで回答は止めておく

978名無しさん@そうだ選挙にいこう :2006/02/17(金) 12:23:02
>>975
>叩かれるのを覚悟で書込みします。
なんでこういうことかくの?


979名無しさん@そうだ選挙にいこう :2006/02/17(金) 12:50:04
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可


セルの値が0と24の倍数以外はエラーで返したいのですが、簡単そうなのに出来ない、、、ヨロシクです。

980名無しさん@そうだ選挙にいこう :2006/02/17(金) 12:52:55
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 修行中
【4 VBAでの回答の可否】 可

A列に上から順番にデータ(数値)を入力していますが
同じ数値を入力したら「その数値はすでに使っています」
ってメッセージが出るようにしたいのですが、何か良い方法はありますか?

981名無しさん@そうだ選挙にいこう :2006/02/17(金) 13:24:50
>>979
24の倍数の場合のみTRUEを返す式を書けばいいだけじゃん
0は24の0倍なんで、特に気にする必要無いし
どの関数使うかは関数の検索やヘルプで調べな


>>980
入力規則のユーザー設定でCOUNTIFが2になった場合にエラーを返すようにすればいい
範囲は起点を絶対参照、終点を相対参照で

982名無しさん@そうだ選挙にいこう :2006/02/17(金) 13:43:18
975です。お礼が遅くなりすみませんでした。
>>976さん ご教示ありがとうございました。無事に直りました。

>>978さん みなさんにとってはあまりにも簡単な質問であろうと思ったもので…。
失礼しました。

983979 :2006/02/17(金) 14:28:17
980さん。
それがわからないのです,,,,orz

984名無しさん@そうだ選挙にいこう :2006/02/17(金) 14:55:43
>>983
つ MOD

これで解らなければ小学校やり直せ
今、小学生ならあとはママに聞け

985980 :2006/02/17(金) 15:17:33
>>981

ありがとうございます、うまくできました。

986名無しさん@そうだ選挙にいこう :2006/02/17(金) 18:31:28
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 あまり使えない
【4 VBAでの回答の可否】 可
いつもお世話になってます、また教えてください。

sheet1に、
   A|B |C|D
1 |X|00|0|AAA
2 |X|00|1|CCC
3 |空き行
4 |Y|00|1|RRR
のような感じでデータを入力しています(全て文字列です)

そして、sheet2に
  A|B |C|D
1|X|00|0|(ここにはsheet1から抽出して「AAA」と入れたい)
2|Y|00|1|(ここにはsheet1から抽出して「RRR」と入れたい)
3|X|00|2|
のようにデータが入っています(全て文字列です)、sheet1と違って順番がバラバラでD列が空き状態です。

sheet2の1行目はA列の値が「X」で、B列の値が「00」で、C列の値が「0」なので
D列にsheet1から検索して「AAA」と表示させたく、
sheet2の2行目はA列の値が「Y」で、B列の値が「00」で、C列の値が「1」なので
D列にsheet1から検索して「RRR」と表示させたいのです。
3つの条件検索に合致する物を抽出して表示させたいという事です。
簡単そうでなかなか難しく、あちこち検索してもわかりませんでした。
どうかよろしくお願いいたします。(長文失礼しました)

987名無しさん@そうだ選挙にいこう :2006/02/17(金) 19:26:00
>>986
sheet1のE列(E列が空いてなければ他の列でも良い)に
=A1&B1&C1
などと入れて、その列を条件にINDEX&MATCH
場合によっては区切り文字入れた方がいいかも

988名無しさん@そうだ選挙にいこう :2006/02/17(金) 20:02:21
>>987

INDEX関数とMATCH関数を検索して調べてみましたが、
具体的な使い方がよく理解できませんでした・・・
申し訳ありませんが、もう少しヒントをください。

989名無しさん@そうだ選挙にいこう :2006/02/17(金) 20:10:27
諦め早すぎ
自分で調べる気全然ないだろ
あるって言うなら2〜3日調べてろ


990名無しさん@そうだ選挙にいこう :2006/02/17(金) 20:11:22
>>946
特に問題なさそうだけどね・・
フォーカスしないねー
exitじゃなくてchangeだとうまくいくようだよ
それじゃダメかな?

991名無しさん@そうだ選挙にいこう :2006/02/17(金) 22:21:20
次スレ
Excel糸24553;合木目言炎戸斤 16
http://pc8.2ch.net/test/read.cgi/bsoft/1059212893/l50


992名無しさん@そうだ選挙にいこう :2006/02/17(金) 22:54:26
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可

ソルバーをアドイン、インストールしようと思ったのですが
「必要なインストールファイル E4561409.CAB が見つかりません。」と言われました。
しかしインストール時に使用したCD-ROMは紛失してしまいました。どうすればいいのでしょうか?

993名無しさん@そうだ選挙にいこう :2006/02/17(金) 23:03:18
>>992
【5 検索キーワード     】 Googleやヘルプでの検索キーワード

もう少し書き込む前にテンプレ読んだ方がいいかと・・・
他スレでも先走って聞いてるでしょ?

994名無しさん@そうだ選挙にいこう :2006/02/17(金) 23:09:26
>>992
MSに相談してみんさい
ttp://www.microsoft.com/japan/customer/infokb/Search.aspx?si=700334&ts=

995名無しさん@そうだ選挙にいこう :2006/02/18(土) 01:04:42
次スレ
Excel総合相談所 42
http://pc8.2ch.net/test/read.cgi/bsoft/1140091414/

996名無しさん@そうだ選挙にいこう :2006/02/18(土) 01:05:19
996

997名無しさん@そうだ選挙にいこう :2006/02/18(土) 01:05:51
997

998名無しさん@そうだ選挙にいこう :2006/02/18(土) 01:06:28
998

999名無しさん@そうだ選挙にいこう :2006/02/18(土) 01:06:59
999

1000名無しさん@そうだ選挙にいこう :2006/02/18(土) 01:07:30
1000
次スレ
Excel総合相談所 42
http://pc8.2ch.net/test/read.cgi/bsoft/1140091414/

10011001 :Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


戻る
DAT2HTML 0.34 Converted.