Excel総合相談所 36

このエントリーをはてなブックマークに追加
1名無しさん@そうだ選挙にいこう

Excelに関する質問は、ここで!

     /)_/)    ( ・分かる人はできるだけ回答して下さいませ。
    < ゚ _・゚> .。oO( ・回答がなくてもキレないで。催促は程々に。
  ノ) /   |     ( ・自己解決したらその解決手段を他の人の参考の為に書いてね。
  \(_,,,_,,,)

▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★要望は具体例や図を使って明確かつ具体的に。
★質問前に>>2-20あたりの注意書きやQ&Aも読もう。

▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否

※4は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
  VBAを使うのは避けたいって場合は「否」にしましょう。
  「VBAって何?」って場合はとりあえず「否」に。よくわからないけど使ってみたいってなら
  「可」にして、>>10-15あたりの解説を参考に使ってみよう。

・前スレ
 Excel総合相談所 35
 http://pc8.2ch.net/test/read.cgi/bsoft/1119886079/
2名無しさん@そうだ選挙にいこう:2005/07/18(月) 20:37:34

▼━質問時の注意━━━━━━━━━━━━━━━━━━━━
・ 現行スレ内で既出の質問が無いか、ページ内検索をしよう。
・ 図を書く場合、TABや連続する半角スペースは無視されるので注意
・ VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。
・ 不都合が出る場合は、何時からそうなったのか、どういう操作をしたときに不都合が出るのか、
 どんな挙動(エラーメッセージが出る、動かない、落ちる、など)をするのかなど詳しく書こう。
・2回目以降の質問では名前欄に初回質問の番号を入れよう。


・関連スレ

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

 VBAについて Ver.4.0
 http://pc8.2ch.net/test/read.cgi/tech/1105108229/

 ★Word/Excel (MS-OFFICE) 初心者スレッド Part23★
 http://pc8.2ch.net/test/read.cgi/pcqa/1117824634/
 
 OpenOfficeってどうなの? Part5.0.0
 http://pc8.2ch.net/test/read.cgi/bsoft/1112176139/
3名無しさん@そうだ選挙にいこう:2005/07/18(月) 20:37:41

= FAQ: 基本 =
Q:こんな関数ありませんか?
A:「関数の挿入」にある検索機能や、ヘルプの検索を利用しましょう。

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

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

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

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

= 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/07/18(月) 20:37:54

= 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/07/18(月) 20:38:02

= 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/07/18(月) 20:38:08

= FAQ: グラフについて =
Q1:データの空白部分があって、そこで折れ線が切れてしまいます。
   繋げたいのですが如何したらいいでしょうか?
A1:グラフを選択>ツール>オプション>グラフ>空白セルのプロット「補間してプロットする」にチェック

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

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


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

= FAQ: 行列の入れ替え =
Q:エクセルで作った表が横方向に多くなってきたので
  行と列を入れ替えたいのですが。
A:コピーして、適当なセルで右クリック。
  形式を選択して貼り付け→行列を入れ替える。


= FAQ: 参照するセルをセルの値で指定する =
Q:A1に「5」とか「6」とか指定する値を変えたら
  B1の関数で「C5」とか「C6」とか参照先が変わるようにできませんか?
A:INDIRECT関数を使ってみましょう。
  詳しくはヘルプで「INDIRECT」を検索


= FAQ: ブラウザの変更 =
Q:Excelでアドレスをクリックした時に開くブラウザをIEからSleipnirなどに変更したい。
A:スレ違いです。
  開きたいブラウザの設定画面でそのブラウザを通常使うブラウザに指定してください。
  (ブラウザからの設定だけではきちんと設定出来ない場合もあります)


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

= 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)
10名無しさん@そうだ選挙にいこう:2005/07/18(月) 20:38:27

★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        ←個人用マクロブックの標準モジュール

  ※ 標準モジュールを追加するには、追加したいプロジェクトツリー上で右クリックし、
     メニューから[挿入 → 標準モジュール]を選択してください。
11名無しさん@そうだ選挙にいこう:2005/07/18(月) 20:38:34

Step2-b ボタンに登録する。
 通常、イベントで動かすマクロ以外は、マクロの一覧から選択して実行しますが、
 頻繁に使う場合や、他の人が操作する場合はシート上のボタンを押して実行できるようにすると便利です。

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

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

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

★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

 ▼環境・書式
  ・ 列数を256列以上、行数を65536行以上に増やす
  ・ 条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA)
  ・ 行の高さを0.25きざみ以下の単位で指定する
  ・ 複数シートを選択して入力規則やシートの保護を設定する (VBA)
  ・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト)

 ▼数式・関数
  ・ セルの書式情報を関数式で取得する (ユーザー定義関数)
  ・ 関数式でセルの選択状態を取得する (VBA)
  ・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA)
  ・ 入力したセルの値を書き換える (VBA)
  ・ 範囲を引数にしての文字列連結 (ユーザー定義関数)

 ▼VBA
  ・ExecuteExcel4Macroの参照で空セルと0値を区別する
  ・セルの値や変数値で直接変数名を指定する
13名無しさん@そうだ選挙にいこう:2005/07/18(月) 20:39:10
終わり。
間違い、抜けがあったら指摘よろしく。
14名無しさん@そうだ選挙にいこう:2005/07/18(月) 21:05:48
15座敷荒氏:2005/07/18(月) 21:49:52
初めて質問させていただきます。

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

「スタート時刻」列と「ターン時刻」列・「休憩時刻」列・「ゴール時刻」列の3列に
それぞれ時刻が入力されていて、さらに「判定」列が空欄になっています。

スタートした時刻からターン・休憩・ゴールしたした時刻が10分以下なら
判定に○、10分以上かかった場合は×が「判定」列に入力されるようにしたいのですが
方法がみつかりません。教えていただけますでしょうか?

可能であれば3列のうち、空白or「-」があっても
他の列の値で判定するようにしたいのですが;

よろしくおねがいします。
16名無しさん@そうだ選挙にいこう:2005/07/18(月) 22:20:29
>>15
とりあえず表を書いてみようぜ。

    A        B       C       D      E
1スタート時刻  ターン時刻  休憩時刻  ゴール時刻  判定
2

ってことでいいのかな?
と、ここで一つ疑問なんだけど、休憩は時刻じゃなくて時間じゃないの?
時刻なら休憩開始と休憩終了が必要なはずだよね。
で、スタートからゴールまでの時間-休憩時間=10分以下か否かを判定したいなら
その式を条件にして>>6を参考にIF関数使えばいいだけの話だけど。

それともスタートからターンまで、ターンから休憩開始まで、とそれぞれが10分以下だったら○にしたいのかな?
どちらにしても>>15の情報だけだと、「IF関数使って」くらいしか言えることは無いかな。
17座敷荒氏:2005/07/18(月) 22:30:34
お返事ありがとうございます。

やはりIF関数でできるんですね。
本を読んでいると一度減数した値入力させる列を
用意しなくてはいけないような書かれ方がされていて;

「休憩時刻」列には休憩に入った始まりの時間が入力されています。

16さんが書いて下さった表のE列には
・B-A<=0:10且つC-A<=0:10且つD-A<=0:10であれば○、違ったら×を入れたい。
・可能であれば、BCD列のどれかが「-」や「不明」でも残りの列の時刻で判定したい。

ということでした。
ならスタートからゴールまでの時間が10分以下なら○でいいんじゃないかとも
思ったんですけど、それじゃあダメな場合も考えられるとの事で・・・;


今日のお昼から考えてて才能ないなと(/_<。)

18名無しさん@そうだ選挙にいこう:2005/07/18(月) 22:36:23
テンプレの項目、勝手にいじりやがって。
余計に鬱陶しくなったし、検索キーワードは質問者の知りたいことを推察する手がかりになることもあるんだがな。

でも、>>1乙カレー。
19名無しさん@そうだ選挙にいこう:2005/07/18(月) 22:55:13
>>17
=IF(AND(
IF(NOT(ISNUMBER(B1)),TRUE,B1-A1<=TIME(0,10,0)),
IF(NOT(ISNUMBER(C1)),TRUE,C1-A1<=TIME(0,10,0)),
IF(NOT(ISNUMBER(D1)),TRUE,D1-A1<=TIME(0,10,0))),
"○","×")

Bが数値(時刻)以外 or B-A<=0:10 且つ
Cが数値(時刻)以外 or C-A<=0:10 且つ
Dが数値(時刻)以外 or D-A<=0:10
なら○、どれかが当てはまらなければ×

条件そのまま書くとこんなもんか。でも
=IF(MAX(B1:D1)-A1<=TIME(0,10,0),"○","×")
でいいような気がする。MAX関数は空セルや文字は無視するから
B〜Dで一番大きな時刻-Aの時刻<=0:10なら○


>>18
ゴメン。本スレで意見聞こうかとも思ったけど
そういうふいんきじゃなかったので独断で突っ走ってしまった。
今は反省してる。
20座敷荒氏:2005/07/18(月) 23:02:21
うわ、IF関数について調べてる間にお答えを頂けてしまった。

19さん、どうもありがとうございます。
頂いたお答えと16さんのヒントで自分なりに
勉強して使わせていただきます。

いま試していて、ターン時刻だけのIF関数はできたところでした♪
ただ、自分の中に消化しないと意味ないと思うので参考にさせていただきます。


16さん、19さん、それから教えてくれようとした方々、
どうもありがとうございました。


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

グラフを書いて普通は系列1とか系列2となるところに、その線に対応する名前を入れたのですが
そこで、その名前に斜体と普通のフォントを混ぜたいのですが、フォント変更を一部にかけることができません。

例えば AAA(←まで普通のフォント)BBB(ここは斜体)みたいな感じで。

どうしたら直りますか?
22名無しさん@そうだ選挙にいこう:2005/07/18(月) 23:21:00
グラフの機能としては無理だろうから、
そういうオブジェクトを作ってグラフの上に貼れば?
23名無しさん@そうだ選挙にいこう:2005/07/19(火) 00:00:53
Private Sub Workbook_BeforeSave
_ (ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
End Sub

WinXPエクセル2003(実際に運用するのはWin2000エクセル2000)

ワークブックに上書き保存できないように上記のマクロを
Thisworkbookに記録したんですが、マクロを入力した時点で
上書き保存できなくなってしまうために、マクロそのものが
保存されません。
良い方法は無いでしょうか?
24名無しさん@そうだ選挙にいこう:2005/07/19(火) 00:03:23
うーん、興味深い質問だ w
2523:2005/07/19(火) 00:06:56
>>24
要するに、あらかじめ作成されたワークシート上にデータを入力して
いくんですが、そのシートに上書き保存させないようにしたいんです。
(入力されたデータは、すぐに紙に印刷するので保存しなくて良い)
それさえできるのならば23の方法でなくてもいいんですが。
26名無しさん@そうだ選挙にいこう:2005/07/19(火) 00:10:02
マクロを無効にして開いて、それを保存した後で開きなおせばいいんじゃね?
27名無しさん@そうだ選挙にいこう:2005/07/19(火) 00:10:15
>>25
すまん、俺にはわからんよ
28名無しさん@そうだ選挙にいこう:2005/07/19(火) 00:11:14
>>26
それができたら書き換えができてしまうわけだな、、、
2923:2005/07/19(火) 00:13:21
>>26
26のやり方でやってみたところ、なんとかうまくいったみたいです。
みなさん、お騒がせしました。
30名無しさん@そうだ選挙にいこう:2005/07/19(火) 00:20:07
Application.EnableEvents = False
を実行してから上書きしてもいいな。

逆に言えばマクロで上書き禁止にしてる以上、
イベントを止めるか、マクロを無効にするかしたら上書き出来ちゃうんだけど。
31名無しさん@そうだ選挙にいこう:2005/07/19(火) 13:27:21
単純に

ファイル属性を「読み取り専用」にすればいいんじゃね?
32名無しさん@そうだ選挙にいこう:2005/07/19(火) 15:11:01
WindowsXPでのExcelについての質問です。
ひとつのセル内に文章と関数を同時に書くことは可能でしょうか?
可能であればお教え頂きたいです。
何か文字を打つと=から始まる関数が関数として認識されなくなってしまうのです。
隣のセルに書けばいいって話なんですが多分できるだろうと思って書き込みました。
よろしくお願いします。
33名無しさん@そうだ選挙にいこう:2005/07/19(火) 15:21:13
>>32
こういうことか?

  A   B   C
1 10  20  ="A1とB1の合計は "&A1+B1&" です。"

これだとC1は「A1とB1の合計は 30 です。」になる。
3423:2005/07/19(火) 19:47:15
>>31
その方法で試してみたんですが、上書き保存しようとすると
いちいちダイアログボックスが開くので使いづらくなります。
>>26の方法で行くつもりです。
複数のブックを開いている状態などでの動作確認をしてからですが。
35名無しさん@そうだ選挙にいこう:2005/07/19(火) 22:51:29
IF関数で質問します。
ある計算式の答えが整数の場合はA、それ以外(少数)に
なったらB、と返すにはそのように書けばいいのでしょうか?
整数を指す記述と少数を指す記述がどうにもわかりません。
いろいろと調べてみたのですが・・・。
36名無しさん@そうだ選挙にいこう:2005/07/19(火) 22:57:54
>>35
数式の答えがA1に入っているとすると
=IF(MOD(A1,1)=0,A,B)
37名無しさん@そうだ選挙にいこう:2005/07/19(火) 23:20:31
INT(A1)=A1
TRUNC(A1)=A1

なんてのもあるな。
ただ、A,BってのがAパターン、Bパターンってことならそれでいいが、
A,Bという文字を返すなら
,"A","B")
ね。
38名無しさん@そうだ選挙にいこう:2005/07/19(火) 23:21:46
お前ら「セル番号」は分かったのか?
3935:2005/07/19(火) 23:24:58
36,37さん
どうもありがとうございました。
仕事で必要だったので助かりました。
早速明日試してみます。
40名無しさん@そうだ選挙にいこう:2005/07/19(火) 23:39:11
前スレの843ですが、私の説明+知識不足で申し訳ないです。
要するに
A1 B1 C1 D1 E1
A2 B2 C2 D2 E2
A3 B3 C3 D3 E3
A4 B4 C4 D4 E4


A1 B1 C1 D1 E1
A2 B2 C2 D2 E2

A3 B3 C3 D3 E3
A4 B4 C4 D4 E4

A5 B5 C5 D5 E5
A6 B& C6 D6 E6

にしたかったのです。ただ、返事がないと思って自力で
全て空白を挿入しました。どうもすいません。
41名無しさん@そうだ選挙にいこう:2005/07/20(水) 01:24:47
>>33
おおおおお!出来ました!!
どうもありがとうございます!!!!
="文章"&数式&"文章"
にすればいいみたいですね、ホントにどうも有り難うございました。
42名無しさん@そうだ選挙にいこう:2005/07/20(水) 07:09:02
>>40
お前オタクの割にはそんなことも知らんのか。


43n0wio:2005/07/20(水) 10:55:17
How to Excelの本でおすすめをオシエテ。スレ違いか!?
44名無しさん@そうだ選挙にいこう:2005/07/20(水) 11:39:24
>>43
おりが持ってるExcel本は以下。あとはネットで調べられる。

かんたん図解 Excel97 活用編 ★入門書
ttp://www.amazon.co.jp/exec/obidos/ASIN/4774104361/projectk-22/249-8644119-3265143
超図解 EXCEL Q&A事典 超図解シリーズ ★実践用
ttp://www.amazon.co.jp/exec/obidos/ASIN/4872831829/br_lfncs_b_15/249-8644119-3265143
やってトライ!Excel2000―実戦的例題によるスキルチェック方式 ★無くても良い
ttp://www.amazon.co.jp/exec/obidos/ASIN/4797311886/ref=br_lf_b_6/249-8644119-3265143
ホントに使えるExcel関数 ★無くても良い
ttp://www.amazon.co.jp/exec/obidos/ASIN/4796627421/qid%3D1121827083/249-8644119-3265143
45n0wio:2005/07/20(水) 11:55:23
↑ありがとぉm(_ _)m
46名無しさん@そうだ選挙にいこう:2005/07/20(水) 14:51:55
【1 OSの種類         .】 WindowsXP PRO SP2
【2 Excelのバージョン   】 Excel2003

ローカルネットワーク上で共有しています。
ファイルを保存するとファイル名1 (Administrator v1)
というファイルが出来るのですが、これはなんなのでしょうか?
47名無しさん@そうだ選挙にいこう:2005/07/20(水) 17:27:03
どこを調べても見つけられなかったので質問します。

複数のシート間で同じ書式で表を作っているのですが、複数のシート間の同じセル
にある数値の合計を出したいと考えています。ただ、既存の複数シートの合計を出すのは
出来るのですが、VBを使いボタンを押すと日付欄に入力した日付がそのままシート名になり、
コピーされる様に作った為、事前にシート名を計算にいれられないのです。シート名に関係
なく、すべてのシートの同座標のセルの合計を取るにはどうしたらいいでしょうか?
バージョンはエクセル2003です。よろしくお願いします(`・ω・´)
48名無しさん@そうだ選挙にいこう:2005/07/20(水) 17:37:43
>>47
Worksheets.Countでシート数を調べて、
Worksheets(i).Range("hoge").ValueをForでまわして加算。
49名無しさん@そうだ選挙にいこう:2005/07/20(水) 17:55:19
対象が全シートなら、いちいちCount取らなくても、
Worksheetsコレクションに対してループ回せば済む話。
50名無しさん@そうだ選挙にいこう:2005/07/20(水) 19:34:47
XPでExcel(バージョン分かりません…)使ってます

特定のセルだけ入力不可能にさせる事は可能でしょうか?

私も初心者ですが使ってもらう人はもっと超初心者なもので、、、
関数で制御してる部分は弄って欲しくないので是非ともお願いします
51名無しさん@そうだ選挙にいこう:2005/07/20(水) 19:41:00
>>50
セルのロックとシートの保護

使い方は「ロック 保護」とかでヘルプ探してみそ。
52名無しさん@そうだ選挙にいこう:2005/07/20(水) 20:37:35
>>51
今時「みそ」って言いませんけど?
53名無しさん@そうだ選挙にいこう:2005/07/20(水) 20:50:16
>>52
どうしたのボウヤ?
54名無しさん@そうだ選挙にいこう:2005/07/20(水) 21:04:04
>>53
今時「みそ」って言わないと思ったので指摘してみました。
55名無しさん@そうだ選挙にいこう:2005/07/20(水) 21:07:05
ちょっと教えてください。
a2〜a9まで、A B C D E F G と入ってます。

例えば、A B C D D E F と D D がダブってることを
a1に調べる関数を入れたいんですが、何かありませんか?

56名無しさん@そうだ選挙にいこう:2005/07/20(水) 21:22:31
「連続したら」なのか、「同じ文字が2つあったら」なのかで式が違うが、どっち?
57名無しさん@そうだ選挙にいこう:2005/07/20(水) 22:29:50
>>56
両方でいいや。
58名無しさん@そうだ選挙にいこう:2005/07/20(水) 22:49:38
がめつい乞食は貰いが少ない
59名無しさん@そうだ選挙にいこう:2005/07/20(水) 23:14:03
>>56さん
ちょっと席はずしていたもので、遅くなりました。
同じ文字です。 宜しくお願いいたします。
60名無しさん@そうだ選挙にいこう:2005/07/20(水) 23:46:26
>>59
=SUM((COUNTIF(INDIRECT("A2:A9"),A2:A9)>1)*1)=0
配列数式なのでCtrl+Shift+Enterね。
重複が無ければTRUE、あればFALSE
61名無しさん@そうだ選挙にいこう:2005/07/21(木) 00:33:26
>>51
有り難うございます。
ばっちりしっかり出来ました。すっきりしました。
どうも有り難うございました。
ずっと入力不可とか禁止とかで検索してて見つからなくて困ってました。
「ロック」ですよね、今思えば。恥ずかしい・・・(苦笑)
62名無しさん@そうだ選挙にいこう:2005/07/21(木) 01:22:28
もしかして、Windowsの質問なのかもしれませんが。。

家じゃ、FEPにATOK使っていて、Excel上でShift+SPACEで「行選択」に
なるのですが、会社でMS-IME環境だと、Shift+SPACEで「半角スペース」が
入力されてしまいます。

MS-IME環境でも、Excelのショートカットキー優先で、「行選択」させるには
どこの設定を変えれば良いでしょうか?

よろしくおながいします。
63名無しさん@そうだ選挙にいこう:2005/07/21(木) 01:52:12
こっちではATOKでもMS-IMEでも
IMEがONだとスペース入力、IMEがOFFだと行選択になる。
つーことはIMEの種類もExcelの設定も関係ないな。
これはExcelに限らずShiftを修飾子とするショートカットキーの一般的な仕様だね。
64名無しさん@そうだ選挙にいこう:2005/07/21(木) 13:30:39
セルに半角英数で[myu]と入れてenterを押すと
[u]が消えて[my]にどうしてもなってしまうのですが
これは仕様なのでしょうか。
65名無しさん@そうだ選挙にいこう:2005/07/21(木) 13:38:18
>>64
仕様といえば仕様です(初期設定)

ツール>オートコレクトのオプションで、
「入力中に自動修正する」のチェックを外すか、または
その下にある一覧から myu → my の項を削除する
と直ります。
66名無しさん@そうだ選挙にいこう:2005/07/21(木) 13:48:08
>>62
ATOKの12だけど、ONでもOFFでも行選択出来てるから、
ATOKのせいかもしれないですね。
最近のATOKってShift+Spaceで、全角スペースと半角スペースを、
現在の入力モードとは入れ替えて入力できるんじゃなかったっけ?
その影響かもしれないね
67名無しさん@そうだ選挙にいこう:2005/07/21(木) 14:24:01
>>65
オートコレクト機能の仕業だとは知りませんでした。
ありがとうございました。
68名無しさん@そうだ選挙にいこう:2005/07/21(木) 15:17:43
Excel2000です
例えばBook1のsheet1 a1=あいうえお
sheet2のa1には =sheet1!a1
Book2のsheet1 a1=かきくけこ
と入力されているとして、
Book1のsheet2をBook2にコピーした際に
a1にかきくけこ と入力されるにはどうしたらよいでしょうか。
そのままコピーすると式の値が =[Book1]sheet1!a1
となり、上手くいきません。
よろしくお願いします。
6966:2005/07/21(木) 15:20:13
すみません、MS-IMEのことでしたね。
見当違いなレスしてました、首吊ってきます。
70名無しさん@そうだ選挙にいこう:2005/07/21(木) 20:08:44
エクセル2000って XPに対応していますか?
XP入れてエクセルインストールしようとしたら、エラー 1933と出てしまいました。
71名無しさん@そうだ選挙にいこう:2005/07/21(木) 20:34:42
> Microsoft Windows R 95(Internet Explorer 4.01 Service Pack 1 以上が必要。
> Internet Explorer 5.01 以上を推奨)または Microsoft Windows 98 以上(Internet Explorer 5.01 以上を推奨)または
> Microsoft Windows NT R Workstation 4.0 Service Pack 3 以上(Internet Explorer 4.01 Service Pack 1 以上が必要。
> Internet Explorer 5.01 以上を推奨)
> または
> Microsoft Windows 2000 Professional 以上
> *Internet Explorer 5.01 は、本製品に収録されています

ということで、XPは「Microsoft Windows 2000 Professional 以上」に該当するので対応してるよ。
周りでもXPでExcel(Office)2000使ってる奴も結構いるし。
メーカーPCならメーカーに、それ以外ならMSに問い合わせてみれば?
72名無しさん@そうだ選挙にいこう:2005/07/21(木) 22:12:36
>>60 さん
遅れましたが、ありがとうございました。
勉強になりました。
73名無しさん@そうだ選挙にいこう:2005/07/21(木) 22:17:43
同じExcelファイルを、同じヴァージョンのExcelで印刷しようとすると
他のPCだと1枚で収まるのに、自分のPCだと2枚になってしまう。

自分のExcelの設定を1枚で納まる他のPCのようにするにはどうすればよいですか?

つまり、他のPCと同じページ範囲で見たいのですが。
ただし、
・[印刷プレビュー]→[設定]→[ページ]→[次のページ数に合わせて印刷]
・[印刷プレビュー]→[設定]→[余白]で調節
・[印刷プレビュー]→[改ページプレビュー]
といった。対象ファイルの設定を変えたいわけではありません。
74名無しさん@そうだ選挙にいこう:2005/07/21(木) 22:27:53
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel97
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

  1 2 3 4 …
1X Y Z N …  (X Y Z Nはそれぞれバラバラな数値)
2X Y Z N …
3X Y Z N …
4X Y Z N …

というシートをあらかじめ作っておき、となりに別のシートを作って、
 ○
1□ 
2□
3□
4□

○に1と入れると下の□にはXが、2と入れると□にYがそれぞれ表示される表を作りたいのですが
どうすればいいのでしょうか?
2枚目のシートのBD以降のセルには=□*3とか入れて表を作りたいのですが。
75名無しさん@そうだ選挙にいこう:2005/07/21(木) 22:31:20
age忘れました
76名無しさん@そうだ選挙にいこう:2005/07/21(木) 22:35:39
>>74
VLOOKUP関数で出来る。
詳しくはヘルプ参照。
77名無しさん@そうだ選挙にいこう:2005/07/21(木) 22:56:29
エクセルだと65000くらいまでしか、行が表示されないんですが、レジストリか何かいじったらこの数を変更できるのでしょうか?
78名無しさん@そうだ選挙にいこう:2005/07/21(木) 23:01:05
>>77
つ >>12 だそうです。
79名無しさん@そうだ選挙にいこう:2005/07/21(木) 23:02:03
80名無しさん@そうだ選挙にいこう:2005/07/21(木) 23:13:54
>>76
VLOOKUPでなくてHLOOKUPの方が近いかと思いましたが
無事出来ました!ありがとうございました。
81名無しさん@そうだ選挙にいこう:2005/07/22(金) 06:37:07
Excel2002を使用しています。

Sheet1のA1に関数を記入し、
A2の値とSheet2!A1:B500の値でVLOOKUPを使いたいのですが、
マッチングに使えるのが右3文字だけなので、
RIGHTを併用すればいいのかと思い、

=VLOOKUP(A2,RIGHT(\'Sheet2\'!A1:B500,3),2,FALSE)

このように記述したのですがうまくいきません。
RIGHT関数に範囲指定が使えないのだと思うのですが、
どうすればいいのか・・・どうかお願いします。
82名無しさん@そうだ選挙にいこう:2005/07/22(金) 07:31:39
その式一つだけだったら、ctrl + shift + enterで配列数式にすればいい。
下にも同じような式が入るのであれば右3文字を取り出した作業列を作って、INDEXとMATCHを使うことになる。
83名無しさん@そうだ選挙にいこう:2005/07/22(金) 11:31:16
XP SP2で Office 2000のExcelを使っています。
ソニー銀行では取引履歴がCSV形式でダウンロードできるように
なっているのですが、ダウンロードを実行するボタンには
javascriptが設定されていて「対象をファイルに保存」ができません。
普通にクリックするとブラウザ内にExcelワークシートが表示されますが、
コピペ以外で保存する方法が分かりません…(^^;

できれば、ブラウザでExcelファイルを開くとき、ブラウザ内ではなく
Excelを起動してそこで開くようにしたいんですが、そういう設定は
可能でしょうか?
84名無しさん@そうだ選挙にいこう:2005/07/22(金) 11:38:46
>>83
Excelではなく、Windowsのファイルタイプの設定で出来る。
ってことでスレ違いでした。
85名無しさん@そうだ選挙にいこう:2005/07/22(金) 12:02:44
>>84
そうでしたか。
Adobe Readerだと環境設定で動作を変更できるので
同じようなものがあるのかと思いまして…。

すみませんが、どのように設定すればよいか
教えて頂けませんか?
86名無しさん@そうだ選挙にいこう:2005/07/22(金) 12:11:20
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000

関数がたくさん記入してあるワークシートを使用していて
行を足すため行コピーしコピーした行を挿入させていると
「再計算」の表示が出てしまいます。
ファイルを閉じても無くならず一度エクセルを終了させ
もう一度立ち上げ直しています。

なぜ「再計算」の表示が出てしまうのか、色々見ましたが
はっきりわからず、皆さんに伺いたいのですが、
ヨロシクお願いします。
87名無しさん@そうだ選挙にいこう:2005/07/22(金) 13:43:29
>>86
そのたくさん入ってる関数が、挿入後、実際に再計算されて
いるから。
通常は計算量が少ないので「再表示」の表示が出ないだけ。

何度も出るのが嫌なら、ツール>オプション>計算方法で、
計算方法を「自動」から「手動」にしておく。
そうすれば、自分で「F9」キーを押して再計算させるまで、
データをいじってもその表示は出ない。
88名無しさん@そうだ選挙にいこう:2005/07/22(金) 14:55:59
レスありがとうございます。

自動から手動へ変更し、行コピー挿入してみても
「再計算」は出てしまいます。F9押す前に
一般的に再計算が終われば消えますが、
このシートだけなぜそうなるのか?
他にもチェックした方が良さそうな所ありましたら
ご指摘下さい。よろしくお願いします。

89名無しさん@そうだ選挙にいこう:2005/07/22(金) 15:25:02
DateAdd関数のようなものはExcelにありますか?
90名無しさん@そうだ選挙にいこう:2005/07/22(金) 15:38:35
>>89
Excelにって言われても、Excel_VBA関数のことか
Excel_Worksheet関数のことかわからないが、
VBAにはそのままDateAddという関数があるし
Worksheet関数でもいくつかを組み合わせることで、
VBAのDateAdd関数を同じようなことは出来る。あとは>>3の一番上。
91名無しさん@そうだ選挙にいこう:2005/07/22(金) 15:46:22
>>88
すまん。2000ではその状態でも「再計算」の表示は出るみたいね。
本を調べてみたらこんなこと書いてあった。

>手動計算に切り替えた後で、ワークシートに対して再計算の
>要因となるような変更を加えると、ステータスバーには「再計算」
>と表示されます。ここで実際に再計算を行うには「F9」キー。

だからその応答で正しく動いてるってことだと思う。
手元の2002では出ないので勘違いした。申し訳ない。
9283:2005/07/22(金) 15:47:26
>>83-85
ですが、どなたか情報をお持ちでないですか?
93名無しさん@そうだ選挙にいこう:2005/07/22(金) 16:10:27
>>91 有り難うございます。本でも調べて頂いて。>>86です

ワークシートに対して再計算の要因となるような変更を
知らないうちに加えているのが原因。
行のコピーとコピーした行の挿入がその原因と
なっているようですね。
その後再計算表示は終わらず、エクセル本体を閉じるまで
表示され続けてしまうのです。

すいませんその本の題名教えて頂けますか。
よろしくお願いします。
9491:2005/07/22(金) 16:25:41
>>93
「Microsoft Excel2000オフィシャルマニュアル」
日経BPソフトプレス、4800円。

仕事場にたまたま合ったから見られたけど、
あまり個人で買うような本じゃないですよ。
1999年初版の古い本だし。

でもExcel2000の本なら似たようなコトは
書いてあるんじゃないかな。
95名無しさん@そうだ選挙にいこう:2005/07/22(金) 16:26:16
>>92
だからスレ違いだって。
ファイルタイプの設定程度も自分で調べられないなら
PC初心者板でも逝って聞いてこい。
9683:2005/07/22(金) 19:03:07
>>95
これですね…。
http://support.microsoft.com/default.aspx?scid=kb;ja;JP162059
お邪魔しました。
97名無しさん@そうだ選挙にいこう:2005/07/22(金) 22:30:41
セル番号って何ですか?
98名無しさん@そうだ選挙にいこう:2005/07/22(金) 22:53:55
97:あぼーん [あぼーん] :あぼーん
99名無しさん@そうだ選挙にいこう:2005/07/22(金) 23:03:40
>>98
迷惑な書き込みはやめてもらえる?ボウヤ
100名無しさん@そうだ選挙にいこう:2005/07/22(金) 23:16:10
>>99
あんた!「ぼうや」って呼ばれて異常反応した子だね
101名無しさん@そうだ選挙にいこう:2005/07/23(土) 00:03:44
>100
102名無しさん@そうだ選挙にいこう:2005/07/23(土) 01:06:01
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

現在、他ソフトで作成した図面(地図)をWMFファイルにしてEXCELで作った出力用の雛形
に貼り付けています。
その図面上にシェイプを使って○を書いたり、赤線を引いたりしています。
作業していて、○のシェイプを移動させようとしてクリックして選択すると、間違って背景の図面が
選択された状態になり、意図しない図面が移動されてしまったりします。
間違って移動してしまった場合はアンドゥして元に戻りますが、何かと不便です。
他の作図ソフトでいうオブジェクトをロックする機能をEXCELでするにはどうすればいいでしょうか。
VBAでも構いませんのでよろしくお願いします。
103名無しさん@そうだ選挙にいこう:2005/07/23(土) 18:58:45
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

あるファイルをテキストとして開いて
部分的に置換するマクロを作ろうとしています。

ただのテキスト置換なのですが秀丸などはだめと言うことで
エクセル上でファイル数分連続処理させようとしています。

ところがこのファイルがうまく開けません。そのまま開くと字化けします。
一番先頭に<?xml version="1.0" encoding="utf-8" ?>とかかれています。
xmlとして開くとまったく違ったレイアウトでセルに配置されてしまいました。
別のマシンではxmlでは構文エラーで怒られました。
そのため、単純にテキストとして扱いたいのですが、UTF-8のファイルを字化けせず開き保存することができるでしょうか。
よろしくお願いします。
104名無しさん@そうだ選挙にいこう:2005/07/23(土) 20:38:01
ポイントをセンチ表示にできませんかねぇ?
105名無しさん@そうだ選挙にいこう:2005/07/23(土) 20:47:44
できません。

Excelではなく三四郎ならできますが。
106名無しさん@そうだ選挙にいこう:2005/07/23(土) 21:17:38
B5ノートに合わせにくいけどがんばるしかないのか
107名無しさん@そうだ選挙にいこう:2005/07/23(土) 21:28:26
がんばるしかない
108名無しさん@そうだ選挙にいこう:2005/07/23(土) 22:14:38
【1 OSの種類         .】 WindowsNT(金のない職場なんで・・・)
【2 Excelのバージョン   】 Excel97
【3 VBAが使えるか    .】 少し
【4 VBAでの回答の可否】 可

Excelファイルを開かずに保存オプションの
読み取りパスワード設定をすることは可能ですか?
ダメなら一回ファイル開いて設定して保存しますが
可能かどうか、もし可能ならどんなコードかご教示ください。
109名無しさん@そうだ選挙にいこう:2005/07/24(日) 01:03:00
お願いします。
全く別のExcelを複数開いた状態で、右上の×をクリックする形である1つのExcelを閉じると、開いている全てのExcelを閉じようとしてしまいます。これは設定を変える事ができるのでしょうか?
よろしくお願いしますm(_ _)m
110名無しさん@そうだ選挙にいこう:2005/07/24(日) 07:24:05
>>109
仕様で変えられないと思います。
111名無しさん@そうだ選挙にいこう:2005/07/24(日) 07:53:58
ExcelからODBC接続でDBからデータを取得する
いいサンプルはないでしょうか。
112名無しさん@そうだ選挙にいこう:2005/07/24(日) 07:56:47
>>108
不可能
VBA多少使えるなら、マクロの記録で
開く、パス設定、保存、閉じる
を取ればいいし、複数ファイルに一括してやりたいなら
Dir関数でフォルダ内の全てのファイルを順次処理することも出来るでしょ。

>>109
うちのはそうならないけど。@WinXPsp1a Excel2002sp3
複数のExcel立ち上げてる場合は一つを×ボタンで終了させても他はそのまま。
本当に複数起動させてるの?複数開いてるのはExcelではなくブックで、
Excel自体は一つしか立ち上げてないんじゃないの?
タスクマネージャでEXCEL.EXEが2個以上あるかどうかを確かめて、もう一度やってみな。
それでもダメなら、知らん。
113名無しさん@そうだ選挙にいこう:2005/07/24(日) 08:39:23
>>112
すいません。日本語でお願いします。
114名無しさん@そうだ選挙にいこう:2005/07/24(日) 08:51:49
>>113
どうしたの、ボウヤ?
誤爆?.....なら、いい子だから元スレに返ろうね
質問者?.....なら、いい子だから>>2にある通り名前に最初のレス番入れようね
115名無しさん@そうだ選挙にいこう:2005/07/24(日) 09:01:18
>>114
必死すぎw
116名無しさん@そうだ選挙にいこう:2005/07/24(日) 09:06:25
>>114
常駐しすぎ。他にやることないんだろうな。
117名無しさん@そうだ選挙にいこう:2005/07/24(日) 09:07:16
>>114
どう読んだら>>113が質問者に見えるのでしょうか。
118名無しさん@そうだ選挙にいこう:2005/07/24(日) 09:17:03
素敵な自演ですね
119名無しさん@そうだ選挙にいこう:2005/07/24(日) 09:18:58
>>118
必死すぎw
120名無しさん@そうだ選挙にいこう:2005/07/24(日) 09:20:40
>>118
常駐しすぎ。他にやることないんだろうな。
121名無しさん@そうだ選挙にいこう:2005/07/24(日) 09:23:19
>>118
どう読んだら自演に見えるのでしょうか。
122名無しさん@そうだ選挙にいこう:2005/07/24(日) 09:37:49
夏ですね
123名無しさん@そうだ選挙にいこう:2005/07/24(日) 10:11:10
>>122
必死すぎw
124名無しさん@そうだ選挙にいこう:2005/07/24(日) 10:12:47
>>122
常駐しすぎ。他にやることないんだろうな。
125名無しさん@そうだ選挙にいこう:2005/07/24(日) 10:13:07
>>122
どう読んだら夏に見えるのでしょうか。
126名無しさん@そうだ選挙にいこう:2005/07/24(日) 10:13:55
>>124
おー、ずっと俺一人で書いてたのに援軍が!!
127名無しさん@そうだ選挙にいこう:2005/07/24(日) 10:44:28
>>126
必死すぎw
128名無しさん@そうだ選挙にいこう:2005/07/24(日) 11:01:33
>>127
必死すぎw
129名無しさん@そうだ選挙にいこう:2005/07/24(日) 11:05:21
>>126
常駐しすぎ。他にやることないんだろうな。
130名無しさん@そうだ選挙にいこう:2005/07/24(日) 11:08:49
>>129
必死すぎw

そろそろ飽きてきたんだけど。
131名無しさん@そうだ選挙にいこう:2005/07/24(日) 11:18:19
三連カキコやってた彼が一番必死だったということで終結しました。
みなさん、お疲れさまでした。

↓以下、負け惜しみをお楽しみください。
132名無しさん@そうだ選挙にいこう:2005/07/24(日) 11:51:46
>>131
必死すぎw
133あぽーん:2005/07/24(日) 12:26:32
【 Excelのバージョン  】 Excel2000
【 VBAでの回答の可否】 可

あるセルの数字が、元の値を保持したまま百万以上の部分だけ表示されるようにしたい。
縛り1:四捨五入不可。⇒書式設定「♯,,」は×
縛り2:間接表示不可。⇒ROUNDDOWN、INT、LEN+LEFT等関数×

Web検索では(上記条件を踏まえると)「不可能」という回答しかありませんでした。
2chの皆様よろしくお願いします。
134あぽーん:2005/07/24(日) 12:27:34
age!
135名無しさん@そうだ選挙にいこう:2005/07/24(日) 12:34:52
>>133
表示形式で 「#Ctrl+J######」
書式設定で「折り返して全体を表示する」

これで
10000000

    10
000000
と表示されるようになる。
あとは1段目だけ表示されるように行の高さを設定すればOK
136あぽーん:2005/07/24(日) 12:38:32
>135
うお、目からウロコ!ありがとー
137名無しさん@そうだ選挙にいこう:2005/07/24(日) 13:04:34
>>102をお願いします。
シートの保護でオブジェクトをロックするとすべてのオートシェープがロックされてしまいます。
138名無しさん@そうだ選挙にいこう:2005/07/24(日) 13:45:51
Shiftを押しながら図形を選択すると複数の図形をまとめて選択することができるので、
固定させたい図形をすべて選択した状態で
図形ツールバー > "図形の調整" > "図形の結合" だったかな?

満喫からなんだけどエクセルがないから検証できないや。
大筋はあってると思うけど誰か訂正して著
139名無しさん@そうだ選挙にいこう:2005/07/24(日) 14:55:29
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 貴乃花専用しおり
          ,r=〜^ヾ_,,r-=- 、
        /;;;;;;;;;;;;;;;;;;;;;;ヽ;;;;;;;;;;;;ゝ
       /;;;;;;;;;;;;;;;;;;;;;;;ノノハ;;;;;;;;;;;;;;i
      i;;;;;;;;;;;;;;;;;;彳===ヽ;;;;;;ル 
      !;;;;;;;;;;;;;;イ::. /   \  |;;;ノ
      ゝ;;;;;;;|:::: (●) ,(●) |シ
      从从/ \ , 、_! 、 / ノ
       从从  i ー==-' i l
        ノ从ヽ._!_⌒_!_/   今日はここまで痩せた
  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
140名無しさん@そうだ選挙にいこう:2005/07/24(日) 15:18:15
お願いします。
ソフトウェアのスレの方で
「複数のファイルの中から、テキストやエクセルなどに書き出された
 ファイル名を元に検索し、必要なファイルだけを移動(またはコピー)する」
っていうソフトありますか? って聞いたら
「エクセル」って言われました。
エクセルでこういうことが可能なんでしょうか?
もし可能なら、もう少し詳しく教えて貰えますか?
141名無しさん@そうだ選挙にいこう:2005/07/24(日) 16:28:33
>>140
VBAつかえば出来るよ
というか、VBA使わないと出来ない

自分で書けないならもう少し詳しい条件指定しないと
「がんがれ」くらいしか言えないな

ファイル名はどこに書かれてるのか、どこからどういう条件で検索するのか
サブフォルダ以下も検索するなら移動先でファイル名が重複したらどうするのか
とか、きちんと仕様を固めれば神がコード書いてくれるかもしれない

でもわざわざExcel使わなくてもVBSとかで充分処理できそうな感じだね
VBSの場合、またスレ違いになっちゃうけど
Excelでやりたいならきちんと条件書いて気長に待ってみな
142名無しさん@そうだ選挙にいこう:2005/07/24(日) 16:54:45
昨日の地震予知したやつがいる。
((((;゚д゚)))ガクガクブルブル

http://life7.2ch.net/test/read.cgi/atopi/1109776563/249
143140:2005/07/24(日) 18:02:23
>>141
有難う御座います。
でも、自分では書けないんで、書いて貰えると嬉しいんですけど。
VBSってのも、今、初めて聞きましたし。
でも、出来るなら、何でもいいです。
詳細な仕様ってなことなんですけど、
1.ファイル名は自分で書き出すんで、何処にでも書けます。
2.検索条件は、その書き出したファイル名と同じ名前です。
3.サブフォルダは無く、検索するのは一つのフォルダのみです。
4.検索、移動後、フォルダに無かったファイル名だけをリスト化することは出来ますか?
 可能ならば、それもお願いします。

こんな感じで宜しいでしょうか?
それでは、神様お願いします。
144hoge ◆hoge//WRxY :2005/07/24(日) 18:36:31
>>143
神様じゃないけどこんなもんでどうかな?
Sub MoveFile()
 Dim FindFolder As String, MoveAsFolder As String, myFilePath As String
 Dim i As Long, j As Long
 FindFolder = Range("C1").Value
 MoveAsFolder = Range("C2").Value
 For i = 1 To Cells(65536, 1).End(xlUp).Row
  myFilepath = FindFolder & "\" & Cells(i, 1).Value
  If Dir(myFilepath) = "" Then
   j = j + 1
   Cells(j, 2).Value = Cells(i, 1).Value
  Else
   Name myFilepath As Replace(myFilepath, FindFolder, MoveAsFolder)
  End If
 Next i
End Sub

     A    |  B  |  C
1| ファイル名1       検索するフォルダのパス
2| ファイル名2       移動先フォルダのパス
3| ファイル名3

>>10-11を参考にシートオブジェクトか標準モジュールに貼って実行。
実行するとA列に書いたファイルが検索対象フォルダ内にあれば移動、
無ければB列にそのファイル名を列挙。
ファイル名は拡張子まで書いてないと動かないので注意。
145名無しさん@そうだ選挙にいこう:2005/07/24(日) 18:59:41
>>6の例二のようなIF関数は7つまでしか一気に出来ないみたいですが、何とかして50個出来る方法はないでしょうか?
146名無しさん@そうだ選挙にいこう:2005/07/24(日) 19:08:09
>>145
・配列数式にする
・ユーザー定義関数を使う
お好きな方をどうぞ
因みにここで条件を50個ズラズラ書かれても困るので
ヘルプでも読んでがんばりましょう
147名無しさん@そうだ選挙にいこう:2005/07/24(日) 19:18:13
ここの過去ログを固めうpしてくれる人いないですか?
148名無しさん@そうだ選挙にいこう:2005/07/24(日) 19:23:51
>>147
居ないです
だって、にくちゃんねるやみみずんでほとんど全部揃うから
149140:2005/07/24(日) 19:34:09
>>143
有難う御座います。
希望通りに動きました。
厚かましいんですけど、もう一つ、条件を加えてもいいでしょうか?
今、A列に同名のファイルが複数あった場合には
そのファイルを移動させても、
残りの名前をB列に表示するようになっています。
(同名ファイルが3つあった場合、2つがB列に表示されます)
ファイルを移動させた場合は、同名のファイル名を
B列に表示しないようにすることは出来るでしょうか?
また、B列に表示する時、同名のファイルは1つだけにすることは
出来ますか?

よろしくお願いします。
150140:2005/07/24(日) 19:36:33
>>143じゃなくて
>>144
の間違いでした。すみません。
151名無しさん@そうだ選挙にいこう:2005/07/24(日) 19:37:45
>>112
お礼が遅くなりましたがありがとうございます。
現在はDir関数でフォルダ内の全てのファイルに
開く、パス設定、保存、閉じるを順次処理させてます。

Application.ScreenUpdating = Falseもしてますが
「開く」「閉じる」の処理を省けるなら
もっとスマートなコードになるのにと思い
可能不可能を確認させていただいた次第です。
現状のままでよいとわかり満足しております。
ありがとうございました。
152hoge ◆hoge//WRxY :2005/07/24(日) 19:45:55
>>149
つまり移動対象ファイルリストにはファイル名が重複してる場合もあるってことかな?
それならこれでどうでしょうか?

j = j + 1
Cells(j, 2).Value = Cells(i, 1).Value

If Dir(MoveAsFolder & "\" & Cells(i, 1).Value) = "" Then
 j = j + 1
 Cells(j, 2).Value = Cells(i, 1).Value
End If
153145:2005/07/24(日) 20:07:34
>>146
ありがとうございます。
もう一つ質問なのですが、1なら”あ”、2なら”い”、3なら”う”…と、出す方法、他にありませんか?
154140:2005/07/24(日) 20:16:42
>>152
有難う御座いました。
マクロ使うの初めてなんで、かなり手間取ってますが
希望通りのものを作って頂いたみたいです。
ホントに助かります。
ちなみに、書いて頂いたものって、VBAをちょっと勉強したくらいでは
難しいでしょうか?
ちょっと興味が湧いてきたんで。
155hoge ◆hoge//WRxY :2005/07/24(日) 20:32:34
>>153
=CHAR(A1+9248)
でA1が1なら"ぁ"、2なら"あ"、3なら"ぃ"、4なら"い"
順番は「ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただ」って感じになってる。
A1に=CHAR(9248+ROW())、B1に=9248+ROW()って入れてオートフィルで下方へコピーすれば
どのコードで何が返るかわかるでしょ。

>>154
俺自身がVBAをちょっと勉強しただけのド素人なんですが。
これくらいの処理は、勘が良ければ1日で書けるようになりますよ。
156名無しさん@そうだ選挙にいこう:2005/07/24(日) 20:34:16
>>153
リストを別に作ってvlookup関数使えば?
157名無しさん@そうだ選挙にいこう:2005/07/24(日) 20:51:17
【OS】WindowsXP
【Ver】エクセル2003


質問させてください。

エクセル上に地図を貼り付け、その上に何点かポイントを置き
そこにマウスポインタを合わせるとその点の詳細画像が表示される
というようなデータベースを作りたいのですが、エクセルで可能でしょうか?

ホームページ作成ではjavaスクリプトで出来るのですが
エクセル上でまとめるのが理想です。

やり方が分かる方いらっしゃいましたら教えてください。
自分で色々調べたりやったりしてみたのですが出来ませんでした。
158145:2005/07/24(日) 21:24:45
>>156
VLOOKUPで出来ました。最初は難しかったけど、分かれば楽しいですね。

教えて下さった>>146 >>155 >>156さん、どうもありがとうございました。
159hoge ◆hoge//WRxY :2005/07/24(日) 21:36:54
>>157
画像をイメージオブジェクトとして挿入し、
MouseMoveイベントでマウスが指定座標に来たら
用意した詳細画像のオブジェクトを表示するとか。
Image1が地図、Image2が詳細画像だとするとこんな感じかな。

Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
 If X > 100 And X < 120 And Y > 100 And Y < 120 Then
  Image2.Visible = True
 Else
  Image2.Visible = False
 End If
End Sub

ただ、MouseMoveイベントはCPU食うから、
MouseDownイベントを使ってクリックさせるようにした方がいいと思う。
160140:2005/07/24(日) 21:47:08
>>155
そうなんですか。
明日、本屋にでも行ってちょっと調べてみます。
有難う御座いました。
161157:2005/07/24(日) 22:06:49
>>159
ありがとうございます。
さっそく明日実践してみたいと思います。
162名無しさん@そうだ選挙にいこう:2005/07/25(月) 11:42:22
お尋ねします。下記の様な表があります。縦軸は日にちで
一つのセルに複数の文字列が、"、"で区切られて入っています。
Aさん
夜勤
日勤
日勤、夜勤
ってな表があってこの中から夜勤の回数を知りたい場合、
COUTIF関数を使って条件を"夜勤”で設定したのですが
1セルに夜勤と入っているものしかカウントしません。
日勤、夜勤はカウントされない様なのですがなんかいい智恵ありますか?
163名無しさん@そうだ選挙にいこう:2005/07/25(月) 12:01:25
>>182
"*夜勤*"
164162:2005/07/25(月) 13:00:08
>>163
うへー、即レスありがとうございました!できました。
あんた、頭世過ぎ!ってか俺がばかななのか、、、長い間悩んだ疑問が解決しました。
ありがとうございました!
165名無しさん@そうだ選挙にいこう:2005/07/25(月) 13:16:34
まあ、ワイルドカードは基本だろ
166名無しさん@そうだ選挙にいこう:2005/07/25(月) 22:08:53
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

グラフ作成についての質問です

通常棒グラフの起点軸は 0 から始まり、数字が増えていきますが、
逆は出来るのでしょうか?

例 起点軸 15 にして 数字が減るほど棒が伸びるようにしたいんです。

わかりにくくてすいませんご回答をお願いいたします。 
167名無しさん@そうだ選挙にいこう:2005/07/25(月) 23:01:54
俺に分からないことってある?
168名無しさん@そうだ選挙にいこう:2005/07/25(月) 23:07:56
>>167
いっぱいある
169名無しさん@そうだ選挙にいこう:2005/07/25(月) 23:10:42
>>166
とりあえず棒グラフ作ってから
 軸の書式設定... 〜 目盛
で「軸を反転する」ON & 「項目軸との交点」に15を指定
お好みに応じて「最小値」「最大値」も適宜指定
170名無しさん@そうだ選挙にいこう:2005/07/25(月) 23:17:17
>>168
あるわけない。
171名無しさん@そうだ選挙にいこう:2005/07/25(月) 23:17:49
Windows2000に最初から含まれているADOのバージョンを
知りたいのですが、どこに載ってますでしょうか。
172名無しさん@そうだ選挙にいこう:2005/07/25(月) 23:20:27
>170
君、だれ?
173名無しさん@そうだ選挙にいこう:2005/07/25(月) 23:22:45
>>172
>>168だよ。
174名無しさん@そうだ選挙にいこう:2005/07/25(月) 23:27:50
>>164
初めてお礼を言われたよ
嬉しいな
175名無しさん@そうだ選挙にいこう:2005/07/25(月) 23:37:26
ある連続した行がグループとされていて、行の所に@とかAとあって、そこをクリックするとグループを表示、非表示と切り替えられる。
こんな設定が為されたファイルがあったのですが、どのような方法でやるのでしょうか?よろしくお願いしますm(_ _)m
176名無しさん@そうだ選挙にいこう:2005/07/25(月) 23:41:46
>>175
アウトラインですね。たぶん。
データ>集計をやれば自動的に作られますし、
手動で作るならデータ>グループとアウトラインの設定>グループ化
177名無しさん@そうだ選挙にいこう:2005/07/26(火) 00:28:19
>>176
初心者的な質問にも関わらず、質問に応えて頂きありがとうございました|∵|/
178名無しさん@そうだ選挙にいこう:2005/07/26(火) 07:04:40
俺に分からないことってある?
179名無しさん@そうだ選挙にいこう:2005/07/26(火) 09:42:26
>>178
俺のこと知ってる?
180名無しさん@そうだ選挙にいこう:2005/07/26(火) 09:45:11
>>179
うん。
181悩める関数男:2005/07/26(火) 11:10:17
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否 (導入法が分かれば可)

同一ブック内での2つのシート間での連携についてお聞きいたします。
シート1には各列に“氏名”、“住所”、“電話”、“年齢”が入力されています。
シート2は印刷用の文書テンプレートが作成してあり、
シート1の項目があちこちに配置してある状況です。
シート2の“名前”のセルでリスト表示(シート1の名前リスト)から一つの名前を選択します。
ここまでは出来たのですが・・・、
名前選択と同時にシート2の住所、電話、年齢も対応する物が自動入力出来ないかと・・・。
lookup関数も使ってみましたが、各列のデータが昇順でないと出来ないようです。
御教授頂けると幸いです。

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

A1セルに入力された日時とA2セルに入力された日時を
比較し、20分以上差がある場合はA3セルに「×」と
表示させたいのですが、どのようにすればできますでしょうか。

よろしくお願い致します。
183名無しさん@そうだ選挙にいこう:2005/07/26(火) 11:22:03
>>181
VLOOKUP関数の第四引数を0、又はFALSEに
この意味についてはヘルプのVLOOKUPの項目を見てね。

>>182
>>6とヘルプを参考に、IF関数とTIME関数で式を組んでみよう。
日付を跨る場合はちょっと複雑になるけど、同一日付なら簡単だから。
184名無しさん@そうだ選挙にいこう:2005/07/26(火) 11:27:45
>>183
すいません。日付はまたがるんです。でもやってみます。
185悩める関数男:2005/07/26(火) 11:29:16
183
どうもありがとうございます。
ヘルプ見ながら努力してみます。

182
練習に取り組んでみましたが、
A3セルに、
=IF(MINUTE(A2−A1)>=20,”×”,””)
では駄目ですか?
186名無しさん@そうだ選挙にいこう:2005/07/26(火) 11:30:07
>>183
なんでTIMEなんだ?
DATEVALUEとTIMEVALUEとTEXTじゃないの?
187名無しさん@そうだ選挙にいこう:2005/07/26(火) 11:31:25
>>185
ありがとうございます。MINUTEっていう関数があるんですね。
助かりました。
188悩める関数男:2005/07/26(火) 11:42:17
>183
出来ました!有難う!
でも、対象セルが空欄の場合にゼロが入力されてしまいます・・・。
ゼロ出さずに空欄は空欄で表示したいのですが・・・。
度々お手数お掛けいたします。
189名無しさん@そうだ選挙にいこう:2005/07/26(火) 12:20:46
>>188
>>6を参考にIF関数使う手もあるけど、
表示形式のユーザー定義で「0;-0;;@」とかやった方が楽かも。
これの意味は>>3参照
ただしコレだと参照先が空欄ではなく0の時も、結果は空欄になってしまうので
それがマズい場合はIF関数で。

>>186
=IF(B1-A1>=TIME(0,20,0),"×","")
と思ったんだけど、日付跨りは関係なかったね。
まあ、MINUTEの方が良さげなので>>185の式でいいと思うけど。
190名無しさん@そうだ選挙にいこう:2005/07/26(火) 13:54:40
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

同一book内のシートを参照するのは
=しーとname!セル場所
でやればできるのですが
上記のしーとnameを別のセルの入力に対応させることはできるのでしょうか?
(a1にシート名称を入力、a2にa1で入れたシートの参照を表示)
191名無しさん@そうだ選挙にいこう:2005/07/26(火) 14:42:08
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 若干
【4 VBAでの回答の可否】 可

VBAから、Excelで開いていないEXCELファイルの中の指定したシートの
指定したセルの値を取ってくることは可能でしょうか。

できればExcelを新たに起動しないで実現したいです。
よろしくお願いします。
192名無しさん@そうだ選挙にいこう:2005/07/26(火) 15:04:46
193名無しさん@そうだ選挙にいこう:2005/07/26(火) 15:21:10
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel 2000
【3 VBAが使えるか    .】 ?
【4 VBAでの回答の可否】 否

 家計簿をつけています。
  A      B
 スーパー 1000
 薬局 2000
 スーパー 1500
 とつけていき、最終的に
「スーパーの合計は〜〜円」「薬局の合計は〜〜円」とつけたいと思っています。IF式でつけると式が長くなってしまいます。
COUNTかな、とおもったのですが、どうも違うようで。やはりIF式で長くずらずらっと書くしか方法はないのでしょうか?
関数のヒントだけでもお願いします。
194193:2005/07/26(火) 15:27:56
あぁ、SUMIFでいいのか、、_| ̄|○
スレ汚し失礼しました ツッテキマス
195名無しさん@そうだ選挙にいこう:2005/07/26(火) 15:59:55
>>190
>>8 = FAQ: 参照するセルをセルの値で指定する =
196悩める関数男:2005/07/26(火) 17:08:45
>>189
了解。
IF使って見ます。
御丁寧に有難うございます。
197名無しさん@そうだ選挙にいこう:2005/07/26(火) 17:42:27
一番上の列と一番下の列を固定するにはどうしたらいいんでしょうか?
198166:2005/07/26(火) 17:47:15
>>169

遅レス申し訳ございません
おかげさまでレポートが提出できました
ありがとうございました

感謝!!
199名無しさん@そうだ選挙にいこう:2005/07/26(火) 18:18:24
>>192
ありがとうございます。
ご紹介頂いたリンク先に書いてあるExecuteExcel4Macroを試してみたのですが、
例えば時刻が入力されているセルの値を取得した場合、セルが未入力の場合と
「0:00」が入力されている場合のどちらも「0」が返ってきてしまう。
これをうまく区別する方法はないでしょうか。
200名無しさん@そうだ選挙にいこう:2005/07/26(火) 18:46:41
201名無しさん@そうだ選挙にいこう:2005/07/26(火) 18:52:03
>>200
すいませんでした。ありがとうございます。
202199:2005/07/26(火) 20:39:04
Excelを開かずに値を取得するのは諦めて、該当ファイルをオープンしてから
値を取得しようと思うのですが、Excelを新たに起動したことをなるべく
ユーザに見えないようにするいい方法はないでしょうか。

最小化状態で起動できればなんとか目的は果たせそうですが・・


よろしくお願い致します。
203名無しさん@そうだ選挙にいこう:2005/07/26(火) 20:50:32
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

マクロからサードパーティのCOM Addinで追加された機能を呼び出すことは可能でしょうか?
可能でしたらやりかたを教えてください。よろしくお願いします。
204名無しさん@そうだ選挙にいこう:2005/07/26(火) 20:59:57
>>202
Application.ScreenUpdating = False
205名無しさん@そうだ選挙にいこう:2005/07/26(火) 21:28:03
>>204
できました。ありがとうございました。
206名無しさん@そうだ選挙にいこう:2005/07/26(火) 21:38:33
>>204
できました。ありがとうございました。
207名無しさん@そうだ選挙にいこう:2005/07/26(火) 21:39:20
>>204
できました。ありがとうございました。
208190:2005/07/27(水) 03:04:45
>195
教えていただきありがとうございます
いろいろ試行しましたが
エラーがでたり、自分にはダメでした
209名無しさん@そうだ選挙にいこう:2005/07/27(水) 06:29:27
メニューを弄っているうちに、オブジェクトの挿入をしてしまい、
カレンダーを挿入してしまいました。
選択して消去することもできず、移動もできず…。
オブジェクト、削除などでヘルプを見てもわかりませんでした。
どなたか削除する方法をお教えください。
210名無しさん@そうだ選挙にいこう:2005/07/27(水) 09:12:42
>>209
デザインモード
211名無しさん@そうだ選挙にいこう:2005/07/27(水) 12:00:12
ふりがなを表示・非表示すると
行の高さが自動的に調整されますが
一度でも行の高さをマニュアルで調整
した場合、高さが一定になってしまいます。
自動的に調整するにはどうすればいいので
しょうか?
212名無しさん@そうだ選挙にいこう:2005/07/27(水) 12:02:07
>>211
自己解決しました。
213名無しさん@そうだ選挙にいこう:2005/07/27(水) 12:07:39
214名無しさん@そうだ選挙にいこう:2005/07/27(水) 17:47:37 BE:61353582-
ここであっているのかどうかわかりませんが、間違いならば誘導お願いします。

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

メールで送られて来た画像付きのエクセルファイルのデータが、壊れてる時がたまにあります。
サーバー側で問題なのか、エクセルのVerによっての問題なのかわからなかったので、
ここで質問させて頂きました。

Ver違いで壊れる事はあるのでしょうか?
215名無しさん@そうだ選挙にいこう:2005/07/27(水) 17:58:05
Excel95以前ので作ったファイルなら、verの問題かもしれない。
97以降なら単純なデータ破損だろうな。
216209:2005/07/27(水) 21:16:58
>>210
ありがとうございました。解決しました。
217名無しさん@そうだ選挙にいこう:2005/07/27(水) 22:01:20
俺最近スキル上がったよ。どんどん質問して。
218名無しさん@そうだ選挙にいこう:2005/07/27(水) 23:28:29
10%以下を表示したいのですが、0になってしまいます。
どうすれば表示できるのか教えて下さい。
219名無しさん@そうだ選挙にいこう:2005/07/27(水) 23:32:18
>>218
「0.1」とか「0.01」とかってことですか?
220名無しさん@そうだ選挙にいこう:2005/07/27(水) 23:38:09
ハイパーリンクとマクロってどちらが重くなりますか?

ひとつのブックにシートが30枚あるとして、
そのうち29枚は、それぞれパターン別の発注書になっています。
残り1枚は、それら29枚のパターンの一覧表を作成しています。

パターン一覧表からあるパターンを選択すると、そのパターンのシートに移動するように
したいのですが、移動の手段として、ハイパーリンクにするのと、
マクロを登録したボタンを配置してボタンをクリックするとそのシートに移動するようにした
のとでは、どちらが重くないのでしょうか?

自分で両方試してみたのですが、どちらも上書き保存にすごく時間がかかりました。
実際のところはどうなのでしょうか?一般的な意見でいいので教えて下さい。
221名無しさん@そうだ選挙にいこう:2005/07/28(木) 00:00:28
> 実際のところはどうなのでしょうか?
状況に因るとしか言いようが無いな。
全ての条件においてどちらかが必ず軽くなるというものではないので
ご自分の環境で軽かった方を選べばよろし。
222名無しさん@そうだ選挙にいこう:2005/07/28(木) 00:32:18
>>220
どちらでもあんまり大差ない希ガス
目次なしでも上書き保存にすごく時間がかかるのでは。
223名無しさん@そうだ選挙にいこう:2005/07/28(木) 00:41:42
>>221,222
レスありがとうございます。
シート枚数が多いから仕方ないですかね。
あまり変わらないないようなので、マクロを登録したボタン方式にします。
どうもありがとうございました。
224名無しさん@そうだ選挙にいこう:2005/07/28(木) 06:32:55
>>219
1〜9%を表示させたいのです。
切り捨てられているのでしょうか?
225名無しさん@そうだ選挙にいこう:2005/07/28(木) 09:12:22
>>224
普通に書式をパーセントスタイル(表示形式=パーセンテージ)に
設定すれば、218のような現象は起きませんが?
少なくとも手元の2002では再現できない。
226名無しさん@そうだ選挙にいこう:2005/07/28(木) 09:56:29
excelファイルを開こうとしたら『表示形式が追加できません』と出て、ファイルが開けないのですが、どうしたら開けるのでしょうか?お助け下さいexcel2000です。
227名無しさん@そうだ選挙にいこう:2005/07/28(木) 10:11:20
228名無しさん@そうだ選挙にいこう:2005/07/28(木) 10:46:31
>>223
データがフロッピーやMOだとソレが原因で遅くなりますよね。
HDDに置けるなら、置いた方がいいんだけど。

なのでウチは3人、3台のPCで同じエクセルデータを扱うので
一台のHDDに格納してソレを共有してます。媒体も要らないしね。
229ヘルプ!!:2005/07/28(木) 11:00:37
ROMってる暇なくてごめん!エクセルで画像を挿入できなくなった。ファイルから挿入するとファイル名の欄が透明になっててエラーで弾かれる。対処法教えてください。お願いします!PCはXP
230名無しさん@そうだ選挙にいこう:2005/07/28(木) 11:05:38
とりあえずPC再起動
直らなければMSのサポートへ
231名無しさん@そうだ選挙にいこう:2005/07/28(木) 11:10:03
>>227
ありがとう(^▽^)携帯からなので、帰宅後見てみます。
232名無しさん@そうだ選挙にいこう:2005/07/28(木) 11:49:14
マトリクスの計算をやっているのですが
Sub 掛け算()
Dim a(4, 4) As Integer, b(4, 4) As Integer

m = 4
n = 4

For i = 1 To m
For j = 1 To n
a(i, j) = Cells(i + 2, j)
Next j
Next i

For i = 1 To m
For j = 1 To n
b(i, j) = Cells(i + 2, 5 + j)
Next j
Next i

For i = 1 To m
For j = 1 To n
Cells(i + 2, 10 + j) = a(j, i) * b(i, j)
Next j
Next i

End Sub

最後の答えの部分を4×4ではなく列の総和を出して1×4にしたいのですが
どのようなやり方をすればよいのでしょうか?
OSはXPです
233名無しさん@そうだ選挙にいこう:2005/07/28(木) 12:06:58
最後の5行を

Dim buf As Integer
For j = 1 To n
buf = 0
For i = 1 To m
buf = buf + a(j, i) * b(i, j)
Next i
Cells(3, 10 + j) = buf
Next j

つーか、配列使わないで直接結果だせば?
配列使うにしても、ループ回さず一括してセル範囲の値を配列に入れられるし。

それと配列だけでなく変数や定数も宣言しようぜ。
Dim i As Long, j As Long
Const m As Byte = 4, n As Byte = 4
234名無しさん@そうだ選挙にいこう:2005/07/28(木) 13:03:33
再起動駄目でした…早急に直したい場合どうすればいいの?MSサポート意味ないっス
235ヘルプ!!:2005/07/28(木) 13:05:17
再起動駄目でした…早急に直したい場合どうすればいいの?MSサポート意味なかったです
236232:2005/07/28(木) 13:15:47

 1234           10 14 18 22
 2345
 3456
 4567 とあった場合 という風にしたいのです。

こちらの言いたい事がうまく伝わってなかったみたいですね・・・説明不足ですいません
237名無しさん@そうだ選挙にいこう:2005/07/28(木) 13:19:46
>>236
もっとちゃんと説明しろ
238232:2005/07/28(木) 13:42:45
2×2でやってみます。このプログラムだと
1,2   1,2   12
1,2 ×  1,2 =  24

という風になるのですが

1,2   1,2   36
1,2 × 1,2 =

という風に答えの数値を出力する時に列の数値を足した状態で出したいと考えているのです。

=SumPrducct
を使うのかと思ったのですがうまくいかなかったので質問してみたのですが     
239名無しさん@そうだ選挙にいこう:2005/07/28(木) 13:57:52
>>238
それなら>>233でいいじゃん。
それともVBAじゃなくてワークシート関数でやりたいってこと?

> ★要望は具体例や図を使って明確かつ具体的に。
240名無しさん@そうだ選挙にいこう:2005/07/28(木) 14:01:23

> =SumPrducct
> を使うのかと思ったのですがうまくいかなかったので質問してみたのですが     

そりゃ、そんな関数無いからうまくいかなくて当然だな
SumPrducct関数ではなく
SumProduct関数使えよ
241232:2005/07/28(木) 14:09:21
>>233さん
申し訳ありません。そのやり方で正しかったです

>>240
そうでしたね。
SumProductのつもりで書いたのですがuがcになってしましました

ご迷惑おかけしました。ありがとうございます



242名無しさん@そうだ選挙にいこう:2005/07/28(木) 18:25:54
【1 OSの種類         .】 WindowsXPhome sp2
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

誠に初歩的な質問でアレなんですけど
>12の ・ 入力したセルの値を書き換える (VBA) に該当するかもしれませんが

「リンクで文字列を作った後でそれを通常の文字列に変換することは出来るでしょうか?」

わかりにくいと思いますので具体的に言いますと

A1のセルには 相談所 と書いてあると仮定します
B1のセルに =A1 と記述してあるので当然B1のセルにも 相談所 と表示されるのですが
B1のセルにはリンクではなく、文字列で 相談所 と書きたいんです
「じゃあ最初っから相談所って書けばいいだけじゃねえかボケ」と仰るのは当然ですが、すで
に100項目以上をリンク形式で作ってしまったため、今から気合で文字列に書き直すのには
勇気がいって、何か良い方法はないものかと思い相談させていただいた次第です。
印刷するならいいんですが、データで渡した方がいいことに気づき、絶望的な気持ちになっ
ています。
243名無しさん@そうだ選挙にいこう:2005/07/28(木) 18:33:17
>>242
A1をコピーする。
B1に「値」だけ貼り付ける。
以上。

2000なら「形式を選択して貼り付け」経由で「値」ですか。
244名無しさん@そうだ選挙にいこう:2005/07/28(木) 18:56:29
>>243
出来ました。
我ながら恥ずかしいぐらいなんとも初歩的な質問で大変お手数をおかけいたしました。
誠にありがとうございます。
245名無しさん@そうだ選挙にいこう:2005/07/29(金) 15:42:58

【mac os x10.4】 Windows**
【Exel v.x 】 Excel**
【3 VBAが使えるか  いいえ  .】
【4 VBAでの回答の可否】 可・否

初心者です、どなたかご教授下さい。
タテ(行)順に入力されているデータをヨコ(列)順に並べ替えるにはどうすれば
一番早く処理できますか?
手作業では、この作業を大量の書類に対して行わなければいけないので
気が遠くなってしまいます。
どなたか簡単に出来る方法がありましたらお教えくださいませ。

よろしくお願いします。
246名無しさん@そうだ選挙にいこう:2005/07/29(金) 15:57:19
247名無しさん@そうだ選挙にいこう:2005/07/29(金) 16:16:44
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
円グラフの中心に、円を表示させその中に値の合計を表示させる
にはどうすればよいでしょうか。

248名無しさん@そうだ選挙にいこう:2005/07/29(金) 16:52:34
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
偏差値と順位を求めたんですけど、偏差値と順位にずれが生じて
しまったんですけど、なぜかわかりますか?
よろしくおねがいします。
249名無しさん@そうだ選挙にいこう:2005/07/29(金) 17:05:06
> なぜかわかりますか?
使い方間違ってるから...だと思う
なんにしても情報がなければこれ以上は答えられないな
250名無しさん@そうだ選挙にいこう:2005/07/29(金) 17:26:12
>>215
ありがとうございます。
いじくる順番を間違えていたようです。
251名無しさん@そうだ選挙にいこう:2005/07/29(金) 17:34:29
>>247
円グラフではなくドーナツグラフを使い、値の合計はグラフの中心に
テキストボックスを置いて、そこに合計値のセルをリンクさせる。
(グラフの中心をクリックして、その状態で数式バーに「=D10」のように
入力すればいい)
252247:2005/07/29(金) 17:47:11
>>251
ありがとうございます。できました。
そういう機能があるわけではないのね…
ちょっと面倒だけどやって見ます。
253名無しさん@そうだ選挙にいこう:2005/07/29(金) 23:42:52
初めてマクロを組んでみようと思って今奮闘してるのですが基本的な以下のことがわからなくて
困っておりますどなたかご教授お願いします <(_ _)>

シート1にコマンドボタンを配置してそのボタンを押すとUserForm1が出てくるようにし
UserForm1にあるコマンドボタンをおすとUserForm1が閉じるようにしたいのですが

シートのコードに

Private Sub CommandButton1_Click()
Load UserForm1
End Sub

とコードを書いてもうまくいきません><
どなたか教えていただけませんでしょうか。
254253:2005/07/29(金) 23:46:00
肝心なバージョン書き忘れました
VBのバージョンは6.0です
エクセルのバージョンはXPです

よろしくおねがいします <(_ _)>
255名無しさん@そうだ選挙にいこう:2005/07/30(土) 00:08:08
お聞きします。

Excel2000で、入力用のダイアログボックスを作成したのですが、
ユーザーフォームに入力したデータをセルに転記する部分のマクロで、
ユーザーフォームのテキストボックスに入力したテキストをセルに転記するのは

Range("Database").Cells(insertRow, 1) = Textbox.Text

という記述で出来たんですけど、チェックボックスとオプションボタンで、それぞれ

「チェックがONならセルに(陽性)と記入、OFFならセルは空白のまま」

というプログラムはどのように記述したらよいでしょうか?

どうかご教授お願いします。
256253:2005/07/30(土) 00:25:05
調べ方が悪かったみたいです
根気良く調べてみたらできました
開くときは Load UserForm1 ではなく UserForm1.show にするんですね^^;

お騒がせしてすみませんでした <(_ _)>
257名無しさん@そうだ選挙にいこう:2005/07/30(土) 02:13:39
エクセルで1〜100のA〜Fを横にすべて結合したいんですが、まとめて結合する方法とかってあります?
258名無しさん@そうだ選挙にいこう:2005/07/30(土) 04:03:34
>>257

とりあえずA列の1〜100を結合し、あとはオートフィルを使う。
259名無しさん@そうだ選挙にいこう:2005/07/30(土) 06:05:29
Excel2000での円グラフ作成について、質問です。
http://www.imgup.org/file/iup62709.gif のような円グラフにおいて、
全体のサイズは変えずに、円のサイズだけをもっと大きくしたいのですが、
どうすればできますか?
260名無しさん@そうだ選挙にいこう:2005/07/30(土) 06:21:12
>>259
円グラフの円を囲んでいる外接四角形のどこかでクリックすると、
四隅にポイントの付いたグレーの四角形が出る。
その四隅の部分をポイントすると斜め矢印が出るので、それを外に
引っ張ると、円だけが大きくなるよ。
261259:2005/07/30(土) 08:08:22
>>260
オーできたできた! Thanx!
こんな所に隠しオブジェクト(?)があるとは、知らなかったよ。
262名無しさん@そうだ選挙にいこう:2005/07/30(土) 08:21:31
別に隠しじゃないけどね。
単に棒や線グラフとかだと、プロットエリアのうち、データオブジェクト以外が占める割合が多いけど
円グラフだとコレが少なくて端に寄ってるので知らないとちょっと解りづらいってだけでしょ。
プロットエリアという概念を知ってれば、円グラフでも瞬時にどうすればいいかわかるはず。

棒線グラフでも、グラフの位置やサイズを変更する方法を知らないってなら単なる知識不足だが
プロットエリアを知っていて、円グラフのプロットエリア選択方法が解らないってのはちょっと頭弱すぎかも。
263名無しさん@そうだ選挙にいこう:2005/07/30(土) 08:42:17
>>253
Load ステートメント

オブジェクトを読み込みますが、表示はしません。

ヘルプにこう書いてあるじゃん

Userform1.Show だろ

264263:2005/07/30(土) 08:42:56
と書いたら既に解決してたみたいでスマソ。
265名無しさん@そうだ選挙にいこう:2005/07/30(土) 08:49:46
>>263
256 名前:253 [sage] 投稿日:2005/07/30(土) 00:25:05
調べ方が悪かったみたいです
根気良く調べてみたらできました
開くときは Load UserForm1 ではなく UserForm1.show にするんですね^^;

お騒がせしてすみませんでした <(_ _)>

>>256にこう書いてあるじゃん

既に自己解決してるだろ




と書いたら既に気付いて謝ってたみたいでスマソ。
266255:2005/07/30(土) 10:00:37
スルーされちゃいそうなのでもう一度お聞きします。

Excel2000で、入力用のダイアログボックスを作成したのですが、
ユーザーフォームに入力したデータをセルに転記する部分のマクロで、
ユーザーフォームのテキストボックスに入力したテキストをセルに転記するのは

Range("Database").Cells(insertRow, 1) = Textbox.Text

という記述で出来たんですけど、チェックボックスとオプションボタンで、それぞれ

「チェックがONならセルに(陽性)と記入、OFFならセルは空白のまま」

というプログラムはどのように記述したらよいでしょうか?

どうかご教授お願いします。
267名無しさん@そうだ選挙にいこう:2005/07/30(土) 10:01:51
>>262
はいはい、アンタはエライんだね。
つーか… 氏ね厨房!
268名無しさん@そうだ選挙にいこう:2005/07/30(土) 10:11:26
>>267
どうしたの、ボウヤ?
269hoge ◆hoge//WRxY :2005/07/30(土) 10:27:09
>>255,>>266
セルに文字を入れる部分は出来てるとのことなのであとは条件判断ですね。
大きく分けてふたつの方法があります。
ひとつは条件によって入力処理実行の有無を分ける方法。
 If CheckBox1.Value Then
  Range().Value = "文字列"
 End If
もうひとつは条件によって入力値を変更する方法。
 Range().Value = IIf(CheckBox1.Value, "文字列", "")

前者はチェックがOFFなら処理を行わないので、空欄なら空欄のまま、
既に何か入力されていてもそのままになります
後者はチェックがOFFならセルを空にする(""を代入する)処理です。

前者の方法で、セルを空にすることも出来ますし、それを1行で書くことも出来ます。
 If CheckBox1.Value Then Range().Value = "文字列" Else Range().ClearContents
逆に後者の方法で、チェックが無い場合にセルの値を保持することも出来ます。
 Range().Value = IIf(CheckBox1.Value, "文字列", Range().Value)

チェックボックス1とオプションボタン1の両方がチェックされてるときに入力を行いたいなら
Andで条件を繋げればいいし、それぞれのチェック状況で処理を振り分けたければ
Select Case True
 Case CheckBox1.Value And OptionButton1.Value
  Range().Value = "CheckBox1 と Option1 がチェックされています"
 Case CheckBox1.Value
  Range().Value = "CheckBox1 がチェックされています"
 Case OptionButton1.Value
  Range().Value = "Option1 がチェックされています"
 Case Else
  Range().ClearContents
End Select
という感じで。(オプションボタンは正確には「チェック」ではなく「選択」ですが。
270名無しさん@そうだ選挙にいこう:2005/07/30(土) 17:15:36
ひとつのブックにシートが複数まいあるのですが、それらのシートにはすべて保護を
かけてあります。
それらの、シートの保護・解除を一発で行えるマクロを教えてください。
シートの枚数は変動します。

宜しくお願いします。
271hoge ◆hoge//WRxY :2005/07/30(土) 17:44:16
>>270
Sub 全てのシートを保護()
 Dim WsObj As Worksheet
 For Each WsObj In Worksheets
  WsObj.Protect
 Next WsObj
End Sub

Sub 全てのシートの保護を解除()
 Dim WsObj As Worksheet
 For Each WsObj In Worksheets
  WsObj.Unprotect
 Next WsObj
End Sub

「このシートのすべてのユーザーに許可する操作」
にあるオプションの設定については、ご自分でご指定ください。
VBAヘルプを「Protect」で検索すれば、オプションの指定方法は詳しく書いてあります。

又は、マクロの記録で好みのオプションでの保護を記録させ、
その引数のみを引っ張ってきてもいいですが。
 ActiveSheet.Protect 〜〜〜, 〜〜〜 _
  〜〜〜, 〜〜〜
という感じで記録されると思うので、「ActiveSheet.Protect」以下を
上記コードの「WsObj.Protect」の後ろにコピペすればOKです。
272名無しさん@そうだ選挙にいこう:2005/07/30(土) 17:59:39
>>271
どうも親切にありがとうございました!!
早速使わせていただきます!!
273名無しさん@そうだ選挙にいこう:2005/07/30(土) 20:06:28
すいません。
折れ線グラフでムーアの法則を表すグラフを作りたいんですが、
横軸に時間、縦軸に周波数でさらに各サンプルにCPU名を表示させたいのですが、
こういうのって標準ではできないんでしょうか?
ちなみにEXCEL2000を使ってます。
274名無しさん@そうだ選挙にいこう:2005/07/30(土) 20:24:01
>>273
> 各サンプルに
サンプルって何ですか?
Excelのグラフの構成要素に"サンプル"なんて用語はありませんけど。

> CPU名を表示させたいのですが
どういう風に表示させたいのか知らんが、
グラフの標準機能として表示させられなくても、
Excelの標準機能でオブジェクトをグラフの上に置くことによって、
いくらでも対応可能。
275255=256:2005/07/30(土) 20:40:47
hoge ◆hoge//WRxY さま、丁寧なレス本当にありがとうございました^^

心から感謝です^^
276名無しさん@そうだ選挙にいこう:2005/07/30(土) 21:18:30
>>274
サンプルも知らんのに回答しようとでしゃばる奴がいるとは・・・
277名無しさん@そうだ選挙にいこう:2005/07/30(土) 23:01:51
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

質問させていただきます。グラフを書いたときにY軸ラベルに文字が入りきらなくて困っています。
ラベルのサイズを変更する方法を教えていただけますでしょうか?VBAでなければ解決しない
というのであれば、それでも結構です。よろしくお願いします。
278名無しさん@そうだ選挙にいこう:2005/07/30(土) 23:22:19
>>277
わざわざVBAなんか使わないでもラベルのサイズなんて簡単に変更できるでそ・・・
てきとーに色々いじってごらんよ・・・
279名無しさん@そうだ選挙にいこう:2005/07/30(土) 23:35:44
>>278
いろいろやってみたけどわかりません
グラフエリアみたいに簡単にはサイズ変更できないのですか?
280名無しさん@そうだ選挙にいこう:2005/07/30(土) 23:50:02
>>279
ラベルを右クリック
281名無しさん@そうだ選挙にいこう:2005/07/31(日) 00:39:01
>>280
書式の設定ですか?ラベルのサイズはどうしても変更できません
パワポに貼ってから編集して何とかなりましたが、方法を知っておきたいですね
282名無しさん@そうだ選挙にいこう:2005/07/31(日) 03:52:49
▼━質問 ━━━━━━━━━━━━
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

質問させてください。マクロでひとつのブックに存在する
全てのシートの書式を一括して変更しようとしています。
ただ、各シートの名前には年月が入っており(「H17-06○○支店」みたいに)
「新しいマクロの記録」という動きを記録するマクロですと毎月編集して
H17-07とかH17-08のように変更していかなければなりません。
よい解決方法はないでしょうか?ご教示いただければと思います。
283282:2005/07/31(日) 04:26:38
すみません。
解決しました。お騒がせしました。。
284名無しさん@そうだ選挙にいこう:2005/07/31(日) 05:54:08
>>281
軸ラベルやグラフタイトルは、他の要素(たとえばプロットエリアや凡例、
グラフエリアなど)と違って、四隅のハンドル(■)をドラッグして大きさを
変えるというわけにはいきません。

でもラベル用の文字を入力すれば、その文字数に応じて勝手に領域が
広がってくれますので、そもそも「Y軸ラベルに文字が入りきらない」という
現象自体が、なんで起こっているのかわからないのですが?

軸ラベルをクリックして選択→入力したい位置にカーソルを置いて
もう一度クリック→文字を追加入力
で、文字数は増やせます。かなりの文字数が入りますよ。
(2002で確認。たぶん2003でも同じ)
285名無しさん@そうだ選挙にいこう:2005/07/31(日) 07:21:10
>>281
無礼すぎ
286名無しさん@そうだ選挙にいこう:2005/07/31(日) 08:33:07
>>281
どこが?
馬鹿かお前?
287名無しさん@そうだ選挙にいこう:2005/07/31(日) 08:37:18
>>286
怒りのあまりアンカー間違えたじゃねーか
>>285
288名無しさん@そうだ選挙にいこう:2005/07/31(日) 08:45:21
>>287
無礼すぎ
289282:2005/07/31(日) 11:12:00
▼━質問 ━━━━━━━━━━━━
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

質問させてください。マクロでひとつのブックに存在する
全てのシートの特定の部分をコピー(D27:U70)し、
その後で新規に作った1枚のシートにコピーした
全ての部分を順番に貼り付けようとしてます。
グループ化して一括でコピー&貼り付けしようと
すると貼り付けるときにエラーになってしまいます。
よい解決方法はないでしょうか?ご教示いただければと思います。
290名無しさん@そうだ選挙にいこう:2005/07/31(日) 11:24:20
>>289
ご教示いただければと思います。ってことは、ご教示して
もらえなくても仕方ないとも思ってるってことね。
291hoge ◆hoge//WRxY :2005/07/31(日) 11:38:20
>>289
空シートを作って末尾(一番右)に置き、以下のマクロを実行
Dim i As Long
For i = 1 To Worksheets.Count - 1
 Worksheets(Worksheets.Count).Range(Cells(i * 44 - 43, 1).Address, Cells(i * 44, 18).Address).Value = _
 Worksheets(i).Range("D27:U70").Value
Next i

結果は、末尾に追加した空シートの内容が下図のようになるはず。
空シートを末尾に置かないと、末尾のシートのデータが書き換えられるので注意。
@、Aはシートの番号(シートタブの左から順に1,2,3…)です。

    A  |  B  |  C  〜  Q  |  R  |  S
1 | @-D27                  @-U27
2 |

43|
44|@-D70                  @-U70
45|A-D27                  A-U27
46|
292名無しさん@そうだ選挙にいこう:2005/07/31(日) 12:01:33
>>291
hogeさん、できました!
本当にありがとうございました。
293名無しさん@そうだ選挙にいこう:2005/07/31(日) 17:08:28
グラフを作った後で
凡例の中の文字を変えることは出来ますか?
簡単なことですみません。
294名無しさん@そうだ選挙にいこう:2005/07/31(日) 17:26:50
>>293
凡例の文字に対応しているセルの中身を書き換えればいいです。
295293:2005/07/31(日) 17:36:50
>>294
早速のアドバイスありがとうございます。

凡例に対応しているセル自体が、完成品の表の一部になっている場合、
凡例元のセルを書き換えたくないのですが、なんとかならないでしょうか?

つまり凡例元のセルを触らずに、凡例そのものを書き換える方法はないでしょうか?
296名無しさん@そうだ選挙にいこう:2005/07/31(日) 17:42:10
>>295
あれは全体で1つのオブジェクトなので、無理じゃないの?
どうしても変えたければ、凡例を削除して
代わりにテキストボックスを配置し、好きなように書けばいいのでは?
297293:2005/07/31(日) 17:59:11
>>296

なるほど、ありがとうございました。またお願いします。
298名無しさん@そうだ選挙にいこう:2005/07/31(日) 18:13:34
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 2002
【3 VBAが使えるか    .】 少し(今勉強中です)
【4 VBAでの回答の可否】 可(ぜひとも>< )

A4というセルにabcde0731.txtという文字列(ファイル名なのですがね^^;)がはいっていたとした場合
そのA4の文字列がこちらの指定と同じかをチェックしたいのですがマクロの組み方がわかりません
※abcdeのあとの0731は固定ではありません ただしチェックのときは4桁の数字が入ってればOKとします。

If Range("A4").Formula = abcde(4桁数字が入ってること).txt then
a = 1
Else
a = 0
End If

(4桁数字が入ってること)の部分をどうすればいいのかがわかりません、数字じゃなくても4文字の文字列が
入ってるという判断でもOKです。

どなたかこういう不特定の文字数のあってる文字列が入ってるかを判別するときの方法を教えていただけません
でしょうか よろしくお願いします <(_ _)>
299298:2005/07/31(日) 18:14:36
上げ忘れました すみません<(_ _)>
300hoge ◆hoge//WRxY :2005/07/31(日) 19:06:26
>>298
つまり、セルの値が
「"abcde" 数字4桁 ".txt"」だったら変数aに1を代入、
違っていればaに0を代入って事でしょうか?
それなら
a = 0 - ("abcde031.txt" Like "abcde####.txt")
というかんじで。処理を振り分けたいなら
If Range("A4").Value Like "abcde####.txt"t then
Else
End If

= ではなくLike演算子を使うと、ワイルドカードを拡張したような指定が出来ます。
数字以外の文字でも1を返したいなら"abcde????.txt"です。
詳しくは「Like」でVBAヘルプを検索してみてください。
もっと複雑な指定がしたい場合は正規表現も使えます。
301298:2005/07/31(日) 19:20:55
>>300

>「"abcde" 数字4桁 ".txt"」だったら変数aに1を代入、
>違っていればaに0を代入って事でしょうか?

まさにそのとおりです 説明が下手で申し訳ありませんでした^^;

Link演算子というのを使えばいいのですか!初めてその演算子知りました^^;
300さんが書いてくれた内容でできそうです
さっそくLink演算子について調べてやってみます 
300さんありがとうございます <(_ _)>
302名無しさん@そうだ選挙にいこう:2005/07/31(日) 19:49:45

L i n k じゃなくて
L i k e な
303298:2005/07/31(日) 19:50:22
Link演算子というのを使えばいいのですか!
あ!Likeでした^^;
304名無しさん@そうだ選挙にいこう:2005/07/31(日) 21:24:48
>>297
ウケる。>>296を見て、このスレのレベルじゃどうにもならんと
見限ったわけね。正解
305名無しさん@そうだ選挙にいこう:2005/07/31(日) 21:31:46

(´-`).。oO( この子、どうしたんだろう… )
306名無しさん@そうだ選挙にいこう:2005/07/31(日) 21:43:47
>>305
どうしたの?ボウヤ
307名無しさん@そうだ選挙にいこう:2005/07/31(日) 23:06:32
>>304
それは「私にもわかりませんorz」と言う意味だな?
308名無しさん@そうだ選挙にいこう:2005/08/01(月) 13:32:08
SUMIF関数を使って在庫管理しています。
ところが同じ商品名で違う商品という厄介なものが出てきまして
今関数とにらめっこしてる状態です^^;
=SUMIF(範囲を商品一覧,商品,合計範囲を入荷出荷した数)として
まあ普通に使ってやっているのですが・・・どうすればいいでしょうか。
AND関数も使えないし、複数のセルを範囲として指定することは不可能でしょうか?
日本語下手ですいませんがよろしくお願いします
309名無しさん@そうだ選挙にいこう:2005/08/01(月) 13:48:01
>>308
> 複数のセルを範囲として指定することは不可能でしょうか?
配列数式で可能。
具体的なシート内容が書かれてないので、具体的な式はご自分で調べましょう。
310名無しさん@そうだ選挙にいこう:2005/08/01(月) 14:20:13
配列数式というやつを調べてみたのですが
すごい難しいですね。。出来そうだというのはわかりましたが・・・
頑張ってみますがかなり難しそうなので
こちらに具体的なシートを書きに来るかもしれません(汗
すいません(苦笑
311名無しさん@そうだ選挙にいこう:2005/08/01(月) 20:15:31
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

Excel2003の集計機能ですが、
おなじリストに対して複数回集計を行うと
小計行の入る位置がおかしくなるのは既出ですが?

http://support.microsoft.com/default.aspx?scid=kb;ja;405366#kb4
312名無しさん@そうだ選挙にいこう:2005/08/01(月) 21:27:47
区別したら・・・・
313名無しさん@そうだ選挙にいこう:2005/08/02(火) 07:12:24
>>307
いちいち確認しないと不安なの?ボウヤ
314名無しさん@そうだ選挙にいこう:2005/08/02(火) 07:40:12
>>313
お前、>>304と同じ奴だな。
こんな時間経って、その程度のレスしか出来んのかこの池沼!
消防は、おとなしく宿題でもしてな。
315名無しさん@そうだ選挙にいこう:2005/08/02(火) 08:48:33
近似曲線(累乗近似)と直線の交点を求めるには、どうすればいいんですか?
316名無しさん@そうだ選挙にいこう:2005/08/02(火) 08:59:05
それを求めるための数学知識があれば、Excelで解くのはわけないと思うが。
数学知識からして欠如してるなら、Excel関係ない問題なのでスレ違い。
317名無しさん@そうだ選挙にいこう:2005/08/02(火) 09:08:48
>>316
説明できないのなら引っ込んでろ、馬鹿
318名無しさん@そうだ選挙にいこう:2005/08/02(火) 09:16:04
これで回答が付く確率は0になったわけか...
ご愁傷様 (-人-)
319名無しさん@そうだ選挙にいこう:2005/08/02(火) 09:20:19
>>318
説明できない言い訳ができてよかったな、カスw
320名無しさん@そうだ選挙にいこう:2005/08/02(火) 09:48:48
>>315
累乗近似の近似曲線を追加する際、「オプション」タブを選んで、
「グラフに数式を表示する」にチェックを入れます。

これでグラフ上に、その近似曲線を表す数式が表示されます。
後はその数式に、求めたい直線の値を入れて交点を計算してください。
321名無しさん@そうだ選挙にいこう:2005/08/02(火) 10:02:02

Excel総合相談所・雑談・議論スレ
http://pc8.2ch.net/test/read.cgi/bsoft/1120184635/
322名無しさん@そうだ選挙にいこう:2005/08/02(火) 10:16:18
>>321
キモいスレだなw
根暗人間の巣窟スレだなw
323263:2005/08/02(火) 10:54:04
324名無しさん@そうだ選挙にいこう:2005/08/02(火) 17:31:55
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
かなり既出な気がするのですが、イマイチ見つからなかったので質問します。

ブックAとブックBという2つのブックがあり、ブックA上のシート(Sheet1)をブックBに
コピーしたい。
ただし、Sheet1には他シート(ブックA上の"Sheet2")への参照数式が入っています。
普通にコピーすると、「=[ブックA.xls]Sheet2!A1」のように、他ブック参照が付加
されてしまいます。この他ブック参照を付けずにコピーしたいのです。
ちなみに、コピー先のブックBには、ブックAと同じSheet2が既に存在します。

どうすればいいでしょうか。
325名無しさん@そうだ選挙にいこう:2005/08/02(火) 17:35:13
取引先 商品
A商店  あ
B商店  い
A商店  う
D商店  え

という感じのデーターの中から「あ」「い」「う」「え」の全ての商品を
買っているお店を探す方法はありますか?
326名無しさん@そうだ選挙にいこう:2005/08/02(火) 18:31:17
>>324
1、ブックBで〔編集〕-〔リンクの設定〕でリンクの編集ダイアログボックスを表示
2、リンク元がブックAになっているモノを選択して〔リンク元の変更〕
3、ブックBでOK

すれば、ブックBの"Sheet2"になると思います。
327hoge ◆hoge//WRxY :2005/08/02(火) 18:39:52
>>324
置換機能を使ってブック名を一括消去もできますよ。
検索に [ブックA.xls] を入れて、置換後の文字列を空にすればOKです。
一括置換やリンクの設定はシート全体に対して処理されるのでブックAへの参照を残したい部分もあるなら、
1. 置換機能を使って = をシート内で使われていない適当な文字(##とか)に置換
2. シートをコピー
3. コピー先で、置換した文字を = に戻す。
とすることで、コピーによるブック参照の付加は起こりません。

>>325
VBA可ですか?
取引先がA列2行目から、商品名がB列2行目から、
結果はC列2行目以降に返すってならコード書きますけど。
328名無しさん@そうだ選挙にいこう:2005/08/02(火) 21:30:08
FAQかとは思うのですが、探し出せなかったので・・・

1-1と入力すると、1月1日と変換するのをやめたいのですが、どうしたらいいか分かりません

お願いします
329名無しさん@そうだ選挙にいこう:2005/08/02(火) 21:38:38
>>328
>>7
因みにExcel全体に対する設定は無い
330名無しさん@そうだ選挙にいこう:2005/08/02(火) 21:44:24
>>329
ありがとうございました
探したんですけど、見逃していたようです
331名無しさん@そうだ選挙にいこう:2005/08/02(火) 23:20:56
>>314
は?違いますけど。
332名無しさん@そうだ選挙にいこう:2005/08/02(火) 23:28:18
【1 OSの種類         .】 Windows 98 SE
【2 Excelのバージョン   】 Excel 2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

やりたいことは、
シート"data"から1列300行、シート"eval"から1列300行を持ってきて、例えば
data!b3 * eval!b3 + data!b4 * eval!b4 ...
としてその答えを求めようとしてます。

問題の式は

=MMULT(TRANSPOSE(OFFSET(data!$A$3,0,E$1,300,1)),OFFSET(eval!$A$3,0,$A4,300,1))

* MMULT(A,B) =行列A と 行列B の積
* TRANSPOSE(A) =行列A の行と列を入れ換える(転置)
* OFFSET(基準の場所,縦にずらす数,横にずらす数,取り出す行数,取り出す列数)

しかし、結果は#VALUE!となってしまいます。
(ヘルプを見た所、行列が不正、みたいな感じ?)
(OFFSET単体が正常に動いてるのかどう確認するのかわからない)
どこがいけないのでしょうか。
333名無しさん@そうだ選挙にいこう:2005/08/02(火) 23:36:46
データベースにデータを取り込む為にEXCELで※1や※2の機能を持った定型フォームまたは定型表
を作りたいのですがどういう機能・関数とか方法を使えばいいのでしょうか?

※1.20項目と20行からなる入力表で20×20以外の他の部分には入力出来ないようにしたい。
※2.数値限定セルと文字列限定セルを作り数値限定セルには文字は入力出来ないようにしたい。

※1に関してはパスワードを設定すれば可能なのですが他人に入力して貰うのでパスワードを
設定しないで保護をしたいのですが方法がよくわかりません。
334名無しさん@そうだ選挙にいこう:2005/08/02(火) 23:38:39
>>332
ひょっとして、数式を入力するとき「Enter」ではなく、
「Ctrl」+「Shift」+「Enter」とやればうまく行かないかな?
335名無しさん@そうだ選挙にいこう:2005/08/02(火) 23:53:21
>>327
いまいちVBAよくわからんとすけど
やっぱあという事は関数では無理とですね
336hoge ◆hoge//WRxY :2005/08/03(水) 02:52:51
>>332
その式を見ると別のことがやりたいのかも知れないけど、
「data!b3 * eval!b3 + data!b4 * eval!b4 ...data!b302 * eval!b302」を出すなら
=SUMPRODUCT(data!B3:B302*eval!B3:B302)
で出せますよ。

>>333
※1 20*20の範囲だけロックを解除してシートの保護
※2 入力規則

>>335
325さんですか?
作業セルを使えば関数でも出せますよ。
   A  |  B  |  C  |  D  |  E  |  F  |  G  |  H  |  I
1| 取引先 商品         あ    い    う    え
2| A商店  あ    A商店   @→                   A    B
3| B商店  い    B商店   ↓                    ↓    ↓
4| A商店  う    C商店
5| D商店  え    D商店

@{=SUM(($A$2:$A$100=$C2)*($B$2:$B$100=D$1))>0}
A=IF(D2*E2*F2*G2=1,C2,"")
これでH列に全商品購入してる取引先の名前が出ると思います。
又は
@=MATCH($C2&D$1,$H$2:$H$100,0)
A=A2&B2
B=IF(ISERROR(SUM(D2:G2)),"",C2)
でもいいかな。たぶん後者の方が遙かに軽いです。
式はデータ量に合わせて補完してください。作業セルは非表示にしてもOKです。
もっと良い方法があるような気もしますが…
337名無しさん@そうだ選挙にいこう:2005/08/03(水) 03:45:59
お聞きしたいのですが、excelでA4サイズ等の用紙に5mm×5mmのマスを入れたもの(表?)をつくる事は
可能なのでしょうか?表を応用してマス一辺が5mmという正確な表を作り、製図に使いたいので、
可能でしたらどうやってするのか教えて下さい。
338名無しさん@そうだ選挙にいこう:2005/08/03(水) 04:01:37
>337
不可能
CADでも使え
339名無しさん@そうだ選挙にいこう:2005/08/03(水) 04:38:30
>>337
Excelは、お絵かきツールではないのよ。
中高年に多いんだが、何でもかんでもExcelでやろうとする香具師大杉
例えば、送付状とか報告書とか、普通Wordで作るべき物をすべてExcelでやる。
おそらく、必死で覚えた唯一のアプリなんだろうな(w
340名無しさん@そうだ選挙にいこう:2005/08/03(水) 04:41:31
>>338
CADもってます。CAD使えれば一番早いんだけど、CAD入れてるPCはプリンタに繋がってないし、
コードもないし、ドライバもないし・・・FDに移してプリンタに繋がってるPCで立ち上げてもCADいれてないからか
文字化けしちゃうから、excelでできるかなときいてみました
341名無しさん@そうだ選挙にいこう:2005/08/03(水) 06:50:59
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

例えば、A〜Eまでのセル内の数値の合計をFに出して、
そのA〜Eまでのセルの中で、1以上数値が含まれているセルの個数で割り、
その答えをGに出す。
みたいな計算をしたいのですが、数式がわかりません・・・。

がんばって調べたのですが、馬鹿なので結局わかりませんでした・・・(;;
342hoge ◆hoge//WRxY :2005/08/03(水) 08:05:51
>>341
・合計はSUM関数
F1=SUM(A1:E1)

・条件を満たすセルの数を返すにはCOUNTIF関数
1以上数値が含まれているセルの個数=COUNTIF(A1:E1,">=1")
GI=F1/COUNTIF(A1:E1,">=1")

>>340
ARCADやDJ!などフリーのCADもあるので、プリンタに繋いでるPCに入れてみては?
343名無しさん@そうだ選挙にいこう:2005/08/03(水) 10:56:36
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

combobox で配列のリスト表示しているデータを選択した後
combobox内に配列データごと表示する方法を教えてください
よろしくお願いします

344名無しさん@そうだ選挙にいこう:2005/08/03(水) 11:07:40
>>343
日本語でよろしく
どういう状態から何をしたときにどういうふうにしたいのか
脳内完結ではなく第三者にもわかるようにきちんと説明しよう

というか
> combobox内に配列データごと表示する方法
が、ComboBoxに配列内の全データを一括して割り当てたいってことなら無理
標準のComboBoxはループ回さずに配列内の全データを
アイテムとして追加することはできないから
345名無しさん@そうだ選挙にいこう:2005/08/03(水) 11:43:50
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

大量の報告書をエクセルファイル10個ほどに分散させて作成しています。
(1ファイルに10シートくらい、1シートには複数ページ入っている)
現在のファイルは、報告書のページ順になっていません(作業の関係上)。

現在の作業ファイルを並べ替えずに、新しいエクセルファイルなどから作業ファイルをリンク呼び出しして
報告書順にプリントアウトする、という事はムリでしょうか・・・?
346名無しさん@そうだ選挙にいこう:2005/08/03(水) 12:14:08
>>345
・10個の報告書を全て開いておく
・ブック名シート名をドロップダウンリストに全て列挙しておく
・リストでひとつずつ選択しながら印刷していく
なら可能だけど、上記の条件を満たせないならVBA使わないと無理だろうな
347名無しさん@そうだ選挙にいこう:2005/08/03(水) 13:12:40
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 自分で作ることはできません
【4 VBAでの回答の可否】 可

あるソフトからエクスポートしたExcelファイルのデータで

『0001』と数字が文字列形式で出力されてしまいます。
これを0を省いた『1』という数値形式に一括変換する方法はありますか?




348hoge ◆hoge//WRxY :2005/08/03(水) 13:52:52
>>347
条件によっては置換で出来る場合もあるけど、マクロの方が汎用性があるかな。

Sub 数字文字列を数値に変換()
 Dim R As Range
 For Each R In ActiveSheet.UsedRange
  If IsNumeric(R.Value) Then
   R.NumberFormatLocal = "G/標準"
   R.Value = R.Value
  End If
 Next R
End Sub
349347:2005/08/03(水) 17:23:42
>>348
hoge ◆hoge//WRxY さんありがとうございます!
気持ちがいいくらいに一括で変換できました!

本当に助かりました!
350333:2005/08/03(水) 20:47:01
>>336
hogeさん、回答ありがとうございます。

>※1 20*20の範囲だけロックを解除してシートの保護

この方法は知っていたのですが毎回パスワードを入力しないと入力出来ません。
パスワードを入力しないで入力出来るようには出来ませんか?

> ※2 入力規則

こちらはうまくいきました。(^^)v
351345:2005/08/04(木) 10:16:22
>>346
ありがとうございます。
やっぱりVBAか・・・・構文がいまいち分からないので、改造は出来るけど自分で新規に作れないのです(´;ω;`)
他にVBA分かる人も職場にあまり居ないので、作ってもメンテが出来ない・・・

VBA使わない方向で出来る限り省力化を考えてみます。すみませんでした。本当にありがとう。
352名無しさん@そうだ選挙にいこう:2005/08/04(木) 10:58:35
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 少しだけ
【4 VBAでの回答の可否】 できれば否

質問させてください。

1月、2月、3月…と12ヶ月分のを作り商品ごとの売り上げを入力したとします。
そして最後に「年間集計」というシートを作りました。

シート「年間集計」のセルA1に「3」と入力したら3月分の売り上げが、
「4」と入力したら4月分の売り上げが「年間集計」のシートに
表示されるようにしたいのですが関数にシートの参照を
「年間集計」のA1から引っ張るコトは可能でしょうか?

いい方法が思いつかず今は
「=IF(A1=1,'1月'!C1,IF(A1=2,'2月'!C1,IF(A1=3,'3月'!C1…」といった感じでIF関数で強引に組んでいるのですが
すごく無駄が多い気がして仕方ありません。
IF関数の上限によりいくつかに分けないといけないコトもあり…

例えば「='A1'!C1」のような感じでシートの参照をセルA1から引用するコトは可能なのでしょうか?
ちなみに「='A1'!C1」ではダメでした…

もしわかる方いましたら教えてください。よろしくお願いします。

本当に説明が下手ですみません。
353名無しさん@そうだ選挙にいこう:2005/08/04(木) 11:18:01
>>352
>>8 = FAQ: 参照するセルをセルの値で指定する =
354名無しさん@そうだ選挙にいこう:2005/08/04(木) 11:30:15
>>352
売上の合計金額だけでいいの?
355名無しさん@そうだ選挙にいこう:2005/08/04(木) 11:34:08
>>352
年間集計は別シートなんだよね?
VLOOKUP関数を使えばいいよ。
356352:2005/08/04(木) 12:06:36
2ちゃんビューア入れてないので
>>8 が読めない…今Jane Doeの設定と格闘中です…
会社の回線の串のせいだ…

>>354 具体的に言うとHPのアクセスログを取っていてその検索語句の数値です。
>>355 VLOOKUPでも12個のシートの切り替えはどうしたらよいのでしょうか?

もしよかったら
>>8 = FAQ: 参照するセルをセルの値で指定する =
を転載してもらえないですか?申し訳ないです…
357名無しさん@そうだ選挙にいこう:2005/08/04(木) 12:24:28

= FAQ: 参照するセルをセルの値で指定する =
Q:A1に「5」とか「6」とか指定する値を変えたら
  B1の関数で「C5」とか「C6」とか参照先が変わるようにできませんか?
A:INDIRECT関数を使ってみましょう。
  詳しくはヘルプで「INDIRECT」を検索
358352:2005/08/04(木) 12:30:25
>>357 サンクス!!!
これってセル以外にシートにも使えるのかなぁ?
試してきます!
359名無しさん@そうだ選挙にいこう:2005/08/04(木) 12:36:59
シート名どころか、ブック名にも使える。
ただ、開いてないブックは参照出来ないけど。

つーか結構シート名をセルの値でって質問多いから
次スレテンプレでINDIRECT関数がシート名にも使えること
付け加えといてくれ>>次スレ立てる人
360352:2005/08/04(木) 12:50:24
>>359 ありがとです!

こんな便利な関数知らなかった…
>>353>>354>>355 もありがとー!!
361名無しさん@そうだ選挙にいこう:2005/08/04(木) 17:30:18
質問いいですか。
エクセルで作った文書をフロッピーに保存してから,
そのあとずっとフロッピーを入れなくても読みに行こうとガーガーガーとなります。
フロッピーを読みに行かないようにする設定ってあるのですか?
362 :2005/08/04(木) 17:52:39
>>361
http://www.proton.co.jp/support/faq/data/faq01-101.htm
上を参照して試してみたら?
363名無しさん@そうだ選挙にいこう:2005/08/04(木) 19:29:09
あの、システム日付から時間を取り出して、ラベルに定期的に表示させることは出来ますか?

環境は

Windows2000
Excel2000
VB 可

です。宜しくお願いします。
364hoge ◆hoge//WRxY :2005/08/04(木) 20:24:19
>>363
ラベルというとユーザーフォームですか?
それなら
Sub 時刻表示()
 If Not UserForm1.Visible Then Exit Sub
 UserForm1.Label1.Caption = Format(Time, "h:mm")
 Application.OnTime Now + TimeSerial(0, 1, 0), "時刻表示"
End Sub
と言う感じで再帰的に処理させれば良いのでは?
コレだと初回実行から1分単位で時刻を更新するけど、10秒単位なら
 TimeSerial(0, 1, 0) → TimeSerial(0, 0, 10) って感じで。
初回にそのまま呼ぶといきなりループが切れるので、2秒くらい遅延してくれ
 Application.OnTime Now + TimeSerial(0, 0, 2), "時刻表示"
1分単位で、システムの00秒に更新したければ、初回の実行で
 Application.OnTime Date + TimeSerial(Hour(Time), Minute(Time) + 1, 0), "時刻表示"
って感じで呼べばいいと思うよ。
あとはFormatの表示形式やユーザフォーム名やラベル名は適当に書き換えて。
TimeSerialではなくTimeValue使ってもいいし。
365名無しさん@そうだ選挙にいこう:2005/08/05(金) 12:00:23
【1 OSの種類         .】 WindowsXP【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか     .】 少しだけ 【4 VBAでの回答の可否】 できれば否

質問させてください。例えば月ごとの売り上げの管理で
3月の売り上げがリンゴが1500円、ミカンが1200円、イチゴが700円
4月の売り上げがミカンが2000円、スイカが1000円、メロンが4500円
5月の売り上げがリンゴが2000円、柿が3000円 
のように売り上げがあったものだけが入力されているとき
年間のトータルの売り上げを
メロン4500円、リンゴ3500円、ミカン3200円、柿3000円、スイカ1000円、イチゴ700円
といった形で並び替えを使わずに売り上げの高かった物から自動的に表示されるようにしたいのです。
やはりVBAを使わないと無理でしょうか?

商品名が固定で無いためVlOOKUPやSUMIFでも検索値をどうしたらよいか、
合計金額が出ても並び替えをどうすればいいかで悩んでいます。
できれば、VBAや並び替えは使わずに関数だけで出したいと思っているのですが可能でしょうか?
366名無しさん@そうだ選挙にいこう:2005/08/05(金) 12:16:59
> 商品名が固定で無いため
VBAでも無理
商品名は固定するか属性を付けるかデータベースを作るかしないと
合計なんて出せるわけない

津軽〜円、女峰〜円、新高〜円、アムス〜円、明宝〜円、千秋〜円
コサック〜円、世界一〜円、次郎柿〜円、アンデス〜円、豊水〜円

なんてデータがあって、「りんごの売り上げ合計を出せ」なんて言われたら、
人間だって予備知識(データベース)や分類表(属性)がなかったら出せないだろ
まあ、この程度ならほとんどの人が特に調べなくても既にある予備知識の範囲で答えられるだろうけど
Excelには果物の分類の知識(データ)なんて全く無いんだから

まずは各項目の合計が出せるように元データを調整しろ
あとは作業セルを使えば関数のみで並べ替えは出来るから
367365:2005/08/05(金) 12:35:46
>>366 3月、4月、5月の項目からダブらないように商品名を表示するような方法はないですか?
特に分類は必要ではなくリンゴ、ミカン、イチゴ、スイカ、メロン、柿とダブらずに表示されればよいのですが。
無理そうなら気が遠くなる作業だけどなんとか元データを整理してみます。

関数での並び替えは何の関数になりますか?
368名無しさん@そうだ選挙にいこう:2005/08/05(金) 13:04:09
> 3月、4月、5月の項目からダブらないように商品名を表示するような方法はないですか?
実際のデータ状態を見て、具体的にどういうふうにしたいのかを聞かないとなんとも言えない

> 関数での並び替えは何の関数になりますか?
数値評価関数と検索関数
やり方はいろいろある
369365:2005/08/05(金) 13:06:40
並び替えはなんとかLARGE関数とVLOOKUPで自己解決しました。
ただ、同じ数値の時、VLOOKUPが役に立ちません…
何かいい方法ないですかねぇ…。

引き続き365の統計でいいアイディアあったらよろしくお願いします…。
オシエテクンですいません。
370名無しさん@そうだ選挙にいこう:2005/08/05(金) 13:18:38
ROW関数も評価に入れる
金額と言うことは整数なので、どこかの列に
金額+ROW()/1000
とかを入れてその列で評価すれば、金額が同じ3000でも、
10行目の3000は3000.01に、20行目の3000は3000.02になるので数値重複は起こらない
データが100行以下なら/100でいいし、1000〜9999なら/10000にすればよろし
VBA使わないとこういう面倒なことが必要になるけど仕方ないな
371365:2005/08/05(金) 13:26:52
具体的には
  A B C D E F G     H
  -------------------------------------------------------------------------------------------
 1 |3月         |4月         |5月        | |TOTAL |
 2 |           |          |          | |    |
 3 |リンゴ | 1500円  |ミカン | 2000円 |リンゴ  |2000 |〜|メロン |4500
 4 |ミカン | 1200円  |スイカ | 1000円 |柿    |3000 | |リンゴ |3500
 5 |イチゴ |  700円  |メロン | 4500円 |     |   | |ミカン |3200
 6 |                                  |柿   |3000
 7 |                                  |スイカ |1000
 8 |                                  |イチゴ |700

といった形でG列には3月〜5月までの果物名を、H列にはその果物ごとの合計金額を表示させたいのです。
まずは3〜5月分の果物の種類をG列にダブらないように表示させたいのです。
372365:2005/08/05(金) 13:27:43
あ…失敗した…orz
373365:2005/08/05(金) 13:40:24
今度こそ…
具体的には
      A       B       C       D       E     F        G      H
  -------------------------------------------------------------------------------------------
 1 |3月            |4月           |5月           |  |TOTAL  |
 2 |     |       |             |       |     |  |     |
 3 |リンゴ | 1500円  |ミカン | 2000円 |リンゴ   |2000  |〜 |メロン |4500
 4 |ミカン | 1200円  |スイカ | 1000円 |柿     |3000  |  |リンゴ |3500
 5 |イチゴ |  700円  |メロン | 4500円 |       |     |  |ミカン |3200
 6 |                                              |柿   |3000
 7 |                                              |スイカ |1000
 8 |                                              |イチゴ |700

といった形でG列には3月〜5月までの果物名を、H列にはその果物ごとの合計金額を表示させたいのです。
まずは3〜5月分の果物の種類をG列にダブらないように表示させたいのです。
374365:2005/08/05(金) 13:42:31
もうだめだ…orz
これで誰か理解できたらお願いします…。
375名無しさん@そうだ選挙にいこう:2005/08/05(金) 13:59:00
G3に
=VLOOKUP(LARGE(I$3:I$9,ROW()-2),I$3:J$9,2,0)

H3に
=INT(LARGE(I$3:I$9,ROW()-2))

I3に
=SUMIF(A$3:A$5,J3,B$3:B$5)+SUMIF(C$3:C$5,J3,D$3:D$5)+SUMIF(E$3:E$4,J3,F$3:F$4)+ROW()/100

J3以下に
リンゴ、ミカン、イチゴ、ミカン、スイカ、メロン、柿
(順はどうでもいいので全品名を挙げる)

G3:I3を選択して9行目(Jの最終行)までオートフィルでコピー
I〜J列を非表示にする

今後のことを考えるとデータを横ではなく縦に繋げた方がいいと思うが
376365:2005/08/05(金) 14:06:25
>>375  ありがとーございます!!!

ちなみに「J3以下にリンゴ、ミカン、イチゴ、ミカン、スイカ、メロン、柿
(順はどうでもいいので全品名を挙げる)」

ここはやっぱり手作業しかないですかね?
実際にやろうとしてるデータがすごい膨大なので…
ないようなら手作業でがんばります。
377名無しさん@そうだ選挙にいこう:2005/08/05(金) 14:23:46
>>376
K3に
=IF(COUNTIF(OFFSET(A$3,0,0,ROW()-2,1),A3)=1,A3,"")
って入れて、A列の一番下の行と同じ位置までオートフィル

歯抜けでデータが表示されるので、K列全体を選択してコピー
形式を選択して張り付け→値
K行を降順ソート

これでK列にA行の品名が重複無しで抽出できるので結果をJ列に移動
以後C列、E列と同じように作業して、最後にJ列でも同じように作業し
そのときK列に抽出されたデータが「A,C,E列から重複しないように抽出したデータ」になる
並べ替え使ってるけど、元データが並べ替えられなければいいんでしょ
378365:2005/08/05(金) 15:31:23
>>377
ありがとーございました!!
これでできました!!
379名無しさん@そうだ選挙にいこう:2005/08/05(金) 21:53:20
コード   名称
100   ハンバーガー
201   フライドポテト
306   コーラ


上記のような表を作ってvlookupで
100 と入力するだけで、「ハンバーガー」と表示できるのはできました。

そこで、発展させてセットものも表示できるようにしたいのですが、なかなかよい方法が思いつきません。
100S というコードの内容をハンバーガー、フライドポテト、コーラのセットとして定義して、

100S と入力するだけで

100S  ハンバーガーセット
100   ハンバーガー
201   フライドポテト
306   コーラ 100 

という感じで表示させてたいのですが、なにかいい方法ないでしょうか、助けて
380名無しさん@そうだ選挙にいこう:2005/08/05(金) 22:22:42
>>379
「ハンバーガー、フライドポテト、コーラ 100」を100Sに関連付ければいいだけでしょ。

コード セットコード  名称
    100S      ハンバーガーセット
100 100S1     ハンバーガー
201 100S2     フライドポテト
306 100S3     コーラ 100

として、Sで終わるコードの場合は右側のコードで拾う。
今までは「=VLOOKUP(入力セル,〜」としてたんだろうが、
今度はそれに加えて「=VLOOKUP(入力セル&"1",〜」でも検索に掛ける。
数式は一番品種が多いセットに合わせて用意し、使わないものは論理式でNullを返すようにする。


又は下記のようにしてもよし。とにかくセット名とコードが関連付けされてなければどうにもならないが
逆に関連付けさえしてしまえば、簡単に拾うことが出来る。あとは自分でがんがれ。

コード   名称         セット内容1 内容2 内容2
100S  ハンバーガーセット    100    201   306
100   ハンバーガー
201   フライドポテト
306   コーラ 100
381名無しさん@そうだ選挙にいこう:2005/08/05(金) 22:24:37
>>380
大変参考になりました。
ありがとうございます。
やってみます。
382名無しさん@そうだ選挙にいこう:2005/08/06(土) 13:25:08
エクセルを使用してリストを作りたいのですがどのようにすればいいでしょうか?
やりたいことは、A1に支店名をリストから選択するとB1のセルにはその支店に対応したリストから選択できるようにしたいのです。


     A         B           C  ・・・・   E      F
1  △支店  (△に対応したリスト)            支店名   リスト
2  ×支店  (×に対応したリスト)            △支店   佐藤
3  ■支店  (■に対応したリスト)            ◎支店   後藤
     ・          ・                   ■支店   川上
     ・          ・                   △支店   田丸
     ・          ・                   ■支店   坂上
     ・          ・                   ×支店   神野

のような感じです。EとFの列がリストになります。つまりA1に△支店が入力されるとEFのリストから△支店のフィルターをかけ
抽出されたリストをB1のリストに対応させたいのです。
Accessを使えば抽出クエリで作成可能なのですがそのPCにはエクセルしか使用できませんのでよろしくお願いします。
383名無しさん@そうだ選挙にいこう:2005/08/06(土) 13:43:23
>>382
E列をソートして、G列にE&Fを書き出して、
あとは「Excel リスト 連動」でググれ

まあソート無しで出来ないことも無いが
384名無しさん@そうだ選挙にいこう:2005/08/06(土) 13:57:07
【1 OSの種類         .】 Windows xp sp2
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

エクセルの散布図で名称を座標に表示させるには
どうしたらよいでしょうか?

【例】
y
|
|   ・モナー
|
|
------------x

座標は作れるのですが、そこに表示できるのは
座標値しかできませんでした。方法がありましたら
お教えください。
385名無しさん@そうだ選挙にいこう:2005/08/06(土) 14:34:19
>>384
モニタにマジックで書いたら?
386名無しさん@そうだ選挙にいこう:2005/08/06(土) 14:40:33
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

すみません。教えてください。
右クリックのメニューがコピーと張り付けしか出て来ません。
前のPCでは書式設定とか切り取りとかいろいろあったんだけど。
どこかで設定変更できるんでしょうか。
超初心者ですみません。
387名無しさん@そうだ選挙にいこう:2005/08/06(土) 14:56:41
>>384
その座標が独立した系列になっているのなら、
グラフエリアをクリック→グラフウィザード→「次へ」で2/4へ→
「系列」タブを選択→「系列」にある一覧から名前を入れたい
座標に相当するものをクリック→「名前」欄に「="モナー"」

これでできると思う。
座標の出し方が俺の考えと違っているのならわかりません。
388名無しさん@そうだ選挙にいこう:2005/08/06(土) 15:03:03
>>387の書き忘れ。
座標を示すデータ系列を選択し、
「データ系列の書式設定」→「データラベル」タブ→系列名にチェック
ってのをやっとかないと「モナー」は表示されないかもしれない。
389名無しさん@そうだ選挙にいこう:2005/08/06(土) 15:13:12
亀レスですが>>383さんできました♪ありがとうございました
390名無しさん@そうだ選挙にいこう:2005/08/06(土) 15:24:52
A B C
1 100 50
1 40 50 
1 10 50
2 10 15
2 20  15
上のような表で、c列に、a列の数が同じのものの平均値を返したいのですが、どういう風にしたらよいでしょうか?
391名無しさん@そうだ選挙にいこう:2005/08/06(土) 15:36:41
>>390
その範囲がA1:C5にあると仮定して、C1セルに次の数式を入力
=SUMIF($A$1:$A$5,A1,$B$1:$B$5)/COUNTIF($A$1:$A$5,A1)
後はC1からC5までオートフィルでコピー。
392名無しさん@そうだ選挙にいこう:2005/08/07(日) 01:36:57
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 少しだけ
【4 VBAでの回答の可否】 可

ブックA、ブックBがあります。

ブックAは既存でして、月別データが各シート(例えば「2004.1」〜「2004.12」)に作成
されています。

ブックBの”A1”に「2004」、”A2”セルに「5」を入力しコマンドボタンを押した場合に
ブックAの「2004.5」というシートを開く事は可能でしょうか?
393名無しさん@そうだ選挙にいこう:2005/08/07(日) 01:44:05
「シートを開く」という概念は無いが
「ブックを開いてシートをアクティブにする」なら可能。

マクロの記録で取れるので、シート名の部分だけセルの値を代入するようにすればいい。
394名無しさん@そうだ選挙にいこう:2005/08/07(日) 02:12:21
>>393
そうですね、シートをアクティブにするということでした。

ありがとうございます。

上手く動きました。
てっきりシート名を指定する場合「文字列」に直す必要があるのかと思って
セルの値を変換していました。
395名無しさん@そうだ選挙にいこう:2005/08/07(日) 12:40:23
1つのセルに数値を入れたら計算してくれるにはどのような計算式をたてればいいのでしょうか?
どうか教えてください。
396名無しさん@そうだ選挙にいこう:2005/08/07(日) 12:54:02
>>395
説明が不十分で何がしたいのか理解できないが、仮にA1セルに何も入力されていない場合は
計算セルも空白で、A1セルに入力された時だけ計算セルに計算結果を表示させたいならば、

>>6の例5
397名無しさん@そうだ選挙にいこう:2005/08/07(日) 12:59:03
って人大杉か。

>例5:対象が空欄なら表示も空欄にする
> A1が空欄なら結果は何も表示しない、それ以外ならA1から2を引く。
> =IF(A1="","",A1-2)
> =IF(ISBLANK(A1),"",A1-2)
398名無しさん@そうだ選挙にいこう:2005/08/07(日) 15:07:11
表示形式について質問があります。
小数点以下の数字の色を変えるにはどうすればいいでしょう?
ひゃくにじゅうろくてんよん

よん
以下のみ赤字などで表記したいです。

複数セルを使わないと無理でしょうか?
よろしくお願いします。

マクロなしExcel2000です。
399名無しさん@そうだ選挙にいこう:2005/08/07(日) 15:14:43
書式として変更するなら、セル内の小数点以下を選択して色を変えればいいけど
それを自動でやりたいならVBA使わないと無理
表示形式には一部の色を変える機能はたしか無い。
または自分でも言ってるように複数セル使うかだな。
400名無しさん@そうだ選挙にいこう:2005/08/07(日) 15:28:30
>>399
わかりました。
あっさりあきらめて、文字デカ化で、みずらさを解消します。
ありがとうございました。
401名無しさん@そうだ選挙にいこう:2005/08/07(日) 15:31:49
みずらい→×
みづらい→○
402名無しさん@そうだ選挙にいこう:2005/08/07(日) 15:32:37
あ!
403名無しさん@そうだ選挙にいこう:2005/08/07(日) 16:03:42
小数点が見辛いってなら、非Pフォントにするだけでも結構改善されるよ
MS Pゴシック → MS ゴシック
404名無しさん@そうだ選挙にいこう:2005/08/07(日) 16:04:42
>>403
THX !!!
405名無しさん@そうだ選挙にいこう:2005/08/07(日) 18:49:09
質問ですすいません。

あるセルに入力してenterで確定すると同時に印刷されるようにするには
何をどうすればよいでしょう?exel2000です。

したいことは
Aのセルに入力しenter → Bのセルに移動
→ Bのセルに入力しenter → Cのセルに移動
→ Cのセルに入力しenterと同時にすぐ印刷 → Aのセルに移動
という
三箇所に入力して印刷し、また三箇所を書き換えて印刷という作業を
したいのです。入力とenterだけで素早くできないかなあと・・・

アクティブセルの移動はctrlを押しながら選択 → 名前の定義
位しか方法は無いみたいだし。他にありますかね?

何かヒントを!師匠!
406名無しさん@そうだ選挙にいこう:2005/08/07(日) 19:02:01
>>405
セルの横移動はTABキーかオプション設定で出来る。
ABC以外をロックしてシートの保護を掛ければ、Enterで下でも横でも斜めでも隣以外でも飛べる。

印刷は「印刷...」ではなく「印刷(プリンタ名)」の方を使えばすぐに印刷できる。


それ以上のことをやりたいならVBA使うしかない。
407名無しさん@そうだ選挙にいこう:2005/08/07(日) 21:18:41
ピボッドグラフレポートについて質問させて下さい。

ウィザードを使ってCSVデータからグラフまで作ったとします。
グラフは「縦軸:売上」「横軸:集計月&商品」の縦棒グラフです。

このうち、とある商品だけ売上額が極端に少ないので、第二軸を設定しました。


その後、抽出項目選択?のチェックボックス付コンボでxx月のチェックONを外すと、第二軸の
設定が無くなって元の一軸グラフに戻ってしまいます。

「第二軸設定→保存→再度開く→抽出項目選択設定」でも第二軸の設定が消えてし
まいます。

これを解消するにはどうすればよいでしょうか?
ピボッドグラフのデフォルトが一軸の縦棒グラフですが、項目選択後はかならずデフォルトに
戻ってしまうのは回避不可でしょうか?
408名無しさん@そうだ選挙にいこう:2005/08/08(月) 11:34:05
矢印ボタンでセルが移動せずページが
移動するようになっちゃったんですけど
元に戻すにはどうしたらいいですかね?
409名無しさん@そうだ選挙にいこう:2005/08/08(月) 12:05:24
>>408
format C:
410名無しさん@そうだ選挙にいこう:2005/08/08(月) 12:15:48
>>408
ScrollLockキー押せ
411名無しさん@そうだ選挙にいこう:2005/08/08(月) 14:04:24
質問させてください。WinXP EXCEL2003 VBAはできれば不可で。

A列にキャベツ、レタス、きゅうり
B列に人参、キャベツ、トマト、ごぼう
C列に大根、きゅうり
とあり、そして今後D列、E列にもリストが増えていくとします。
F列にキャベツ、レタス、きゅうり、トマト、ごぼう、大根…
という感じでダブりを排除しリストの一覧を作るコトは可能でしょうか?
A〜E列の行数は不特定で、ダブりがあり、今後入力されていくD列、E列も参照されるようにする。
並び順はどんな順番でもOKです。
関数のみで可能でしょうか?よろしくお願いします。
412hoge ◆hoge//WRxY :2005/08/08(月) 15:26:54
>>411
作業セルを使えば可能ですが、結構面倒ですよ。

まずは各行のデータをどこでもいいので1行に全て書き出してください。
各行のデータがセル区切りなら単純な参照式です。
各行のデータが>>411で書いたように「、」区切りなら、文字列操作関数で切り出します。
この時点では書き出した行には空欄があっても重複があっても構わないので、とにかく全データを書き出します。

次に>>377の数式を応用して、書き出したデータの下の行にCOLUMN関数で列番号(@)と
更にその下の行に重複無しのデータ(A)を書き出します。

最後にHLOOKUP関数、SMALL関数、COLUMN関数で空白を埋めたデータをF列に書き出します。
=HLOOKUP(SMALL(@の範囲,COLUMN()),@とAの範囲,2,0)

ワークシート関数は、関数式を入れたセルのみに1つの値しか返せないので、(配列数式を除く
こういった返す結果が不定なものは苦手なんですけどね。
こういう場合は、あらかじめ多めの数式を入力しておいて論理式で非表示にしておくしか無いです。(>>6参照
データが多いなら、作業範囲に行ではなく列を使っても構いません。
こっちの方が視覚的にはわかりやすいと思うけど、最初の参照式がちょっと面倒かも。

VBAならセル区切りだとしても「、」区切りだとしても結構簡単に出来ますが、
こっちでコード書くよと言ってもVBAはイヤだってならがんばってください。
413hoge ◆hoge//WRxY :2005/08/08(月) 15:31:54
すいません、大きな勘違いしてました。
横に書いてあったけど、データは列なのね。

まあそれでもやり方は変わらないですけど。
414名無しさん@そうだ選挙にいこう:2005/08/08(月) 16:20:11
2003を使ってます。
改ペ−ジプレビュウについてです。
1ペ−ジの印刷範囲を変更してもなかなか思ったとおりに
いかないと思い、元にもどしたいのですが、いったん、改ペ−ジプレビュー
で設定してしまうと、青線を動かす以外では、最初の印刷範囲をしめした
点線にはなりません。

どうすれば、最初の(改ぺージプレビューでいじる前)印刷範囲に
戻るのでしょうか?
415名無しさん@そうだ選挙にいこう:2005/08/08(月) 16:36:02
意味がよくわからんが、倍率を100にすればいいんじゃね?
416411:2005/08/08(月) 16:39:06
>>412 ご返答ありがとうございます。

すいません…
>>377 が2ちゃんビューアが会社のネットワークの環境で入れられず見れません…
もしよかったら>>377を転載してもらえないでしょうか…
417名無しさん@そうだ選挙にいこう:2005/08/08(月) 16:52:15
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

質問です!
[A.xls]というファイルでマクロを登録したとします。
これを
[B.xls]というファイルに変更した後にマクロを実行すると
エラーになってしまいます。

デバックボタンを押して確認してみると
                  Windows("A.xls").Activate
となってるところで止まっていたので、
                  Windows("B.xls").Activate
と変更すると動くようになりました。

ファイル名を変更しても修正しなくてもいい
うまい方法はありませんか?
418hoge ◆hoge//WRxY :2005/08/08(月) 16:53:12
>>416
>>377の数式は
> =IF(COUNTIF(OFFSET(A$3,0,0,ROW()-2,1),A3)=1,A3,"")
です。私が書いたものではありませんが、これで重複無しのデータを抽出出来ます。

>>412で書いた
> 書き出したデータの下の行にCOLUMN関数で列番号(@)と

ROW()で行番号を書き出し、
> =HLOOKUP(SMALL(@の範囲,COLUMN()),@とAの範囲,2,0)

=VLOOKUP(SMALL(@の範囲,ROW()),@とAの範囲,2,0)
にしてください。

簡単なので参考までにVBAコードも書いておきます。
よかったら使ってみてください。(会社だとマクロを禁止してるのかもしれませんが
Sub データ抽出()
 Dim hoge As New Collection, i As Long, j As Long
 On Error Resume Next
 For i = 1 To 5
  For j = 1 To Cells(65536, i).End(xlUp).Row
   hoge.Add Cells(j, i).Value, Cells(j, i).Value
  Next j
 Next i
 For i = 1 To hoge.Count
  Cells(i, 6).Value = hoge(i)
 Next i
End Sub
419hoge ◆hoge//WRxY :2005/08/08(月) 17:00:12
>>417
そのまま直すと
Windows("B.xls").Activate

Windows(ThisWorkbook.Name).Activate
だけど、
ThisWorkbook.Activate
でも良いのでは?
420417:2005/08/08(月) 17:08:58
>>419
おおお!なりました!!
ありがとうございますm(_ _ )m
421411:2005/08/08(月) 17:37:52
教えて頂いたとおり関数を埋め込んでみました。しかし、歯抜けの状態になってしまいます。
CN列が最終的にデータが出るはずの列です。

CK列に全てのデータを、
CL列にはROW関数での行数を =ROW(CK6)
CM列には =IF(COUNTIF(OFFSET(CK$6,0,0,ROW()-5,1),CK6)=1,CK6,"")
CN列には =VLOOKUP(SMALL($CL$6:$CL$168,ROW()),$CL$6:$CM$168,2,0)

データは全て6行目から始めています。何か間違いがあるようでしたらご指南お願いします。
422hoge ◆hoge//WRxY :2005/08/08(月) 17:58:41
>>421
CL列の値はCM列に値が返ってる行のみ表示させます。
CM列と同じ数式を使ってもいいですが、
CL6=IF(CM6<>"",ROW(),"")
の方がいいでしょうね。

それとCN行も6行目から始めるのなら、最初の行の数式は
「ROW()」→「ROW()-5」又は「ROW()」→「ROW(A1)」にしないとダメです。
423411:2005/08/08(月) 18:04:31
>>422 で…できました!!!ありがとうございます!!!
まだなぜこれでできるのか理解できてませんが
今から解析してみたいと思います!
>>422さん、本当にありがとうございました!!!!
424名無しさん@そうだ選挙にいこう:2005/08/08(月) 18:26:02
>>414
改ページプレビュー画面のまま、
適当なセルを右クリックして「すべての改ページを解除」
425名無しさん@そうだ選挙にいこう:2005/08/08(月) 19:57:59
すいません、誰か教えてください。

Excelのフォントの色や背景色を変更しても画面上に反映されなくなってしまいました。
プレビューでは変更されているのですが…。
テキスト表示も、文節確定前(Enterキーを押すまで)は変更したフォントの色が
出ているのですが、確定の瞬間黒になってしまいます。

再インストールしかないでしょうか?
ワードパッドではこの現象が起きないのでディスプレイドライバが原因ではないと思います。
426名無しさん@そうだ選挙にいこう:2005/08/08(月) 20:53:01
>>409
悪質なので通報しました。
427sage:2005/08/08(月) 21:37:15
現在時刻と誕生日との差分(秒単位で)を表示する方法を
教えてください

お願いします。ヘルプを観るとDATEDIFを使えばよさそうなのですが
満日数とかで秒単位に使えないのかなという気になってしまいます。
誕生日の時間は0時0分0秒とします。
428名無しさん@そうだ選挙にいこう:2005/08/08(月) 21:45:42
>>427
日の差の後に現在時刻を加えて表示ではだめなの?
429名無しさん@そうだ選挙にいこう:2005/08/08(月) 21:56:09
>>428
誕生日が0時ちょうどならそれでいいよな。お前頭良いな。
430名無しさん@そうだ選挙にいこう:2005/08/08(月) 22:04:00
つーかNOW()-DATE(誕生年,月,日)でいいんとちゃう?
431sage:2005/08/08(月) 22:18:32
>428
ありがとうございます
それでやってみようと思います

誕生日を任意の時間にしたときの方法も
あれば教えてくださいね

>430
その方法ではよくわからない数字が表示されました。おそらく年の部分だと
432名無しさん@そうだ選挙にいこう:2005/08/08(月) 22:20:46
シリアル値だろ
yy-mm/dd-h:mm:ss
とかに直して見ろよ
433名無しさん@そうだ選挙にいこう:2005/08/09(火) 05:50:59
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

新入社員です。エクセルに関して上司から質問されました。

100店舗(1店舗につき1sheet×100枚)のシートから、
店舗名と売上高の数字を抽出して、1つのブックで
一覧表を作成したいのですが、
一つ一つコピペしていくには手間がかかりすぎる。
簡単に行う方法があれば教えてください。

(手持ちのデータ)A店〜DZ店のうち1sheet
A店 15年度 16年度 17年度
1月 20 50 40


12月  20 25 80 
売上高  600 500 700

(求める最終形)
  売上高   15年度 16年度 17年度
店名                               
A店       600 500 700
B店 250 100 345
C店 167 200 456



DZ店 123 345 466
434名無しさん@そうだ選挙にいこう:2005/08/09(火) 06:52:10
Sheet1〜Sheet100とかSheetA〜SheetCVとか
シート名に計算で出せる規則性があるなら、
INDIRECT内にシート名を返す計算式を入れて参照するだけ
Sheet1〜Sheet100ならINDIRECT("Sheet"&ROW(A1))とか
SheetA〜SheetCVならCHARとかMODとか使って

そういった計算で出せる規則性が無いなら、まずはどこかの列にシート名を全て書き出せ
最終的にはその列は非表示にしても問題ない
あとはINDIRECTでそのシート名を参照すればよろし
435名無しさん@そうだ選挙にいこう:2005/08/09(火) 07:12:32
>>433
正規化してDBに移行したほうが良さそうな内容ですね
436名無しさん@そうだ選挙にいこう:2005/08/09(火) 07:13:10
>>435
いいえ。
437名無しさん@そうだ選挙にいこう:2005/08/09(火) 10:23:42
>>433
INDIRECT関数を使ったモノでサンプル作ってみました。
もう解決されたかな?
ttp://ranobe.sakuratan.com/up/updata/up50249.zip
438名無しさん@そうだ選挙にいこう:2005/08/09(火) 11:49:37
並び替えで863 865 950 951はきちんと大きい順、あるいは
小さい順に並び替えられます。

でも、863−1 865  950−1 951 となると
並び替えがきちんとできません。

なぜですか?

2003を使ってます
439名無しさん@そうだ選挙にいこう:2005/08/09(火) 12:06:48
>>438
863-1 は文字列
865   は値として扱われるので、
まずは値の表示を統一する事が必要と思います。

表示形式を #0"-"0 とすれば 8631 が 863-1 と表示されます。
ただコレだと 865 の表示には対応できませんが。
440名無しさん@そうだ選挙にいこう:2005/08/09(火) 12:11:51
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

VBAの記述で選択範囲(Range)を分割して配列に収めたいのですが、
簡単な記述法はないでしょうか。

選択範囲をSelectionとして、
Selection.Addressはたとえば、"R17C13,R25C9:R34C11,C16,R40"として、
これを(Cells(17,13),Range(Cells(25,9),Cells(34,11)),Columns(16),Rows(40))
上記のように分割して配列に収めたいんです。
よろしくお願いします。
441名無しさん@そうだ選挙にいこう:2005/08/09(火) 14:10:49
範囲はVariant型にでもぶち込めば
勝手に二次元配列になるぞ

つーか、要望はもう少しまとめてから質問に来ようね。
442名無しさん@そうだ選挙にいこう:2005/08/09(火) 15:19:17
>>439
THANKS
443名無しさん@そうだ選挙にいこう:2005/08/09(火) 16:56:50
>>441
いやそういうことじゃなくて、、、
ちょっと書きかたが悪かったみたいなんで、あきらめます。
444名無しさん@そうだ選挙にいこう:2005/08/09(火) 17:10:09
諦めたらそこで試合終了ですよ
445名無しさん@そうだ選挙にいこう:2005/08/09(火) 17:12:16
>>444
安西先生…
446名無しさん@そうだ選挙にいこう:2005/08/09(火) 17:15:21
まあ、質問の仕方というか文章表現力が足り無すぎるからな
何を望んでるのかを文字のみで他人に伝える努力をするより
自分で調べた方が早いだろ
447433:2005/08/09(火) 19:52:08
433です。仕事終わりまして、
無事完成することができました。
437さんのサンプルは、、本当に感激です。
今後も質問する機会があるやもしれませんが、
よろしくお願いします。
448名無しさん@そうだ選挙にいこう:2005/08/09(火) 20:05:26
さすが印刷屋って感じに小綺麗に纏まってたな。
449名無しさん@そうだ選挙にいこう:2005/08/09(火) 21:44:51
>>440
そんなもの配列に格納して何やりたいんだ?
For Each a In Selection.Areasで回せばすむ話じゃないのかい?
450名無しさん@そうだ選挙にいこう:2005/08/09(火) 21:45:41
もしかしたら簡単?
  A  B C D E F
1     梨 柿 桃 苺 瓜
2 青森  20 15 10  9 15
3 山形 30 24 12 15 7
4 山梨  40 15 7 10 12
5 長野  10 30 12 8 20

このような表で、果物ごとの生産量1位の県を表示させる方法はないですか?
最大値そのものを表示させるのは簡単なんですが…
lookup系では無理みたいだし、offset系でも、max関数で出した値の
該当セルのアドレスとかを取り出す方法がないと無理みたいなんですが…
451名無しさん@そうだ選挙にいこう:2005/08/09(火) 21:51:02
>>450
INDEXとMATCHとMAXを使えば簡単だろ?
梨なら
=INDEX(A1:A5,MATCH(MAX(B2:B5),B2:B5,0))
でいいんじゃないのか?
452451:2005/08/09(火) 21:54:13
上は間違いだったな。
同じデータがある場合に困るか。
オートフィルタとかフィルタオプションだな。
453hoge ◆hoge//WRxY :2005/08/09(火) 22:59:28
作業セルを使えば、MAXが複数あっても出せますよ。

>>450
B6:B9を選択して
=IF(B2:B5=MAX(B2:B5),ROW($A2:$A5),"")
を入力し、Ctrl+Shift+Enter

B10に
=IF(ISERROR(SMALL(B$6:B$9,ROW($A1))),"",INDEX($A$1:$A$5,SMALL(B$6:B$9,ROW($A1))))
を入力して下方へフィルコピー

あとは上の式を入れた行を非表示にすればいい。MAXの値が複数あっても全て結果を返すはず。
横方向にもフィルコピーできるようにしてあるので、後は適当に参照範囲を書き換えてくれ。
MAX2つまでくらいなら、作業セル無しで返せないこともないけど、たぶん上記下の式の倍以上の長さの式になるし。
オートフィルタで問題ないならそれが一番簡単ですけどね。
454名無しさん@そうだ選挙にいこう:2005/08/09(火) 23:26:13

      ??     ??
    ????   ????
   ??????????????
 ?????????????????
 ?????????????????
 ?????????????????
 ?????????????????
  ???????????????
    ????????????
  ???????????????
 ?????????????????
 ?????????????????
 これを見ると今年の受験に落ちます。
これを今から1時間以内に3回他スレにコピペすれば100%、受かります。
貼らないと
落  ち  ま  す

455名無しさん@そうだ選挙にいこう:2005/08/10(水) 00:21:32
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

質問です
A1:A50のセルに適当な数値が入っているとします
その中から例えば100以上300以下の数値を抜き出して、その平均を出すには
どういう関数を使えばいいですか?
456名無しさん@そうだ選挙にいこう:2005/08/10(水) 01:11:47
>>455
=(SUMIF(A1:A50,"<=300",A1:A50)-SUMIF(A1:A50,"<100",A1:A50))/(COUNTIF(A1:A50,"<=300")-COUNTIF(A1:A50,"<100"))
AVERAGEIFというのはないから、SUMIF/COUNTIF とする。
○以上△以下の合計や個数は、△以下の分−○未満の分 で求める。
457450:2005/08/10(水) 06:36:40
サンキュー >>hoge
やっぱり簡単じゃないね。
マクロで一旦並べ替えてLOOKUP検索 → 書出し → 次の列へと
いう処理をしなければいかんのかと思った。
(実際は200×5000くらいの表でTOP5とか表示させるんで多分重すぎ)
             
この手の需要は結構あると思うんで、
LOOKUPで配列の並べ替えが不要にするか
VLOOKUPで検索値を(範囲より−方向で)指定できるようにして欲しいな。
458名無しさん@そうだ選挙にいこう:2005/08/10(水) 10:05:06
>>456
ありがとうです

うわ〜、難しいな・・・
459名無しさん@そうだ選挙にいこう:2005/08/10(水) 10:12:56
>>458
式は長ったるしいが、最後の1行を読めば
やってることはごく簡単だって解るだろ。
計算方法も計算理論も算数の域を出ていない。

いや、こんなこと書くと456が気分を害するかもしれないけど
決して456のレベルが低いって意味じゃないからね。
ただ、関数や式の内容さえ理解できれば算数レベルの問題だってだけで。
460名無しさん@そうだ選挙にいこう:2005/08/10(水) 10:16:07
なんて優しいスレなんだここは……
461名無しさん@そうだ選挙にいこう:2005/08/10(水) 10:55:56
このスレはホント、スキルアップできます。感謝、感謝(−人−)
462名無しさん@そうだ選挙にいこう:2005/08/10(水) 15:42:14
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

仕事でExcelを使い日報を作成していますが、終了させる時に自動でその日付(今日なら日報_20050810.xls)を付加して保存する事ができませんか
463名無しさん@そうだ選挙にいこう:2005/08/10(水) 15:45:22
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

仕事でExcelを使い、日報をつけています。
日報をつけ終わり終了する時に、自動で今日の日付をファイル名に付加して保存するような事はできないでしょうか?
今日なら 日報_20050810.xls のような感じです。
ググり方が悪いのか、事例が見つかりません。近い方法でもいいのでご存知の方いらっしゃればご教示願います。
464hoge ◆hoge//WRxY :2005/08/10(水) 16:27:36
>>457
確かにデータがそれだけあるとこの方法は重いですね。
結果を書き出す位置(例えば5001〜5005行目とか)や、
5位と同じ値が複数あった場合どうするかなどの仕様を固めてくれればマクロ書いてみてもいいですけど。
というかオートフィルタで簡単にトップ5を表示させられるので、それでいいような気もしますが。

関数については細かい不満がある場合、MSに要望出すよりユーザー定義関数を作っちゃうのが一般的ですからね。
特に既存の主要関数の仕様がユーザーの要望で変更されることはまず無いでしょう。

>>463
Private Sub Workbook_BeforeClose(Cancel As Boolean)
 If ThisWorkbook.Name = "日報_" & Format(Date, "yyyymmdd") & ".xls" Then
  ThisWorkbook.Save
 Else
  ThisWorkbook.SaveAs ThisWorkbook.Path & "\日報_" & Format(Date, "yyyymmdd") & ".xls"
 End If
End Sub

こんな感じですか?
「今日の日付を付加した名前」が現在のブック名と同じなら上書き保存、違えば新たな日付名で保存。
置き場は「ThisWorkbook」なので>>10を参考にしてください。
もしかしてファイル名が同じ場合は連番で「ファイル名(2).xls」とかした方が良かったかな?
465名無しさん@そうだ選挙にいこう:2005/08/10(水) 16:28:04
1 OSの種類         .】 MacOSX
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 少し(自動記述を修正する程度の初心者)
【4 VBAでの回答の可否】 可

入力用シートから、データがマッチする行を
入力されている列にかかわらず1ヶ月分拾い出して
他のシートに飛ばし、集計したいと思っています。
入力用のシートは
日付、コード1/貸方科目、コード2/借方科目、金額、内容、数量、担当者名

という感じなのですが
集計用のシートには、例えば「コード1001」という科目が
コード1の欄か、コード2のどちらか一方にでも入っている行は全部抜き出して

<コード1001 ○○科目△月の集計>
<担当者A>
日付、内容、数量、貸し方金額、借り方金額
…(1ヶ月分続く)
<担当者B>

という風に集計したいんです。
説明が下手で本当にすみません。どうかご教示ください。
466名無しさん@そうだ選挙にいこう:2005/08/10(水) 16:53:26
word2002/2003を使用しています。

自分でコマンドバーを新しく作る方法は分かったのですが、
そこにオートシェイプの「直線」と「四角形」のボタンを追加する方法が分かりません。

どなたか教えてください。
467名無しさん@そうだ選挙にいこう:2005/08/10(水) 17:03:05
VBAスレの767氏ね
468名無しさん@そうだ選挙にいこう:2005/08/10(水) 17:55:32
>>466
「ユーザー設定」ダイアログを表示した状態で、分類「オートシェイプ」
を選ぶ。後はそこに表示される「直線」だの「四角形」などのボタンを、
自作のツールバーにドラッグ&ドロップ。
469名無しさん@そうだ選挙にいこう:2005/08/10(水) 23:08:10
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000,2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

AくんBくんCくんそれぞれの年齢など様々なデータがある名簿シートを作成し、
別シートにvlookup関数で、番号を入れると、Aくん何歳とか必要なデータ出るようにしました。
印刷の際にAくんからCくんまでとかBくんからDくんまでとか選択し、
さらに自動に印刷みたいなのはできますか?
470あとすこし・・・:2005/08/11(木) 00:58:55
>>406

ありがとうございます!亀レスながら・・・でも
ABCのロックを解除してシートの保護をかけても
TABキーでしか移動できないようです?

そこでVBAを調べたところ

Sub 指定セルのみ移動開始()
Application.OnKey "~", "移動設定" 'エンターキーを押した時移動設定のマクロを実行
Application.OnKey "{ENTER}", "移動設定" 'テンキーのエンターキーを押した時実行
End Sub
Sub 移動設定()
With ActiveCell
Select Case .Address(False, False)
Case "B2"
.Offset(1, 2).Select
Case "D3"
.Offset(2, -2).Select
Case "B5"
.Offset(-3, 0).Select
End Select
End With
End Sub

上のようにするとenterでB2→D3→B5そしてB2に戻るようになりました。
後もう少しなんです!
上のコードを「B5でenterを押すとアクティブシートが印刷され、B2に戻る」
のように書き換えるにはどうしたらよいのでしょうか?

そこの師匠!どうかおねがいします!
471できたー!!!:2005/08/11(木) 02:00:44
ありがとうございます!
師匠のおかげで自己解決しましたwww
printoutかませるだけだった。。。
472463:2005/08/11(木) 15:26:51
>>464 hoge師匠

すげーっす。完璧です。これです、これです求めていた物は!
こんな短時間でレス頂けると思っていなかったので御礼が遅れて申し訳ありませんでした。
感謝致します。ありがとうございましたm(_ _)m

> もしかしてファイル名が同じ場合は連番で「ファイル名(2).xls」とかした方が良かったかな?
その日の日報が2つ以上存在する事はありえないのでこのままでOKです。
473名無しさん@そうだ選挙にいこう:2005/08/11(木) 18:29:52
質問させてください。

シート1に複数の行(行数は固定ではないです)があって、
シート1のA列にシート2のセルB1の文字列があり、
且つシート1のC列に文字列「あ」がある条件を満たす行の数をシート2上でカウントしたいのですが
どのような関数を使えばよろしいのでしょうか。
分かりにくいかもしれませんがよろしくお願いいたします。
474名無しさん@そうだ選挙にいこう:2005/08/11(木) 18:37:11
>>473
IF関数、SUM関数

関数はこれだけ
あとは配列数式で
475名無しさん@そうだ選挙にいこう:2005/08/11(木) 18:44:43
配列式って何ですか?www
476473:2005/08/11(木) 18:46:06
>>474
レスありがとうございます。
えっとSUM関数を使用するんですか?COUNTIFとかを使うのかなとも思ってたんですが、
どうもうまくいかなくてorz
もうちょっと具体的に教えていただけると凄い嬉しいのですが(TдT)
477名無しさん@そうだ選挙にいこう:2005/08/11(木) 19:01:44
表計算ソフト総合スレはないようなのでこちらで聞かせてもらいます

表計算ソフトでマルチラインなテキストを扱いやすくする方法を探しています

具体的にはExcelとかCalc(OO)は
あ\tい\tう   <\tはタブ
みたいなデータをペーストすると一発で1列に取り込めるけどマルチラインなテキストでも同じようなことをしたいです

何か改善する方法、可能にするソフト等ありましたらよろしくお願いします
478名無しさん@そうだ選挙にいこう:2005/08/11(木) 19:08:19
知らない。
479名無しさん@そうだ選挙にいこう:2005/08/11(木) 19:11:02
>>477
{=SUM(IF((シート1A列範囲=B1)*(シート1C列範囲="あ"),1,0))}

「文字列がある」ではなく「文字列を含む」ならもう一工夫必要だけど形は同じ
IF関数で条件を満たしてる場合に1を返し、それをSUM関数で合計するだけ

つーか、「どのような関数を使えば」と聞くからやる気のある質問者なのかと思い
使用関数のみ書いたが、数式そのものを組んでくれってなら組むよ
その場合「一致」なのか「含む」なのかはっきりしてくれ

>>477
> 一発で1列に取り込めるけど
1列にはならんが
「あ\tい\tう」なら1行3列になるよ

つーか、マルチラインって何?
「マルチライン」という言葉の指す物が多すぎて、
どの意味のことを言ってるのかわからん

具体的にどういう状態の物をペーストしたときにどういう状態にしたいのか
図などを使ってきちんと説明しよう

それ以前にここは表計算ソフトスレじゃないので
Excelで実現する方法が知りたいんじゃなくて
それを実現できるソフトを知りたいんならスレ違い
480473:2005/08/11(木) 19:43:01
>>479
レスありがとうございます。
条件は「一致」です。

試しにシート2の適当なセルに
=SUM(IF((シート1!A:A=B1)*(シート1!C:C="あ"),1,0))
とやってみたのですがエラーはないのですが0となってしまいカウント出来ていませんでした。

ヘタレで申し訳ないですorz
481名無しさん@そうだ選挙にいこう:2005/08/11(木) 19:44:37
ちゃんと配列数式として確定した?
Ctrl+Shift+Enterで
482477:2005/08/11(木) 19:48:55
>>479
あ、申し訳ない、間違えました。1列じゃないくて1行です
マルチラインですが「改行を含む」という意味でお願いします

具体的にだと…

ハンドルネーム:
 ほげ
E-mailアドレス:
 [email protected]
要望:
 要望1
 要望2

ってなデータを1発で
http://www.uploda.org/file/uporg167813.png.html
みたいな形で取り込みたいです

>それ以前にここは表計算ソフトスレじゃないので
>Excelで実現する方法が知りたいんじゃなくて
>それを実現できるソフトを知りたいんならスレ違い
どこで聞けば良いんだ…il||li ○| ̄|_
ソフトウェア板で聞いたら「表計算ソフトの使い方はここじゃねぇ」って言われたし…表計算ソフトスレ見あたらないし
Excelで出来るんならベストだけど出来ない場合は他のソフトを使うことも考慮するって場合どこで聞けば…
483名無しさん@そうだ選挙にいこう:2005/08/11(木) 19:51:00
>>482
良さそうな板に自分でスレ立てるか、よろずスレに書け
484hoge ◆hoge//WRxY :2005/08/11(木) 20:08:08
>>482
マクロ使えばExcelで出来ないこともないですけど、規則性がいまいちわかりません。
インデントがあれば、最初は改行、以降はセル内改行、インデントが無ければ改列ってことでいいのかな?
インデントの種類は全角スペース?それともTAB?
張り付け位置はA1基準?アクティブセル基準?
コードが欲しかったら詳しい情報をください。

それとビジネスsoft板の「スレたてるまでもない質問に答えるスレ」は5月末に落ちたままになってるようなので
必要なら勝手に次スレ立てちゃってもいいと思いますよ。特にテンプレも有りませんし。
485名無しさん@そうだ選挙にいこう:2005/08/11(木) 20:31:44
>>482
普通そういうのはマルチラインなんて言わないぞ
格好付けて横文字使わないで素直に「複数行のテキスト」って言え
486名無しさん@そうだ選挙にいこう:2005/08/11(木) 20:34:27
>>485
ぷぷぷw
487名無しさん@そうだ選挙にいこう:2005/08/11(木) 20:40:19
まあ、意味的には間違いではないけど普通は言わないわな。
漏れはマルチラインと聞いて、TextBoxコントロールのプロパティを思い浮かべた。
488473:2005/08/11(木) 20:48:19
>>481
確定したのですが、それだとエラーが返ってくるみたいです。
どうやらシート1!A:Aとシート1!C:Cが参照出来ていないようなんです。
なんでなんでしょうかorz
489名無しさん@そうだ選挙にいこう:2005/08/11(木) 20:56:29
だから列範囲だろ書いただろ
誰が列そのものを参照しろと言った?
A列C列の必要な範囲だけを参照しろ
範囲が変動するなら少し多めにすればいいだけだし
490469:2005/08/11(木) 20:58:12
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000,2002
【3 VBAが使えるか    .】 すこし
【4 VBAでの回答の可否】 可
前回質問したんですけれども、わかりにくいのか答えがつかなかったため自分である程度ボタンを作りました。

さらに、もう一つ新ボタンを作りました。このボタンに
VBAで、セルP3がストップという文字なら、何もしない、プリントという文字があったら、
すでにある別ボタンを押すという機能はどういう風にするのでしょうか?


ボタンをいくつも作って回りくどい作り方してるのは分かっていますが、
VBA初めてだし、とりあえず動かす必要がありますので。
491hoge ◆hoge//WRxY :2005/08/11(木) 21:24:06
>>490
> セルP3がストップという文字なら、何もしない
If Range("P3").Value = "ストップ" Then Exit Sub
を先頭に入れる。

> プリントという文字があったら、すでにある別ボタンを押す
If Range("P3").Value = "プリント" Then Call CommandButton1_Click

全体としては
Select Case Range("P3").Value 'P3セルの値で処理を振り分ける
 Case "ストップ"
  '"ストップ" なら処理はしない
 Case "プリント"
  Call CommandButton1_Click '別ボタンのクリックイベントをコールする
 Case Else
  '"ストップ" でも "プリント" でもない場合の処理
End Select
とした方がいいかな。
492477:2005/08/11(木) 21:57:30
>>484
解決しました

説明力の低い自分にil||li ○| ̄|_

かなりビジネスソフトじゃない内容含んじゃうけど一連の流れを列挙します

ブラウザからフォームに入力してもらったデータをCGIで処理後Excelでデータベースとしてまとめるのが最終的な目標です
1) ブラウザから入力されたデータをCGIで処理後メールで送信
2) メール受信
3) メールからExcelにデータを取り込み
1行を1フィールドとして列に「ハンドルネーム」「E-mailアドレス」みたいな
http://www.uploda.org/file/uporg167813.png.html
こんな感じの表にしたいです。列の要素は実際にはもっと多いです
で、メールからExcelにスムースにデータを入力する方法を探していました

どうやら(↓\tはタブ)
ほげ\[email protected]\t"要望1
要望2"
とやったのを貼り付けると望むとおりの動作をしてるようです
文字コードによってはExcelがクラッシュするらしいですがとりあえずこれでやってみようと思います

>スレたてるまでもない質問に答えるスレ
どっちみち需要はあると思うので立ててきました
493490:2005/08/11(木) 22:40:17
すいませんm(_ _)mもうちょっとだけいいですか?

select Case Range("P3").Value 'P3セルの値で処理を振り分ける
Case "ストップ"
Exit Sub'”ストップなら処理はしない。”

Case"プリント"
Call CommandButton1_Click '別ボタンを押したことにする。
Call CommandButton2_Click 'さらに別ボタンを押したことにする。
「ここで、最初に(Case"ストップ"〜〜)戻りたいのですが・・・つまりストップになるまで続けたいのですが。」

Case Else '"ストップでもプリントでもないときは何もしない。"
Exit Sub
494hoge ◆hoge//WRxY :2005/08/11(木) 23:08:11
>>493
先頭にラベル入れてGoToで戻るなり、再帰呼び出しするなりしてもいいけど
その条件なら
If Range("P3").Value = "プリント" Then
 Do
  Call CommandButton1_Click
  Call CommandButton2_Click
 Loop Until Range("P3").Value = "ストップ"
End If
の方がいいかな。内容的には
「P3セルの値が"プリント"のときだけ、P3セルの値が"ストップ"になるまで処理を繰り返す」
というものです。又は下記のようにするとP3セルの値が「"ストップ"になるまで」ではなく
「"プリント"以外になるまで」処理を繰り返すようになります。
Do While Range("P3").Value = "プリント"
 Call CommandButton1_Click
 Call CommandButton2_Click
Loop

「ここで、最初に(Case"ストップ"〜〜)戻りたい」だと下のコードと同じ動作になりますが
「つまりストップになるまで続けたい」だと上のコードの条件になります。
>>493で書いてる条件自体が統一されてないので、あとはご自分でご判断ください。
495名無しさん@そうだ選挙にいこう:2005/08/11(木) 23:18:06
条件が統一されていないって言うのが正直よくわからないんですが、
ある程度わかったと思います。
どうもありがとうございました。
496名無しさん@そうだ選挙にいこう:2005/08/12(金) 18:45:08
すいません下らない質問なんですが
エクセルの計算式にπを使う場合
どう記述したらいいですか?
497名無しさん@そうだ選挙にいこう:2005/08/12(金) 18:54:28
>>496
PI()
精度は15桁
498名無しさん@そうだ選挙にいこう:2005/08/12(金) 18:57:56
>>497
ありがとうございます
499 :2005/08/12(金) 19:04:31
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 すこし
【4 VBAでの回答の可否】 可(というか、VBAでw)

cell("a1")に
x,xxx(xx/xx 14:00)みたいな形で数字が入っています。
この(より前にある数字(金額)だけを取り出したいんで
すけど、どう書けばよろしい?

※金額の桁は不定です。
500hoge ◆hoge//WRxY :2005/08/12(金) 19:10:42
>>499
CLng(Split(Range("A1").Value, "(")(0))
CLng(Left(Range("A1").Value, InStr(1, Range("A1").Value, "(") - 1))

お好きな方をどうぞ。
501499:2005/08/12(金) 19:31:56
>>500
素早い!有難うございます。助かりましたm(__)m。
502名無しさん@そうだ選挙にいこう:2005/08/13(土) 01:29:22
>>109ですが、
>>110さん、>>112さん、遅くなりましたがありがとうございます。
503名無しさん@そうだ選挙にいこう:2005/08/13(土) 13:00:46
VBAで、カーソルキーを押したときのような動作をしてくれる関数はありませんか?

たとえばB1とC1が結合されてる場合

ActiveWorkSheet.Range("A1").Select <現在A1を選択
ActiveWorkSheet.→() <B1:C1を選択
ActiveWorkSheet.→() <D1を選択

という動作をさせたいのですが・・・

※ 「マクロの記録」でカーソルキーを使ってもRangeでセルを指定するだけなのでわかりませんでした。
504名無しさん@そうだ選挙にいこう:2005/08/13(土) 13:14:31
Sendkeys
505名無しさん@そうだ選挙にいこう:2005/08/13(土) 13:43:54
503です。
なぜかそこに気づきませんでした。ありがとうございます。
506名無しさん@そうだ選挙にいこう:2005/08/13(土) 14:59:20
>>505
なぜ気付かなかったのかホントに分からないの?
507名無しさん@そうだ選挙にいこう:2005/08/13(土) 15:09:02
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

今日は泣く泣く土曜日出社中。。
で、コネクタについてトラブルにブチ当たってしまい、初めて
ご質問させていただきました。

チャート図のようなものを作っておりまして、大量のオート
シェイプ(長方形・テキスト入り)をコネクタでバシバシつない
でいたのですが、突如、新たに作ったオートシェイプの
オブジェクトにしか
"青い点(コネクタが結合できるところ)"
が表示されなくなってしまいました。
(最初の方で作っていた長方形のオブジェクトにコネクタを
つなげなくなってしまった)

これってexcelのバグ??と、悩んでおります。。
いつの間にか設定やプロパティをいじってしまったのでしょうか??

わかる方、いらっしゃいましたら、ご回答よろしくお願い致します<(_ _)>
508名無しさん@そうだ選挙にいこう:2005/08/13(土) 15:49:40

バグ、不都合関係はMSへ

操作、技術的質問はここで
509507:2005/08/13(土) 17:09:46
>>508さん

いえ、そもそもバグなのかどうかの切り分けができず書き込みを
させていただきました。
ちょっとした設定の問題や仕様ということであればそれをお教え
いただきたい次第です。
バグということであれば、MSへ伝えるようにしますです。
510名無しさん@そうだ選挙にいこう:2005/08/13(土) 18:48:20
バグというか"不都合"だね。
サポートに問い合わせてみな。
511名無しさん@そうだ選挙にいこう:2005/08/13(土) 19:12:13
すべてのセル内の、特定の文字列の書式をまとめて変更することは出来ますか?
その場合どのような操作をすればよいですか?
512名無しさん@そうだ選挙にいこう:2005/08/13(土) 21:37:11
>>511
編集>置換で「オプション」をクリック。
文字列に「書式」ボタンで変更前、変更後の書式をセットして実行。

ただしこの機能は、Excel2002以降にしかない。2000なら手作業で。
513名無しさん@そうだ選挙にいこう:2005/08/13(土) 22:41:27
お世話になります。

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

シートが50枚くらいあるファイルがあります。
シートには「0001」〜「0050」といった感じで名前のついています。
各シートの決まった部分(AD11:AD28)を抜き出して以下のような
感じの「集計」シートを作りたいと思っています。

0001 AD11 AD12 AD13・・・ AD27 AD29

 ・
0049 AD11 AD12 AD13・・・ AD27 AD29
0050 AD11 AD12 AD13・・・ AD27 AD29

簡単に行う方法があれば教えてください。
よろしくお願いします。
514hoge ◆hoge//WRxY :2005/08/14(日) 00:58:41
>>513
空シートを作って末尾(一番右)に置き、以下のマクロを実行
Dim i As Long, j As Long
Application.ScreenUpdating = False
For i = 1 To Worksheets.Count - 1
 For j = 1 To 18
  Worksheets(Worksheets.Count).Cells(i, j).Value = Worksheets(i).Cells(j + 10, 30).Value
 Next j
Next i
Application.ScreenUpdating = True


結果は、末尾に追加した空シートの内容が下図のようになるはず。
空シートを末尾に置かないと、末尾のシートのデータが書き換えられるので注意。

     A   |   B   |   C  〜  Q   |   R   |   S
1 | 01-AD11  01-AD12                01-AD28
2 | 02-AD11                       02-AD28

49| 49-AD11                       49-AD28
50| 50-AD11                50-AD27  50-AD28
51|

「AD11:AD28」を抜き出しってことで処理してますが、
その図のように27の次が29ならちょっと処理が変わります。
必要なら言ってくれれば修正しますよ。
515513:2005/08/14(日) 02:05:04
>>514
ありがとうございます。
AD29の件は自分の入力ミスです。
こんな短いコードで出来るのですね。

お願いついでに上記マクロを
以下のように改造していただけないでしょうか。

1.抜き出す範囲を「AD1:AD18」に変更
2.A列にシート名を表示

     A   |   B   |   C  〜  Q   |   R   |   S
1 | 01 01-AD1  01-AD2 01-AD18
2 |  02 02-AD1                        02-AD18

49| 49 49-AD1 49-AD18
50| 50 50-AD1                50-AD17 50-AD18
51|

以上、可能であればよろしくお願いします。
516hoge ◆hoge//WRxY :2005/08/14(日) 02:16:16
>>515
Dim i As Long, j As Long
Application.ScreenUpdating = False
For i = 1 To Worksheets.Count - 1
 Worksheets(Worksheets.Count).Cells(i, 1).Value = Worksheets(i).Name
 For j = 1 To 18
  Worksheets(Worksheets.Count).Cells(i, j + 1).Value = Worksheets(i).Cells(j, 30).Value
 Next j
Next i
Application.ScreenUpdating = True
517513:2005/08/14(日) 02:30:22
>>516
凄い!!
あっというまにできてしまうのですね。
自分の思っていた通りの動作をしてくれました。

これを機に自分でもVBAが書けるように勉強してみます。
どうも、ありがとう御座いました。
518名無しさん@そうだ選挙にいこう:2005/08/14(日) 02:55:47
>>512ありがとうございます。2003なんでさっそくやってみます。
519名無しさん@そうだ選挙にいこう:2005/08/14(日) 14:17:50
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 あんまり
【4 VBAでの回答の可否】 お願いします

ファイルの整理をしていて、その場所をエクセルに記録しているのですが
A列にズラーとファイルの名称を書いてて、B列に場所を並べています。
場所はCD-01、CD-02、CD-03という風に羅列しているのですが、毎回CD-0Xとか打ち込むのが面倒くさいので
マクロで処理したいのです。
例えばCD-03を選択してマクロボタンを押したらその下のセルにCD-04と記入するようにしたいのです。

自分で下のように作ってみたのですがCD-0Xの0が消えてCD-Xになってしまいます。
何かいい方法ないですか?

range(e2)に=MID(E1,4,2)
range(e3)に=MID(E1,1,3)の関数を使って

ActiveCell.Copy Destination:=Range("e1")
tuika1 = Range("e2").Value
tuika2 = tuika1 + 1
tuika3 = Range("e3").Value & tuika2
ActiveCell.Offset(1, 0).Value = tuika3

520hoge ◆hoge//WRxY :2005/08/14(日) 14:45:32
>>519
連番ならドラッグアンドドロップでのフィルコピー
(アクティブセル枠右下の点をD&D)の方が手軽だと思いますが、
マクロでやるならこんな感じかな。
 ActiveCell.Offset(1).Value = Left(ActiveCell.Value, 3) & Format(Mid(ActiveCell.Value, 4) + 1, "00")
どうせならこれをダブルクリックイベントに置いた方がいいかも。

計算したり、数値(整数・実数)型変数に代入すると「"01"」という文字列から
「1」という数値に変換されるので、0で桁を揃えたい場合、
 Format(数値, "0 x 桁数")
 例:"01" + 1 = 2
   Format("01" + 1, "00") = 02

 Right(String(桁数, "0") & 数値, 桁数)
 例:"002" + 10 = 12
   Right(String(3, "0") & "002" + 10, 3) = 012
などという方法を使います。(この二つは桁溢れ時の結果が違います。
521名無しさん@そうだ選挙にいこう:2005/08/14(日) 15:15:21
>>520
おおー
一行で出来るんですね
さっそくやってみました。
すごい便利になりました。
ありがとうございます!
522名無しさん@そうだ選挙にいこう:2005/08/15(月) 10:42:52
csvとリンクさせていたファイルがあったのですが、
そのcsv形式のファイルを別フォルダに入れたのでリンクが変更になり
編集のリンクのリンクの設定を変えようと思ったのですが形式にはxls形式、ロータス形式、
すべてのweb形式の3つのみでリンクを変更することができません。

直接リンクを変えようとしてもエラーがでてしまいます。csvのリンク変更はできないのでしょうか?
523名無しさん@そうだ選挙にいこう:2005/08/15(月) 11:06:54
>>522
csvファイル開いた状態でもダメ?
524名無しさん@そうだ選挙にいこう:2005/08/15(月) 11:21:28
リンクは成功しました!!でも、csv形式は元のcsvが開いてないとリンクできないのでしょうか?
開くたびに「更新できないリンクは1つ以上あります」とエラーになりリンクの編集でリンク元を開かないと更新できません。
これが普通なのでしょうか?
525名無しさん@そうだ選挙にいこう:2005/08/15(月) 11:59:18
訳語集みたいなものをテキストファイルからインポートしたものを
並べ替えたいというのが主眼です。

たとえば、certified public accountant 公認会計士
      exempt organizations 非課税団体
      paperwork reduction act 文書業務削減法
      ...

と、原文(スペース)、間にスペースを置いて訳語となってます。

これを新たに原文(A)、訳語(B)、コメント(C)としたいのですが、
どのようにすればいいのでしょうか。よろしくお願いします。

ちなみにOS、OFFICEとも2kです。
      
526名無しさん@そうだ選挙にいこう:2005/08/15(月) 12:46:24
>>524
うん普通

>>525
1セルに[ certified public accountant 公認会計士 ]って入ってるのを
[ certified public accountant ][ 公認会計士 ]って分けたいってことか?
つーか原文単語間のスペースと、原文訳語間のスペースが同じ物なら
一括で処理するにはVBA必須
VBA使えないならメニューからデータ→区切り位置でスペース分割して
原文単語だけを繋げ直せ
527名無しさん@そうだ選挙にいこう:2005/08/15(月) 16:14:46
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 初心者
【4 VBAでの回答の可否】 可

初めて質問します。
ユーザフォームで、スピンボタンの上下で対応するテキストボックスの
数字が増減させるのですが、それぞれ40個くらい必要です。

Private Sub SpinButton1_SpinDown()
If TextBox1.Text = "" Then
TextBox1.Text = ""
ElseIf TextBox1.Text <= 1 Then
TextBox1.Text = ""
ElseIf TextBox1.Text > 1 Then
TextBox1.Text = TextBox1.Text - 1
End If
TextBox1.SetFocus
End Sub
----------------------
Private Sub SpinButton1_SpinUp()
If TextBox1 = "" Then
TextBox1.Value = 1
ElseIf TextBox1 >= 1 Then
TextBox1.Text = TextBox1.Text + 1
End If
TextBox1.SetFocus
End Sub

↑これの値を変えて40個作ろうと思うのですが、
もっと簡単な方法はありますでしょうか?
528名無しさん@そうだ選挙にいこう:2005/08/15(月) 17:14:56
>>527
SpinButtonとTextBoxの番号をあわせておけば、

Dim CN As String
 CN = Replace(ActiveControl.Name, "SpinButton", "TextBox")
 With Controls(CN)
  If .Text = "" Then
   .Text = ""
  ElseIf .Text <= 1 Then
   .Text = ""
  ElseIf .Text > 1 Then
   .Text = .Text - 1
  End If
 End With

これで中身書き換えずにSpinButton1から40までのイベントプロシージャにコピペでいけるはず。
(spinupも同様)
529名無しさん@そうだ選挙にいこう:2005/08/15(月) 18:01:29
クリックしたセルに1を表示させるには、どうすれば良いか教えて下さい
凄く初歩的な質問だと思いますがスイマセン
530hoge ◆hoge//WRxY :2005/08/15(月) 18:43:14
>>527
こんなのはどうでしょうか?
Private Sub SpinDown()
 With Controls("TextBox" & Mid(ActiveControl.Name, 11))
  .Text = IIf(Val(.Text) <= 1, "", Val(.Text) - 1)
 End With
End Sub
Private Sub SpinUp()
 With Controls("TextBox" & Mid(ActiveControl.Name, 11))
  .Text = IIf(.Text = "", 1, Val(.Text) + 1)
 End With
End Sub

>>528と同じくオブジェクト名末尾の数値を合わせておき、
あとは各コントロールのイベントから上記サブルーチンをコールするだけ
Private Sub SpinButton1_SpinDown()
 Call SpinDown
End Sub
Private Sub SpinButton1_SpinUp()
 Call SpinUp
End Sub

さらにコードを減らしたい場合、クラスを使って擬似的なコントロール配列を作れば
「SpinButton1_SpinUp〜SpinButton40_SpinUp」までの40のイベントをひとつにまとめられます。
必要ならコード書きますよ。

>>529
イベント的には「クリックしたら」ではないけど、これでどうでしょうか?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Target.Value = 1
End Sub
531名無しさん@そうだ選挙にいこう:2005/08/15(月) 19:09:25
ttp://read.kir.jp/file/read14150.xxx

このファイルを見ていただきたいのですが、
株価(ローソク足)と出来高のグラフです、
そこに移動平均線を折れ線でいっしょにのせたいのですが、
どうすればいいのでしょうか教えてください。
(移動平均線はGおよびH列です)
532名無しさん@そうだ選挙にいこう:2005/08/15(月) 19:17:48
今時.xxxなんてやる奴のファイルは落とさない方が吉
533531:2005/08/15(月) 19:25:01
>>532
なんかしらんけど、エクセルのファイルをうpしたら、xxxになってしまったんだよヽ(`Д´)ノ 
534名無しさん@そうだ選挙にいこう:2005/08/15(月) 19:35:43
>>533















圧縮しろよ
535531:2005/08/15(月) 19:45:52
ttp://read.kir.jp/file/read14154.zip

圧縮しました('A`) 

このファイルを見ていただきたいのですが、 
株価(ローソク足)と出来高のグラフです、 
そこに移動平均線を折れ線でいっしょにのせたいのですが、 
どうすればいいのでしょうか教えてください。 
(移動平均線はGおよびH列です) 
536名無しさん@そうだ選挙にいこう:2005/08/15(月) 19:45:53
ありがとうございます
解決しました
537499:2005/08/15(月) 20:17:55
【1 OSの種類      】WindowsXP
【2 Excelのバージョン】Excel2002
【3 VBAが使えるか  】なんとかかんとか
【4 VBAでの回答の可否】 可

シート上にボタンを貼り付けてマクロを起動させるのは出来るんですが
ツールバー(って言うんでしたっけ)にボタンを作ってそこからマクロ
を起動するとかって出来ます?やり方教えて欲しいんですけど。
538531:2005/08/15(月) 20:51:26
おれの解決してないよ〜('A`) 
539名無しさん@そうだ選挙にいこう:2005/08/15(月) 21:36:45
ありがとうございます
解決しました
540名無しさん@そうだ選挙にいこう:2005/08/15(月) 22:04:47
質問です
上方向のセルに色を設定して、下段セルに文字を入力すると
上方セルの色書式が自動的に入力セルにコピーされるのですが、
この動作をさせないようにする方法を教えてください。

バージョン:2003SP1

再現方法:
セルA3〜A5に緑色の背景色を設定
それぞれA,B,Cなどを入力
一つ飛ばしてA7にEを入力した場合など
541540:2005/08/15(月) 22:08:29
書き忘れです
【1 OSの種類         .】 WindowsXPHome_SP2
【2 Excelのバージョン   】 Excel2003_SP1
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
542名無しさん@そうだ選挙にいこう:2005/08/15(月) 22:24:49
【1 OSの種類         .】 Windows9x
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

手元に2000がないので教えていただきたいのですが、
2000で、ユーロ記号は標準で表示出来ましたでしょうか?
また、標準で表示出来ないときは、アドインがあったと思うのですが、
現在でも公開されてますでしょうか?

よろしくお願いいたします。
543名無しさん@そうだ選挙にいこう:2005/08/15(月) 22:44:52
>>528
>>530
たいへん参考になります。
これから試してみます。

>さらにコードを減らしたい場合、クラスを使って擬似的なコントロール配列を作れば
>「SpinButton1_SpinUp〜SpinButton40_SpinUp」までの40のイベントをひとつにまとめられます。
>必要ならコード書きますよ。
後学のために出来ればお願いします。
544名無しさん@そうだ選挙にいこう:2005/08/15(月) 23:51:53
>>537
表示→ツールバー→ユーザー設定→コマンド→マクロ→ユーザー設定ボタンをツールバーにドラッグ
で出来る

だれか↑で登録したものの消し方分かりませんか?
545名無しさん@そうだ選挙にいこう:2005/08/16(火) 00:21:05
Altキーを押しながら、シート上にドラッグ
546名無しさん@そうだ選挙にいこう:2005/08/16(火) 01:59:52
教えて下さい。
Excel2003にてフィルターを使いたいんですけど、英数大文字・小文字の区別が出来ません。
例) ABC とabc・・ 通常ならフィルターで2つ表示されますよね。何故なんでしょうか?

547hoge ◆hoge//WRxY :2005/08/16(火) 04:27:22
>>540
Ctrlキーを押しながら確定。
設定で無効にする方法は知りません。

>>542
書式 > 挿入 > 記号と特殊文字
でフォントに「Times New Roman」等を選び
種類で「通過記号」を選ぶ。
因みにこれはExcel2000より加わった標準機能です。
Wordには97から付いてましたけどね。

>>546
何故なのかと聞かれれば、そういう仕様だからとしか言えません。
MSのサイトにも
> データが評価されるとき、大文字と小文字は区別されません。
とだけ書いてあって、区別する方法などは載ってないので、
おそらくオプションなどで大小文字を区別する設定も無いと思われます。

回避法としては、VBAを使ってオートフィルタのような機能を自作するとか
小文字 → 半角、大文字 → 全角、と使い分けるとか。
後者の方が断然楽ですね。
548hoge ◆hoge//WRxY :2005/08/16(火) 04:34:11
>>543
'UserForm1
Private SBControls(1 To 40) As New Class1
Private Sub UserForm_Initialize()
 Dim i As Long
 For i = 1 To 40
  SBControls(i).Item Me.Controls("SpinButton" & i), i
 Next i
End Sub

プロジェクトエクスプローラで、右クリック > 挿入 > クラス モジュール
'Class1
Private WithEvents SpinButton As MSForms.SpinButton
Private Index As Long
Public Sub Item(SBControl As MSForms.SpinButton, SBIndex As Long)
 Set SpinButton = SBControl
 Index = SBIndex
End Sub
Private Sub SpinButton_SpinDown()
 With UserForm1.Controls("TextBox" & Index)
  .Text = IIf(Val(.Text) <= 1, "", Val(.Text) - 1)
 End With
End Sub
Private Sub SpinButton_SpinUp()
 With UserForm1.Controls("TextBox" & Index)
  .Text = IIf(.Text = "", 1, Val(.Text) + 1)
 End With
End Sub

これでSpinButton1〜40のどれを操作しても、クラスモジュールの
SpinButton_SpinDown、SpinButton_SpinUpイベントが動くはず。
549名無しさん@そうだ選挙にいこう:2005/08/16(火) 04:53:26
>>540
>ヘルプ
>リストの書式および数式の自動適用機能をオンまたはオフにする

ただし解除方法に表記違いがあり、
○ データ範囲の形式および数式を拡張する
× リスト形式および数式を拡張する
俺の環境ではこうなってた。

ヘルプによると上の5セル中3つに同じ書式が指定されてるのが
フラグになってるようなんで、ctrl+でも手作業で解除すんのも
アリなんじゃないか?
550名無しさん@そうだ選挙にいこう:2005/08/16(火) 09:53:40
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002 SP3
【3 VBAが使えるか    .】 触ったことがあるが使えるとまではいえない
【4 VBAでの回答の可否】 可
住所録の比較をしたいです。
そのファイルは筆王で出力したファイルで
No. 名前 フリガナ 住所 電話番号 などの順序でセルに配置されています。
1 名無し ナナシ 2ch 774-774
2つのファイルは2年前に作ったものと今年になってからまた1から作りなおしたものです。
その2つのファイルから2年前にはいて今年にはいない人を抽出したいです。
昔のファイルを群として今のファイルを個として検索するような感じでしょうか?
昔のファイルをシート1に今年のファイルをシート2にコピーして1つのブックにまとめました。
シート3を作ってそこに抽出した結果をコピーする or 昔のファイルのNo.の色を変えるなど
よろしくお願いします_/>○
551名無しさん@そうだ選挙にいこう:2005/08/16(火) 10:05:55
ありがとうございます
解決しました
552名無しさん@そうだ選挙にいこう:2005/08/16(火) 10:14:06
>>548
ありがとうございます。
今日は一日勉強に励みます。
553名無しさん@そうだ選挙にいこう:2005/08/16(火) 10:31:10
>>544
遅くなりましたが、さんきゅうです。
554hoge ◆hoge//WRxY :2005/08/16(火) 10:47:04
>>550
シート1のB列のデータの中で、シート2のB列内に存在しないデータがあれば
その行のA列の背景色を赤にするって感じでいいのかな。
Dim LastRow As Long, i As Long, j As Long
With Worksheets("シート2")
 LastRow = .Cells(65536, 2).End(xlUp).Row
 For i = 1 To Worksheets("シート1").Cells(65536, 2).End(xlUp).Row
  For j = 1 To LastRow
   If .Cells(j, 2).Value = Worksheets("シート1").Cells(i, 2).Value Then Exit For
  Next j
  If j = LastRow + 1 Then Worksheets("シート1").Cells(i, 1).Interior.ColorIndex = 38
 Next i
End With

住所や電話番号も精査して完全一致以外を列挙したいなら、もうちょっと処理増えますが。
555名無しさん@そうだ選挙にいこう:2005/08/16(火) 13:08:56
>>530
> >>527
> こんなのはどうでしょうか?
> Private Sub SpinDown()
>  With Controls("TextBox" & Mid(ActiveControl.Name, 11))
>   .Text = IIf(Val(.Text) <= 1, "", Val(.Text) - 1)
>  End With
> End Sub
> Private Sub SpinUp()
>  With Controls("TextBox" & Mid(ActiveControl.Name, 11))
>   .Text = IIf(.Text = "", 1, Val(.Text) + 1)
>  End With
> End Sub

試してみたのですがうまくいきません。
With Controls("TextBox" & Mid(ActiveControl.Name, 11))

With Controls("TextBox1)
にすると動きました。
お手数ですがお願いします。
556名無しさん@そうだ選挙にいこう:2005/08/16(火) 13:32:54
自分で直せよw
557hoge ◆hoge//WRxY :2005/08/16(火) 13:41:56
>>555
>>528>>548も同じですが、この方法はSpinButtonのオブジェクト名がSpinButton1〜40、
TextBoxのオブジェクト名がTextBox1〜40の場合で、なおかつ
対応するSpinButtonとTextBoxのオブジェクト名末尾の番号を揃えた場合を想定してます。
それと.SetFocusを入れた場合は、ボタン押し下げ状態での増減操作で支障が出ます。

一回のクリックすら出来ないなら、オブジェクト名を確認してください。
.SetFocusを入れてるなら外すかそれなりの対策をしてください。

Debug.Print ActiveControl.Name
Debug.Print Mid(ActiveControl.Name, 11)
Debug.Print "TextBox" & Mid(ActiveControl.Name, 11)
などで、それぞれがどういう値を返しているのかを把握すれば、対策法も見えてくると思います。
558名無しさん@そうだ選挙にいこう:2005/08/16(火) 14:21:59
>>557
解決しました。
テキストボックスとスピンボックスをフレームに入れていたため、
フレームの名前を拾ってきていたようです。
フレームに入れる場合は、この方法は使えないのでしょうか?
559hoge ◆hoge//WRxY :2005/08/16(火) 14:44:43
>>558
With Controls("TextBox" & Mid(Frame1.ActiveControl.Name, 11))

ActiveControl.Nameの前に、フレームのオブジェクト名を入れてください。
560名無しさん@そうだ選挙にいこう:2005/08/16(火) 14:52:42
>>559
できました!!!
ありがとうございます。
561名無しさん@そうだ選挙にいこう:2005/08/16(火) 15:18:49
【1 OSの種類         .】 WindowsXPHome
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
長軸半径52、短軸半径42の横長の楕円を、X軸を0.2ずつ区切って、Y座標を求めたいのですが、
Xの値を0.2ずつ入力していくと、非常に厄介になってしまうのですが、0.2ずつ減らしてセルに入力してくれるような方法はないでしょうか。
例としては以下のような感じです
X   Y
26   y1
25.8  y2
25.6  y3
.
.
.

よろしくお願いいたします
562名無しさん@そうだ選挙にいこう:2005/08/16(火) 15:45:39
>>561
A2に26、A3に25.8と入力。
A2からA3にドラッグして、A2とA3を選択状態にする。
選択セルの右下の黒い四角を目的個数分下にドラッグ。
563550:2005/08/16(火) 17:24:54
>>554
hogeさん!問題なく実行できました♪ 本当にありがとうございました_/>○
564540:2005/08/16(火) 17:37:32
>>547-549
解決しました
ありがとうございました
565名無しさん@そうだ選挙にいこう:2005/08/16(火) 22:14:37
【1 OSの種類         .】 WindowsXPHome
【2 Excelのバージョン   】 Excel2002
エクセルで製作した表や図を一太郎にコピーするときはどうすればいいですか?
普通に貼り付けてもうまくいきません(画面がズレる)。
566名無しさん@そうだ選挙にいこう:2005/08/16(火) 22:24:12
>>565
一太郎 総合スレッド その3
http://pc8.2ch.net/test/read.cgi/bsoft/1107318546/
567542:2005/08/16(火) 23:17:35
>>547
お礼が遅くなりました。
ありがとうございました!!
568名無しさん@そうだ選挙にいこう:2005/08/16(火) 23:54:09
1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

入力規制について、教えて下さい

競馬の馬柱を自作したいのですが、入力規制でサクサク作業したいのです
データ→入力規制→設定→【入力値の種類】ユーザー設定→

ここから数式のところに競馬場名を入れたいのですが
京都・阪神・東京・札幌・函館・・・・
と入力する時文字の間は半角のコンマなのでしょうか?
569名無しさん@そうだ選挙にいこう:2005/08/17(水) 00:11:01
>>568
【入力値の種類】を、「ユーザー設定」ではなく「リスト」にすれば、
半角「,」区切りで並べた名前が入力候補になりますよ。

ここで半角「,」区切りで並べるよりは、同じシート内のどこかに
競馬場名を入力しておき(1セルに1場)、入力規制の設定画面では
そのセル番地のみを指定するほうをお勧めしますが。
「元の値」欄をクリックしといて、場名のあるセル範囲を選択するだけです。
570565:2005/08/17(水) 02:03:16
>>566
向こうでも同じように誘導されてしまいましたが…
571名無しさん@そうだ選挙にいこう:2005/08/17(水) 02:11:25
>>570
それは誘導した奴が間違い。
データの挿入は、貼られる側の問題。
572名無しさん@そうだ選挙にいこう:2005/08/17(水) 06:52:39
>>535
前に作った株価グラフのマクロの一部
日付・始値・高値・安値・終値という列になっているデータから
With ActiveChart
.SetSourceData Source:= _
Range(MyR.Columns(1), MyR.Columns(5)), _
PlotBy:=xlColumns

中略

With .SeriesCollection(4).Trendlines _
.Add(Type:=xlMovingAvg, Period:=13).Border
.ColorIndex = 10
.Weight = xlHairline
End With
With .SeriesCollection(4).Trendlines _
.Add(Type:=xlMovingAvg, Period:=25).Border
.ColorIndex = 3
.Weight = xlHairline
End With

End With
573名無しさん@そうだ選挙にいこう:2005/08/17(水) 14:10:00
2つほど回答よろしくお願いします。

1つ目が、アクセスからVBAでエクセルを開く際に、shell関数で任意のブックは開くことが出来たのですが、任意のシートを開くことが出来できません。
ハイパーリンクだとサブで開くことができたのですが、shell関数を使用してのOPENなのでサブアドレスの入れ方が分かりませんでした。

2つ目は他のエクセルを開くことなく内容の変更(詳しい処理内容は他のエクセルのシートをソートしたいのです)はどのようにすればよいのでしょうか?

ご教授よろしくお願いします。
574名無しさん@そうだ選挙にいこう:2005/08/17(水) 14:43:18
1
Shell関数でできることは、コマンドラインからできることだけ
それ以上はAccessVBAでExcelオブジェクトを使って処理しろ
この方法に付いてはスレ違いなので説明は省く

2
「シートを開かずに」なら、普通に処理すればいいだけ
VBAでのソートは別にアクティブシートにしか出来ない訳じゃないから
ソート範囲にそのシートを参照するオブジェクトを付加してやれば、
シートを表示させずに普通にソートできる

しかし「ブックを開かずに」なら不可能
575名無しさん@そうだ選挙にいこう:2005/08/17(水) 15:51:27
【1 OSのバージョン】 Windows XP Pro SP2
【2 Excelのバージョン】 Excel 2002 SP3
【3 VBAが使えるか】 使えます
【4 VBAでの回答の可否】 出来れば否

セル結合した際に中央寄せになるのを何とかしたいのですが
何か方法はありませんか?
結合するほとんどの場合が中央寄せを必要としてないので
毎回直すのがとても面倒です。
宜しくお願いします。
576名無しさん@そうだ選挙にいこう:2005/08/17(水) 15:59:52
>>575
セル結合〜左寄せ という一連の作業のマクロを作る、というのはダメでしょうか?
577名無しさん@そうだ選挙にいこう:2005/08/17(水) 16:02:38
>>575
自分で「セルを結合して中央揃え」ボタン押してるんじゃないの?

─┴─
← a →
─┬─

って感じのボタン押してるなら、中央揃えになって当然
通常の結合ボタンや書式設定から結合すれば中央揃えにはならない
通常の結合ボタンはユーザー設定 →書式の真ん中あたり
578名無しさん@そうだ選挙にいこう:2005/08/17(水) 16:07:23
>>576
m9(^Д^)プギャー
579575:2005/08/17(水) 16:11:06
>>576,577
レスありがとうございます。
結合のみのボタンがあったんですね。
ああ、なんて自分は無知なんだろうorz
すごく助かりました。ありがとうございます!
580名無しさん@そうだ選挙にいこう:2005/08/17(水) 16:12:50
>>577
ふーん、セル結合のボタンが二つあるって、漏れも知らなかったよ
為になるな、ホント

>>578
人を笑うより何か為になることを教えてくれよ
581名無しさん@そうだ選挙にいこう:2005/08/17(水) 16:31:07
>>580
んじゃ笑わずに為になることを教えよう

> セル結合のボタンが二つあるって
3つだよ。
横方向に結合ってのもある。
そして結合解除ボタンもある。
582名無しさん@そうだ選挙にいこう:2005/08/17(水) 18:16:19
こんなソフトを探していますスレからきました。
なんらかのソフトを使い、DVDやらビデオデッキやらパソコンなどの全てのインプットとアウトプットを一望できる
相関図を作ろうとしています。
配線の管理をしたいわけです。
上記のスレッドでコメントを下さった方によると、各デバイスを模した図をエクセル上で移動させると、
デバイス間の「配線を模した矢印」が移動先へ自動追従するようにできるそうですが、どのように操作すればよいのか、
検討がつきません。
アドバイスをいただけないでしょうか?
下のリンクは「手動で作った」イメージ図です(DS8という枠を移動させると、各矢印が自動追尾して角度と長さを変化)
ttp://49uper.com:8080/html/img-s/72126.jpg
バージョンはExcel2000になります。
よろしくおねがいします。
583名無しさん@そうだ選挙にいこう:2005/08/17(水) 18:30:34
>>582
コネクタ使え。
使い方はヘルプ参照。
584名無しさん@そうだ選挙にいこう:2005/08/17(水) 20:50:56
Excel 2004 for Macを使っています。
セルを選択すると、そのセルだけ浮き上がったように周りに影が付きますが、
あの影を表示させない方法は有りませんか?
windowsと同じように使えないので不便です。

VBAが使えるかどうかはわかりません。
585名無しさん@そうだ選挙にいこう:2005/08/17(水) 21:33:19
>>569
助かりました
ありがとうございます!
586名無しさん@そうだ選挙にいこう:2005/08/17(水) 23:52:52
エクセル2003でOSはXP

突然、セルの塗りつぶしが出来なくなってしまいました・・・orz
印刷プレビューには塗りつぶされたセルが見えるのですが
画面上のセルには何も変化がありません

どうすれば直るんでしょうか?
587名無しさん@そうだ選挙にいこう:2005/08/18(木) 00:41:36
HTMLのテーブルなどをコピーして、EXCELにペーストするとテーブルがそのままセルの形として表示されますが、
会社の端末によって、ペーストしてからセルの形になるまでの時間の差が見られます。

数秒程度で表示できるものもあれば、数分掛かる端末もあります。
現在家のEXCELでは数分掛かってしまいます。
単純なHTMLの記述ですと家のEXCELでも数秒で終わるものもあります。
「形式を選択して貼り付け」→「テキスト」 ではテーブルをセルとして表示できないのでこちらは使用は考えていません。

この現象は設定でどうにかなるものなのでしょうか?
【1 OSのバージョン】 Windows XP Home SP2
【2 Excelのバージョン】 Excel 2002       よろしくお願いします
588名無しさん@そうだ選挙にいこう:2005/08/18(木) 00:49:38
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
A B C D E F
1
2
3
4
5

グラフの作り方についてなのですが
X軸とY軸にはA〜Fのどれでも選べるように
プルダウンメニューが配置してあって
題名の部分にはA〜Fを選びフィルタをかけるような機能が
ついていたと思います。
よろしくお願いします。
589名無しさん@そうだ選挙にいこう:2005/08/18(木) 02:09:55
Excel2000でグループ化設定して折りたたんだままセルのコメントを編集しようとすると
コメントボックスがあさっての場所に出現するのは仕様ですか?
590名無しさん@そうだ選挙にいこう:2005/08/18(木) 08:40:19
ファイルですみません。
http://para-site.net/up/data/4981.gif

こんな家計簿を作ろうと思ってます。
F行の金額に入る関数を教えて頂けないでしょうか?
F5とF13を教えていただければ分かると思います。
591名無しさん@そうだ選挙にいこう:2005/08/18(木) 09:51:01
>>590
F5 SUMIF関数
F13 SUM関数 IF関数 (日付関数)

使う関数はこれだけ
日付関数は使わなくても出せるけど、使った方が便利
数式は自分で組みましょう
592名無しさん@そうだ選挙にいこう:2005/08/18(木) 09:52:25
>>590
F5 に =SUMIF($C$2:$C$9,E5,$B$2:$B$9)
F13に =SUMIF($A$2:$A$9,E13,$B$2:$B$9)

SUMIF関数
 =SUMIF(検索範囲,検索条件,合計範囲)
F5では
検索範囲にC列、検索条件に集計表の項目、合計範囲にB列
の書き方です。
F13では検索範囲をA列にするだけ。
※検索範囲、合計範囲は絶対参照にしておく事。
 それか名前の定義を付ける。
593592:2005/08/18(木) 09:53:16
うゎ、かぶった orz
594名無しさん@そうだ選挙にいこう:2005/08/18(木) 10:10:58
Excelの行と列がどちらも数字で表示されています。
列は英文字で表示したいのですが、
どうやったらいいのか分かりません。
ご存知の方、教えてください、よろしくお願いします。
595名無しさん@そうだ選挙にいこう:2005/08/18(木) 10:12:55

初心者が陥りやすい罠

行列のどちらかで絶対参照が必要になると、
行列の両方を絶対参照にしてしまう

単に自分で使うだけならたいして問題ないが、
その式を使ったを他人が使ったり修正したりするときに
ある程度関数式わかってる奴は、絶対参照があれば
「何故絶対参照にしてるんだろう」と考える。
絶対参照が必須の場所で有れば、絶対参照を使う理由もすぐに解るが
必要もないところに絶対参照を使うと混乱を招く可能性がある。
なので「どちらでも良い場合」は相対参照を使うのが基本。
>>592の場合、列は絶対参照にする必要なし。

いや、煽りじゃなくて真面目な話っす。
596名無しさん@そうだ選挙にいこう:2005/08/18(木) 10:13:45
>>594
>>4 = FAQ: 列の表示について =
597592:2005/08/18(木) 10:17:48
>>595
>592の式だとF5以下にコピペした時にずれると思ったので
絶対参照にしたのです。
範囲をセルじゃなくC:Cとか列全体にすればよかったのかな?
598592:2005/08/18(木) 10:20:46
>>595
すいません。「列は」ですね。
やっと理解しました。
599名無しさん@そうだ選挙にいこう:2005/08/18(木) 10:30:21
>>592
F5のほうはともかく、F13の集計はそのSUMIFではできないのでは?

元の590さんが日付データをどう入力・表示しているかにもよるけど。
(日付の表示形式でコントロールしてるのか、文字列でやっているのか)
少なくともF5と同じ方法では出せないと思いますが。

591さんの
>F13 SUM関数 IF関数 (日付関数)
か、作業列を作ってそこで条件判定させといてからSUMIFじゃないかな。
600名無しさん@そうだ選挙にいこう:2005/08/18(木) 10:34:09
>>596
もうずっと人大杉

携帯 でのアクセスについて

■とりあえずスレッドを読むには■


人大杉についてもっと詳しく知りたい


お願い。
くれぐれもメールで問い合わせ無いようにして下さい。
601名無しさん@そうだ選挙にいこう:2005/08/18(木) 10:36:56
> 作業列を作ってそこで条件判定させといてから
D2に=MONTH(A2)ってことか?
確かにこれが一番簡単かもな。
602592:2005/08/18(木) 10:41:19
>>599
実際やってみたらF13も出来ましたよ。
603名無しさん@そうだ選挙にいこう:2005/08/18(木) 10:54:54
もしかして592って、E12が「年/月」じゃなくて「月/日」だと勘違いしてないか?
604名無しさん@そうだ選挙にいこう:2005/08/18(木) 11:00:08
>>602
できないと思います。できているなら何かがおかしい。

そのSUMIFで出せるなら、たとえばA2=E13が成立することになるでしょ。
セルの見かけはA2=05/07/31、E13=05/07
通常の日付データならE13が実際には2005/07/31で表示だけ05/07
のときのみ、シリアル値が同じになる可能性があるけど、それ以外はダメ。
双方が文字列だとしたら、余計に"05/07/31"と"05/07"が同じわけがない。
605名無しさん@そうだ選挙にいこう:2005/08/18(木) 11:00:57
>>596
>>594です、回答ありがとうございます。
でも>>4のスレが見れません。。。
よかったらここでもう一度教えてください。
お願いします。
606名無しさん@そうだ選挙にいこう:2005/08/18(木) 11:04:22
2chブラウザ入れろと言いたいところだが会社からってこともあるので


= FAQ: 列の表示について =
Q:列名がA,B,C,D,Eではなく、1,2,3,4,5になってしまいました。
  アルファベットに戻すにはどうしたらいいですか?
A:ツールメニュー:「オプション」 -「全般」タグで
  『R1C1 参照形式を使用する(C)』のチェックを外せば直ります。
607名無しさん@そうだ選挙にいこう:2005/08/18(木) 11:09:48
>>606
わざわざコピペしてくれてありがとうございました。
608名無しさん@そうだ選挙にいこう:2005/08/18(木) 11:11:47
>>603
だとしたらなんだよ。
609606:2005/08/18(木) 11:13:16
すいません。訂正します。

>2chブラウザ入れろと言いたいところだが
2chブラウザをご使用くださいとお願いしたいところですが
610名無しさん@そうだ選挙にいこう:2005/08/18(木) 11:16:47
>>608
いや、>>592の式で、「実際やってみたらF13も出来ましたよ。」となるには
そういう勘違いの可能性もあるかなと思って。
普通は>>604も説明してるように出来ないはずなので
何か勘違いしてるなら、592の為にも質問者の為にも指摘・訂正してやらにゃあかんからな。
611名無しさん@そうだ選挙にいこう:2005/08/18(木) 11:17:58
>>609
そういう他演は、お礼レスが付く前にやらなきゃ意味無いよ
タイミング的に恥ずかしすぎ
612名無しさん@そうだ選挙にいこう:2005/08/18(木) 11:28:36
>>610
的はずしすぎ。
613名無しさん@そうだ選挙にいこう:2005/08/18(木) 11:29:15
>>611
あんた誰?
614592:2005/08/18(木) 11:30:38
>>603.610
集計表の「年/月」を「月/日」と勘違いしておりましたです。
もうちっとじっくり見なきゃいけませんね。
失礼しました。
615名無しさん@そうだ選挙にいこう:2005/08/18(木) 11:37:30
>>612
m9(^Д^)プギャー
616名無しさん@そうだ選挙にいこう:2005/08/18(木) 11:44:07
A1に商品1、B1に商品2、C1に商品3…商品100という項目があったとして
A2に200円、B2に300円、C2に250円…150円とそれぞれの値段があります。
そして別シート(Sheet2)に適当な商品項目を手打ちします。A1に商品5、A2に商品50…
そしてそれぞれの商品に対する値段をB列に表示させるというマクロを組みたいのですが
どういった記述になりますでしょうか?Sheet2のA列の項目数は毎回変わるので
回数指定もできないので迷っております…ご教示ください…。
初歩的なものだとは思うのですが初めて自分で組むVBAなのでわからない事だらけです…。
なお、申し訳ないのですが2chブラウザを入れられない環境なのでそのまま表示されるように
説明頂けると助かります。
617名無しさん@そうだ選挙にいこう:2005/08/18(木) 11:44:33
>>591-992
遅くなりましたがありがとうございます。
618603=610:2005/08/18(木) 11:47:41
>>614
やっぱりか。ま、ミスは誰にでもあるさ。
んで回答としては、

1) E13にシリアル値で一日の日付で入力(05/07/01、05/08/01、05/09/01、…)

作業セルを使う方法
2) D2に=MONTH(A2)、オートフィルでコピー
3) F13に=SUMIF(D$2:D$9,MONTH(E19),B$2:B$9)

配列数式を使う方法
2) F13に=SUM(IF((A$2:A$9>=E13)*(A$2:A$9<DATE(YEAR(E13),MONTH(E13)+1,1)),B$2:B$9,0))
  でCtrl Shiftを押しながらEnter
619590:2005/08/18(木) 11:48:41
うわっ更新したらこんなにレスが!
年/月はまだ未解決ですがとりあえず項目集計はうまくいきそうです。
620名無しさん@そうだ選挙にいこう:2005/08/18(木) 11:49:55
>>618
あんた氏ねばいいのに
621名無しさん@そうだ選挙にいこう:2005/08/18(木) 12:01:03

(´-`).。oO( どうしてちゃんと回答してる奴に文句言ってるんだろう……。夏…かな? )
622590:2005/08/18(木) 12:15:48
>>618
書き込み1分差でまたも見落としてしまいました。

作業セルを使う方法を、来年も対応できるよう
作業セルにYEARを加えて使わせていただきます。
623名無しさん@そうだ選挙にいこう:2005/08/18(木) 12:22:48
いや、YEAR入らないか?あれ?上手くいかないぞ。。。
624603=610:2005/08/18(木) 12:27:22
>>622-623

作業セルを使う方法
2) D2に=DATE(YEAR(A2),MONTH(A2),1)、オートフィルでコピー
3) F13に=SUMIF(D$2:D$9,E13,B$2:B$9)

でどーよ?
625名無しさん@そうだ選挙にいこう:2005/08/18(木) 12:40:55
いけました!ありがとうございます。
簡単な記述ミスでした_/ ̄|○
626名無しさん@そうだ選挙にいこう:2005/08/18(木) 12:41:02
>>621
態度が悪いからでしょ。
627名無しさん@そうだ選挙にいこう:2005/08/18(木) 12:43:36

(´-`).。oO( お礼の直後だと説得力のかけらも無いな……。 )
628名無しさん@そうだ選挙にいこう:2005/08/18(木) 12:48:53
確かに。
というか、質問者が満足してるのに
質問者でも無い奴が回答もせずにケチつけてるのって惨めだよな。
ヤバッ、これじゃ漏れも惨めな奴らの仲間入りしちゃうぜw
629名無しさん@そうだ選挙にいこう:2005/08/18(木) 12:49:02
>>627
>>622が自演レスであることに気付いていない人が1名います。
630名無しさん@そうだ選挙にいこう:2005/08/18(木) 12:50:12
>>627=>>628
これを自演と呼びます。
631名無しさん@そうだ選挙にいこう:2005/08/18(木) 12:53:39
630の1行目、FALSEが返りました。
632名無しさん@そうだ選挙にいこう:2005/08/18(木) 12:54:13
どなたか
>>616
わかりませんか…
633名無しさん@そうだ選挙にいこう:2005/08/18(木) 12:57:52
VBA使う必要あるの?
HLOOKUPつかって必要なところまでオートフィルでコピーすればいいじゃん
使わないところは論理式で非表示にすればいいし
634名無しさん@そうだ選挙にいこう:2005/08/18(木) 13:04:29
>>633
しょちゅう行う作業なので上司からマクロを組んでくれ、と…。
他にも作業が結構あって他の部分はなんとか組めたんですが
ここの部分だけまだ組めないんです…
635名無しさん@そうだ選挙にいこう:2005/08/18(木) 13:12:54
しょちゅう行う作業なら関数の方がいいじゃん
一度論理式で組んで置けば、A列の項目数に合わせて
コピーしたり消したりって作業が必要になるわけでもないし
マクロより断然軽いし

それでもマクロがいいなら
For i = 1 To Cells(65536, 1).End(xlUp).Row
が、A列の項目の数だけ処理を繰り返す処理になる
他の部分は自分でできるようだからあとはがんばれ
636名無しさん@そうだ選挙にいこう:2005/08/18(木) 13:19:45
>>635
関数とマクロってどう違うんですか?
637名無しさん@そうだ選挙にいこう:2005/08/18(木) 13:29:01
>>635
ありがとうございます!
エクセルファイルを開いたあと、ワンボタンで自動的に作業をして
自動的に保存するところまで作ってほしい、との事だったので…
A1に商品1、B1に商品2、C1に商品3…商品100という項目があったとして
A2に200円、B2に300円、C2に250円…150円とそれぞれの値段があります。
そして別シート(Sheet2)に適当な商品項目を手打ちします。A1に商品5、A2に商品50…
そしてそれぞれの商品に対する値段をB列に表示させるというマクロを組みたいのですが…

ももしよろしければ…
For i = 1 To Cells(65536, 1).End(xlUp).Row
の使い方もちょっとわからなかったので…
638名無しさん@そうだ選挙にいこう:2005/08/18(木) 13:35:53
>>637
分からないからなんですか?
639名無しさん@そうだ選挙にいこう:2005/08/18(木) 13:36:27
本気で何か質問しようとしている人間が
>ももしよろしければ…
↑こんなおふざけする?
640名無しさん@そうだ選挙にいこう:2005/08/18(木) 13:37:13
>>636
っ[辞書]

値を返すのが関数で処理を代行するのがマクロとでも思っておけば微妙にOK
641名無しさん@そうだ選挙にいこう:2005/08/18(木) 13:38:32
>>636
Excelで関数と言うとVBA関数もあるが、基本的には組み込みのワークシート関数
セル内に記述し、引数や位置情報、システム情報を与えることで戻り値を返すもの

ExcelのマクロはVisual Basic for Application言語で書かれた処理のうち
引数を取らないSubプロシージャのこと

これ以上のことが知りたければググろう
642名無しさん@そうだ選挙にいこう:2005/08/18(木) 13:41:51
>>637
Sub test()
Dim i As Long
Columns(2).ClearContents
For i = 1 To Cells(65536, 1).End(xlUp).Row
Cells(i, 2).Value = "データ範囲"
Next i
End Sub

空シートのA列の適当な行までなにか文字を入れて、上のマクロを実行してみな
あとは説明不要でしょ
643名無しさん@そうだ選挙にいこう:2005/08/18(木) 13:42:03
>>635さん、>>640さんの説明で合ってますか?
644637:2005/08/18(木) 13:42:42
>>638
わからないので具体的な使い方を教えて頂けるとありがたいです。
言葉足らずですいません。

>>639
全然ふざけてないですよ。
上記の「マクロを組みたいのですが… も、もしよろしければ教えて頂たいな」
という意味です。

全体的に言葉足らずだったみたいですね。すいませんでした。
645名無しさん@そうだ選挙にいこう:2005/08/18(木) 13:43:14
>>641
>セル内に記述し、引数や位置情報、システム情報を与えることで戻り値を返すもの
え?そんなことできるの?できれば超簡単なサンプルを1つ
お願いします。
646名無しさん@そうだ選挙にいこう:2005/08/18(木) 13:44:38
>>644
>も、もしよろしければ教えて頂たいな
依然としてふざけているようですし、日本語にもなっていません。

あなたがふざけていないと言っても他人にふざけていると
思われては意味がありません。学生のうちに直しましょう。
647名無しさん@そうだ選挙にいこう:2005/08/18(木) 13:45:29
>>642
どうやって実行すればよいのでしょうか。
648637:2005/08/18(木) 13:47:50
>>642
どうもありがとうございました!!
これを元に研究すればなんとかなりそうです!!
ほんと助かりましたー
649637:2005/08/18(木) 13:51:35
>>646
あっそ。好きに言ってて。
650名無しさん@そうだ選挙にいこう:2005/08/18(木) 13:52:11
>>645
A1に10、B1に20、C1に=SUM(A1,B1)
引数がA1=10とB1=20、戻り値が30

C3に=ROW()
位置情報がC3(引数を省略した場合自動で与えられる)、戻り値が3

A1に=TODAY()
システム情報が今日の日付(自動で与えられる)、戻り値がシステムに設定されてるその日の日付シリアル値
651名無しさん@そうだ選挙にいこう:2005/08/18(木) 13:53:34
なんか、知りたいわけでもないのに野次で聞き返してる子が居るような気がする
652名無しさん@そうだ選挙にいこう:2005/08/18(木) 13:54:13
ここは夏休みの日記帳ですね
653名無しさん@そうだ選挙にいこう:2005/08/18(木) 14:05:13
>>649
これを逆ギレと呼びます。
654名無しさん@そうだ選挙にいこう:2005/08/18(木) 15:35:09
どこの板もガキがうざいよぅ…
夏休みのばかー。
655名無しさん@そうだ選挙にいこう:2005/08/18(木) 15:40:55
>>654
バーカ。お前らが相手しなきゃすぐ終わるのによ。学習しろ。
656名無しさん@そうだ選挙にいこう:2005/08/18(木) 16:00:20
相手になんかしてないよぅ。
ただどこの板見ても厨な書き込みが多いよぅ〜。ってこと。
9月までは来ないようにするよ。
657名無しさん@そうだ選挙にいこう:2005/08/18(木) 16:11:31
とか書きつつリロード連打。これが夏休みの正しい過ごし方。
658名無しさん@そうだ選挙にいこう:2005/08/18(木) 16:12:45
あれ?もう9月なの?
まだ8月半ばだと思ったんだが

それとも捨て台詞を吐かないと去ることも出来ないのかな?
夏休みですねぇ
659名無しさん@そうだ選挙にいこう:2005/08/18(木) 16:41:32
>>656-658
>>655
まぁ一人だとは思うけどな。学習不能人間がそんなに何人も
いるとは思えないから。
660名無しさん@そうだ選挙にいこう:2005/08/18(木) 16:53:31
マクロを勉強し始めて自動記録を元に色々いじっているのですが
オートフィルタで絞込みの値をセルの値から参照したいと思っています。
例えばSheet1のA1を参照したい場合は下の「????」の部分はどういった記述になるのでしょうか?

Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="????"
661名無しさん@そうだ選挙にいこう:2005/08/18(木) 16:57:30
Range("A1").Value
662名無しさん@そうだ選挙にいこう:2005/08/18(木) 17:05:20
>>660
これは正しい質問。何をしたくて何を教えてほしいのかが分かりやすい。
態度も悪くない。
663660:2005/08/18(木) 17:05:26
>>661 ありがとうございます。

シート1の選択も含める場合
Selection.AutoFilter Field:=1, Criteria1:="Worksheets("sheet1").Range("A1").value"
であってますか?
オートフィルタはかかったんですがシート1のA1の値が表示されずに
全て空白セルになってしまいました。
どこがいけないのでしょうか?
664660:2005/08/18(木) 17:07:17
あ。ダブルクォーテーションがいらなかったんですね。
自己解決しました。ありがとうございました。
665名無しさん@そうだ選挙にいこう:2005/08/18(木) 18:57:49
メニューからファイルの挿入で画像を貼り込んでいるのですが、
そのコマンドに対応するショートカットなどはありませんでしょうか?
手数が減れば他の方法でも構いません。

666名無しさん@そうだ選挙にいこう:2005/08/18(木) 19:39:34
>>665
表示→ツールバー→図

誰か挿入した図の削除の方法しりませんか?
667名無しさん@そうだ選挙にいこう:2005/08/18(木) 20:19:31
>>666
図をクリックして選択状態にしといてキーボードの「Delete」
−ではあかんの?

>>665
666の言う「図」ツールバーでもええし、Excel2002以降なら、
「図形描画」ツールバーにも同じ「図をファイルから挿入」ボタンがある。

またはツール→ユーザー設定→コマンドで、分類「挿入」の中に
ある「ファイルから」ボタンを標準ツールバーにドラッグ&ドロップしとく。
668名無しさん@そうだ選挙にいこう:2005/08/18(木) 20:21:57
>>665
日本語がダメ。
669名無しさん@そうだ選挙にいこう:2005/08/18(木) 20:28:30
>>667
選択状態に出来なくて・・・
よく調べたらシートが保護状態になってました。
アリガト!(´▽`)
670665:2005/08/18(木) 21:47:03
>>666,667
ありがとうございました。

>>668
意味がわかりません。
671名無しさん@そうだ選挙にいこう:2005/08/18(木) 21:54:29
>>670
日本語がなっていないという意味ですが?
672名無しさん@そうだ選挙にいこう:2005/08/18(木) 21:58:45
>>671
英語で書いてあげる方が親切なんでね?
673名無しさん@そうだ選挙にいこう:2005/08/18(木) 22:31:31
>>672
あんた誰?勝手に俺に向けてレスしないでくれ。面倒くさい。
674名無しさん@そうだ選挙にいこう:2005/08/18(木) 22:33:17














レスは許可制です
675名無しさん@そうだ選挙にいこう:2005/08/18(木) 22:51:24
ママ以外は相手しないように
676名無しさん@そうだ選挙にいこう:2005/08/18(木) 22:54:56
>>674
そりゃそうだろ。
677名無しさん@そうだ選挙にいこう:2005/08/18(木) 23:04:23
>>676
あんた誰?勝手に俺に向けてレスしないでくれ。面倒くさい。
678名無しさん@そうだ選挙にいこう:2005/08/19(金) 00:39:19
>>677
勝手にレスしてはいけない理由が書かれていないので無意味ですね。
ご苦労様です。
679名無しさん@そうだ選挙にいこう:2005/08/19(金) 00:47:49
マザコンは、ママ以外の人が相手すると
パニックを起こすそうな
680名無しさん@そうだ選挙にいこう:2005/08/19(金) 01:22:16
すみません、エクセルで00とか01という値を入力したいときはどうすればいいんですか?
なんか、勝手に0や1になってしまうんですが・・・・
681名無しさん@そうだ選挙にいこう:2005/08/19(金) 01:35:23
・表示形式→文字列
・'00
・="00"
682名無しさん@そうだ選挙にいこう:2005/08/19(金) 02:44:26
>>681
おお、サンクス
683名無しさん@そうだ選挙にいこう:2005/08/19(金) 03:30:34
 
 ★★★ また韓国、意図的な、でっち上げ反日報道 ★★★

 韓国の大手テレビ局が8月15日夜のニュース番組で報道した“旧日本軍による生体実験”と称する映像が、実は中国映画の盗用でっち上げだった。

 韓国のマスコミは反日キャンペーンで、この種のでっち上げ“歴史歪曲(わいきょく)”をよく行うが、今回の事件で 「日本糾弾ならウソも平気」 といった腐敗体質が改めて確認された。

 番組では戦前、旧日本軍の細菌戦研究731部隊の生体実験の様子を「白黒の記録フィルム風」に紹介したが、視聴者から「映画の場面と同じだ」と抗議の声が上がり、悪質なでっち上げが露呈した。

 この中国映画はカラー作品だが、テレビでは本物に見せかけるために「白黒」に変えられており、意図的なでっち上げであることは明白。

 日本の民主党(岡田党首)は、日本国内に数十万人いる反日的な在日韓国・朝鮮人に日本の選挙権を与え、民主党に投票させようと画策している。

 在日韓国・朝鮮人の大部分は、戦後のドサクサで密入国した不法滞在者とその子孫だが、強制連行されたとウソをついて被害者のフリをし、日本国内に居座って毎月二十数万円の生活保護をもらい、遊んで暮らしている。
 
684名無しさん@そうだ選挙にいこう:2005/08/19(金) 06:54:48
>>679
誤爆乙
685名無しさん@そうだ選挙にいこう:2005/08/19(金) 08:14:14
>>671
>>665の日本語は正確。
お前のカキコは主語と述語が対応してない。
686名無しさん@そうだ選挙にいこう:2005/08/19(金) 09:49:00
>>685
ふぅ、具体的に書かないと分からないのか・・・
「ありませんでしょうか?」の部分と最後の一文が丸々ダメなんですよ。

>お前のカキコは主語と述語が対応してない。
どれが主語でどれが述語ですか?
おそらく間違っていると思いますが、あなたが精一杯の知恵を
絞って理解した結果を教えてくだされば結構です。
687名無しさん@そうだ選挙にいこう:2005/08/19(金) 09:56:31
>685-686
スレ違い。こっちでやれ。

Excel総合相談所・雑談・議論スレ
http://pc8.2ch.net/test/read.cgi/bsoft/1120184635/
688名無しさん@そうだ選挙にいこう:2005/08/19(金) 10:03:49
明らかに>>685が粘着しているせいで終わらない。
放置すればいいだけなのに。
689名無しさん@そうだ選挙にいこう:2005/08/19(金) 10:09:23
すみません、教えてください。
690名無しさん@そうだ選挙にいこう:2005/08/19(金) 10:12:10
↑途中で書き込んでしまいました、すみません。
質問なんですが、任意のセルを点滅させるって出来ますでしょうか?
そもそもそんなことってできるんでしょうか。
vba使えばできるんでしょうか?
よろしくご教示下さい。
691名無しさん@そうだ選挙にいこう:2005/08/19(金) 10:17:50
自己解決しました。
692名無しさん@そうだ選挙にいこう:2005/08/19(金) 10:30:22
>>691
まじで?教えてください。
693690 ◆DkyXK/NE1A :2005/08/19(金) 10:36:41
ちなみに自己解決はしてません。
ループまわすわけにもいかないですし。
ブックを開いたときのイベントとってちょっとの間点滅させようかと思いますが、なにかよいお知恵がありましたらお教え下さい。
目的は相手の注意を惹くためです、いつまでたっても数字が未入力のままなので。
694名無しさん@そうだ選挙にいこう:2005/08/19(金) 10:42:34
>>693
ものすごいグロテスクな色を付けるとか吹き出しを付けるとか
メッセージボックスで「〜のセルに入力してください」と書くとか。
695690 ◆DkyXK/NE1A :2005/08/19(金) 10:49:40
>>694
メッセージボックスはいいですね!
それでいこうと思います。
思いつきませんでしたorz
ありがとうございました。
696名無しさん@そうだ選挙にいこう:2005/08/19(金) 11:02:28
VBA で質問です。
↑レスの点滅と似ていますが、
本来はタイマ割り込みイベントで処理をしたいのですが、
ループとウェイトで擬似的に実現するしか無いのでしょうか。
分解能は1秒以上を考えています。
697名無しさん@そうだ選挙にいこう:2005/08/19(金) 11:29:29
>>696
なんで質問するのに無礼な態度を取るのかを
まず説明してくれ。
698名無しさん@そうだ選挙にいこう:2005/08/19(金) 11:39:19
>>697
どこがどう無礼なのか教えていただきたい。
理解できれば、詫びるのにやぶさかでは有りません。
699名無しさん@そうだ選挙にいこう:2005/08/19(金) 11:41:46
Application.OnTime
700名無しさん@そうだ選挙にいこう:2005/08/19(金) 11:48:14
>>699
ありがとうございました。今Helpで確認しました。
どうも VB 系慣れてないもので助かりました。
701名無しさん@そうだ選挙にいこう:2005/08/19(金) 11:54:12
>詫びるのにやぶさかでは有りません。

テラワロス
702名無しさん@そうだ選挙にいこう:2005/08/19(金) 12:07:06
>>698
マジですか・・・>>697に変わって説明してみます。
「実現するしか無いのでしょうか」にはVBAに対する不満が感じ取れます。
実際不満をお持ちですよね。

それをなぜここにぶつけるのですか?ここはマイクロソフトのサポートセンターでは
ないのですよ。

ここで書くなら、「私はこう考えています。他にいい方法があれば教えてください」
というスタンスで書くべきです。
703名無しさん@そうだ選挙にいこう:2005/08/19(金) 12:07:48
>>701
なんで?
704702:2005/08/19(金) 12:08:46
すいません。訂正します。

「書くべきです」→「書くべきだと私は思います」
705697:2005/08/19(金) 12:09:56
概ねそんな感じ。別に理解できない奴に無理に分からせようとも思わんけどね。
ただ、本人にそのつもりがなくても相手にそう思われたらビジネスの世界では
ダメ、とだけは捨て台詞として書いておく。
706名無しさん@そうだ選挙にいこう:2005/08/19(金) 12:10:33
>>701
なんで?
707名無しさん@そうだ選挙にいこう:2005/08/19(金) 12:11:10
>>703
>>701が意味知らないから言葉の響きだけで笑えたんでしょ。相手すんな。
708名無しさん@そうだ選挙にいこう:2005/08/19(金) 12:35:20
すごく・・・慇懃無礼なり・・・
709名無しさん@そうだ選挙にいこう:2005/08/19(金) 12:37:35
>>708
誰宛?
710名無しさん@そうだ選挙にいこう:2005/08/19(金) 12:38:57
2chで言葉遣いが悪いとか面白いなこのスレ
711名無しさん@そうだ選挙にいこう:2005/08/19(金) 12:45:42
話の流れをまとめると

自分で問題解決できないウジ虫はモニタの前で全裸になって土下座しつつ書き込めよwwwwwwwwwwwwww

って感じか。
712名無しさん@そうだ選挙にいこう:2005/08/19(金) 13:24:19
>>711
違うんじゃない?
713名無しさん@そうだ選挙にいこう:2005/08/19(金) 13:55:46
>590 F13の件 遅ればせながら、私案を思案しました。

作業セルD2以下に、
=TEXT(A2,"yy/mm")

F13以下に
’05/07

シリアル値を文字化しておいて、あとはSUMIF。
714名無しさん@そうだ選挙にいこう:2005/08/19(金) 14:05:58
>>713
遅れすぎ。
715名無しさん@そうだ選挙にいこう:2005/08/19(金) 14:17:07
>>713
>>618,>>624の「作業セルを使う方法」と内容的には変わらないじゃん

しかもF13以下じゃなくてE13以下だし、
>>618のやり方だとオートフィルで05/12→06/01になるけど、
>>713のやり方だと05/12→05/13になっちゃうし。
716名無しさん@そうだ選挙にいこう:2005/08/19(金) 14:33:33
範囲指定したセルの高さを一気に変えるにはどうしたらいいですか?
出先で携帯のネットしか使えないし、ヘルプがインストールされてないパソコンで分かんないんです。
717名無しさん@そうだ選挙にいこう:2005/08/19(金) 14:39:08
>>716
セルっつーか、行だろ?
書式→行→高さ じゃダメなんか?
718名無しさん@そうだ選挙にいこう:2005/08/19(金) 16:07:37
>>715
まあまあ、それが彼が長時間思案した私案なんだから
いじめてやるなよ。
719名無しさん@そうだ選挙にいこう:2005/08/19(金) 17:10:21
質問です。

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000

Excelからファイルを開くときのダイアログで、
ファイル一覧をだして、名前順に並べ替えても正しい順番になりません。
調べてみると、MS-DOSファイル名の順番にソートされてるようなのですが
これを短縮されたファイル名ではなく、長いファイル名?順に
並べ変わるようにするにはどうしたらいいのでしょうか?

aaaaaaaaaaaaaa.xls(ms-dosファイル名:aaaa_002.xls)
bbbbbbbbbbbbbb.xls(ms-dosファイル名:aaaa_001.xls)
cccccccccccccc.xls(ms-dosファイル名:aaaa_003.xls)

↑だと、
bbbbbbbbbbbbbb.xls(ms-dosファイル名:aaaa_001.xls)
aaaaaaaaaaaaaa.xls(ms-dosファイル名:aaaa_002.xls)
cccccccccccccc.xls(ms-dosファイル名:aaaa_003.xls)

のようになってしまう。

720名無しさん@そうだ選挙にいこう:2005/08/19(金) 17:28:59
>>719
Excel独自のコモンダイアログを使う以上、どうにもならない

どうしてもどうにかしたいなら自分でコモンダイアログを呼べ
やり方はググって調べよう
721名無しさん@そうだ選挙にいこう:2005/08/19(金) 17:31:00
>>720
レスありがとうございます。
そこまではできないです・・・('A`)
同じような環境でもPCによってはちゃんと並ぶんですけど、
何に依存してるんだろ・・・Updateすれば治るのかなぁ
722名無しさん@そうだ選挙にいこう:2005/08/19(金) 17:40:48
>>721
がんばれ
723719:2005/08/19(金) 18:08:27
win:トラブル
http://homepage2.nifty.com/winfaq/c/trouble.html#368

を試してみたけど、ダメですた('A`)
できてるものとできてないものがあるんだからどこかで
できそうなんだけど・・・update全部適用してもダメ。
どこかで設定するところがあるのかな('A`)
724名無しさん@そうだ選挙にいこう:2005/08/19(金) 18:11:52
無いよ
725719:2005/08/19(金) 18:18:47
ツール>オプション>全般>Webオプション>ファイル>長いファイル名を使用する

にチェックいれたらできますた

・・・と書く用意までしたのにだめですた。
既にチェックがついてた・・・。
726名無しさん@そうだ選挙にいこう:2005/08/19(金) 18:21:24































 
727名無しさん@そうだ選挙にいこう:2005/08/19(金) 19:10:52
すいません、ここでよろしいかどうかわからなかったのですが、
質問させていただきます。

DBソフトに外部CSVデータを入力する場合など、
これまではxls形式ファイルをEXCELでデータ加工後、
『名前を付けて保存→CSV形式で保存』というような
手順で作業しておりました。

今日も同じような作業をしていたところ、
DBソフトでインプットエラーが発生し、
原因を探ってみたところ、
プライマリキー(16桁)が何故かCSVで保存しファイルを閉じた後の時点で、
7桁目から後が0の羅列になっていたのです。
(例:1234567890123456→123456700000000)

非常に困っております。
解決策はありますでしょうか?
よろしくお願いいたします。
728名無しさん@そうだ選挙にいこう:2005/08/19(金) 20:45:36
>>727
残念だけど、スレ違い。さようなら。
729名無しさん@そうだ選挙にいこう:2005/08/19(金) 20:51:36
>>728
どうして?Excelの問題じゃん
730名無しさん@そうだ選挙にいこう:2005/08/19(金) 20:52:31
>>728
>CSVで保存しファイルを閉じた後の時点で
731名無しさん@そうだ選挙にいこう:2005/08/19(金) 20:54:15
>>727
単に表示形式を「数値」とかにすればよいだけなのでは?
732名無しさん@そうだ選挙にいこう:2005/08/19(金) 22:32:18
【1 OSの種類】 Windows xp pro
【2 Excelのバージョン】 Excel 2003
【3 VBAが使えるか】 はい
【4 VBAでの回答の可否】 可

Q. 設定した範囲のセルから、条件に一致したセル内容を
  VBAを使ってまとめて指定場所へコピーする方法を教えて下さい。
  (Excel2003環境です)

  A    B
1  *    新宿
2      代々木
3
4  *    渋谷
5  *   恵比寿

とある場合に、A列に“*”がある場合だけ指定場所へコピーしたいのです。
そして、指定場所へコピーする時に、下記の様に上から順に詰めてコピーさせたいのです。

  A    B
1 新宿
2 渋谷
3 恵比寿
4
5

行数が多いので処理を軽くする為に、行ごとに判定して実行するのでは無く、
例えば1〜500行の範囲をまとめて実行する事は出来ますか?
733名無しさん@そうだ選挙にいこう:2005/08/19(金) 22:50:43
>>732
WinXP、Excel2003が動くPCなら、
500行を1行ずつ条件判断しても0.1も掛からないと思うが

まとめてやるならソート兼用するしか無いが、
処理後元に戻すなら逆に遅くなると思う。

「A列に“*”がある場合だけ」は
For NextとIf使えば出来る。>>642を参考にするといいかも。
ただしそのまま動かすとB列消えるので注意。
あとはループカウンタの他に、条件一致の場合のみ増やすカウンタを入れて
そのカウンタの位置に結果を入れていけば上詰めでデータ抽出できる。
734732:2005/08/19(金) 23:00:58
>>733
そんなに処理が早いものだったんですか。
ここでPC環境を久しぶりに入れ替えたんで、以前の状況で考えていました。
レスありがとうございました。マクロ組んでみます。
735名無しさん@そうだ選挙にいこう:2005/08/20(土) 06:30:30
【1 OSの種類         .】 Windows2000SP4
【2 Excelのバージョン   】 Excel2000/2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

50%くらいの表示にて常用したいシートがあります。
複数の人間で共用なので、誤入力防止のためドロップダウンによる選択にしたいのですが、
ドロップダウンメニューのサイズがやたらと小さくなってしまい、可読性に難ありです。

ドロップダウンメニューの(フォント)サイズを任意に変えるにはどうしたらいいのでしょうか?
736名無しさん@そうだ選挙にいこう:2005/08/20(土) 07:14:27
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

すみません教えて下さい

表現が難しいのですが
右上の【最小化】【最大化】【閉じる】ボタンが無くなりました

エクセル自体のそのボタンは有るのですが、そのワークシート(って言うんですよね?)だけが表示されないのです。
他のワークシートを開くと【最小化】【最大化】【閉じる】はエクセル全体のものと、
ワークシートのものが二段で表示されているのですが・・・

よろしくお願いします
737hoge ◆hoge//WRxY :2005/08/20(土) 08:58:56
>>735
入力規則、及びフォームのドロップダウンメニュー(コンボボックス)は、
基本的にフォントサイズを任意に変更できません。
レジストリを書き換えることで一応変更は出来ますが、他のメニューなどの文字も
大きくなってしまうので、ちょっと大きくしたい程度ならいいですが、
50%の状態で100%の時と同じ程度の大きさにすると、他の部分のフォントサイズが
大きくなりすぎますし、複数のPCで使うようなのでこの方法は実用性に欠けると思います。


なのでフォントサイズを変更したければ、コントロールのコンボボックスを使いましょう。
こちらはFontプロパティで任意のフォントサイズを選択できます。
但し、VBAを使わずにコントロールのコンボボックスを使うには、
表示するリストをシートに書き出しておく必要があります。
リストに表示する内容は、ListFillRangeプロパティにセルの参照で入力します。
更にVBAを使わずにコンボボックスの値を得るにはLinkedCellプロパティを使います。
こちらもセルの参照を入力してください。

>>736
ブックの保護で、「ウィンドウ」が保護対象になってるブックは、
ブックウィンドウのコントロールボタンが表示されません。
ブックが保護されてないか確認してみてください。
738名無しさん@そうだ選挙にいこう:2005/08/20(土) 13:49:09
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 初学者です
【4 VBAでの回答の可否】 可

すみません、教えてください。

ボタン1を押したらプロシージャAのdo loop untilが終わるようにしたいのですが、よく分かりません。詳細を以下に書きます。

ブックを開いたらボタンが1個あるフォーム(モーダル)が開きます。
フォーム1に do loop until があるプロシージャA(module1に書きました)を呼んでいます。
で、ボタン1を押したらAが終了して、プロシージャB(セルA1をアクティブにします。フォームに記述予定)が実行されフォームも消えてセルに文字を書き込める状態にしたいのですが、ここで躓いています。

Aのloopの条件を「ボタン1が押されるまで」にしたいのですがよく分かっていないので、恥ずかしいのですが、ボタン1のコードに宣言部でPublic strState As Stringとして
Sub CommandButton1_Click()
strState = "clicked"
Unload UserForm1
End Sub
としてAの条件をuntil strState = "clicked"としています。

で実行すると、ブックとともに開くフォームのボタンを押すと
「コンパイル エラー:変数が定義されていません。」とでて、VBEが開き、A()の部分が黄色くなり、strStateが青く反転しています。イミディエイトで? strStateとすると一行改行されるだけで何も出てきません。
本当はもっとスマートにボタンが押されたらAが終わるように出来るのでしょうが、皆目わかりません。until条件が○○=true等となる気が漠然としているのですが。又は記述場所が違うのでしょうか。
あとBはフォームが閉じる寸前にやる処理として書く予定です。
ご教示ください。よろしくお願いします。
739名無しさん@そうだ選挙にいこう:2005/08/20(土) 13:52:23

> ▼━質問時の注意━━━━━━━━━━━━━━━━━━━━
> ・ VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。
740名無しさん@そうだ選挙にいこう:2005/08/20(土) 14:21:17
>>739
こういうのにひっかかるなよ。
741名無しさん@そうだ選挙にいこう:2005/08/20(土) 14:49:21
【1 OSの種類         .】 WindowsXPSP2
【2 Excelのバージョン   】 Excel2003

ある範囲を”data” のように名前をつけて
関数内で範囲指定するときに”data”を打ち込めばその範囲を
参照してくれるようにする方法ってどうすればいんんでしたっけ?
742名無しさん@そうだ選挙にいこう:2005/08/20(土) 15:07:30
事故解決しますた
挿入→名前→定義でしたね
743名無しさん@そうだ選挙にいこう:2005/08/20(土) 16:02:11
【1 OSの種類         .】 WindowsXPSP2
【2 Excelのバージョン   】 Excel2003

お世話になりますm(- -)m

セルから動画ファイルにハイパーリンクを貼っているのですが、
クリックするたびにウィルス云々の警告がでます
拡張子をWMVやAVIではなく、WVMFILEというものに変えている
ため(わけあってWMVやAVIは使えない)と思うのですが
特定の拡張子で警告を出さなくする方法はありませんでしょうか?

知恵をお貸しくださいませ、よろしくお願いいたします
744名無しさん@そうだ選挙にいこう:2005/08/20(土) 16:25:11
745名無しさん@そうだ選挙にいこう:2005/08/20(土) 16:39:10
>>740
こういうのにひっかかるなよ。
746名無しさん@そうだ選挙にいこう:2005/08/20(土) 17:59:02
>>744-745
相当悪質だね、あんた・・・
747GiantLeaves ◆6fN.Sojv5w :2005/08/20(土) 21:18:38
(VBAの話題可。この質問でVBAは無いだろうけれど。)
WindowsXPでどうしてMSExcelが入っていないのか、誰か教えてください。
再インストールCDのどこかに入っているのでしょうか?
748名無しさん@そうだ選挙にいこう:2005/08/20(土) 21:24:41
すみません、質問です。
プリンターが装着されてない状態でプレビュー機能を
使う方法ってないでしょうか。
お願いします。
749名無しさん@そうだ選挙にいこう:2005/08/20(土) 21:31:42
>>747
WindowsXPにExcelを含めてしまったら、マイクロソフトは
痛い目にあうでしょう。
750GiantLeaves ◆6fN.Sojv5w :2005/08/20(土) 21:31:48
talk:>>748 印刷コマンドを押せばいいのではないか?ドライバがインストールされていれば問題ないと思っているが。
751GiantLeaves ◆6fN.Sojv5w :2005/08/20(土) 21:33:25
(WindowsXP使用, VBAの話題可。)
talk:>>749 別のノートパソコンには確かにExcelがインストールされているのを見たのですが。
752名無しさん@そうだ選挙にいこう:2005/08/20(土) 21:35:35
>>748
ある、って答えでいいんだよね。
753名無しさん@そうだ選挙にいこう:2005/08/20(土) 21:49:48
縦100×横100のセルに記入された値の重複チェックってできないでしょうか。
条件付き書式を使ったものはググったら見つけることが出来たのですが、
行単位でしかチェックすることができず、複数にまたがるものはできませんでした。
よろしくお願いします。

【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 できれば否
754名無しさん@そうだ選挙にいこう:2005/08/20(土) 22:13:59
>>753
できる。
755735:2005/08/20(土) 23:15:01
>>737
なるほど。コンボボックスから編集しないといけないんですね。

面倒ではありますが、一度テンプレさえ作ってしまえれば参照先のセル内容の編集くらいしか
しなくて済むので、通常のドロップダウンメニューよりも(他の人間は)楽なのかも知れません。
明日にでも早速試してみます。

ご回答ありがとうございました。
756名無しさん@そうだ選挙にいこう:2005/08/21(日) 02:10:25
> talk:>>***
> torque:>>***

(´-`).。oO( この使い方が間違いであることに、この子は気付いてるのだろうか…? )
757名無しさん@そうだ選挙にいこう:2005/08/21(日) 05:07:27
Windows2000、Excel2002、VBA否

質問です。
A列に数値が入っています。
A列から50<100の数値を抜き出して、最大値を求めるには
どのような式になるでしょうか?
758名無しさん@そうだ選挙にいこう:2005/08/21(日) 05:31:29
>>757
作業列を作って、そこにIF関数、AND関数で>50、<100の値を抜き出し
その範囲からMAX関数で最大値を求める。
配列数式使えるなら、作業セル使わずに配列数式でやってもいいけど。
759736:2005/08/21(日) 06:34:04
>>737
遅くなりました
ありがとうございました
760名無しさん@そうだ選挙にいこう:2005/08/21(日) 09:35:19
>>756
どうしたの?ボウヤ
761名無しさん@そうだ選挙にいこう:2005/08/21(日) 12:35:52
オートコンプリート機能を同列ではなく同行にも使うことは出来ますか?

762名無しさん@そうだ選挙にいこう:2005/08/21(日) 12:43:57
できません
763名無しさん@そうだ選挙にいこう:2005/08/21(日) 13:01:35
>>762
根拠は?
764名無しさん@そうだ選挙にいこう:2005/08/21(日) 13:15:13
>>763
データ範囲と隣接する同列のセルでしか動作しない仕様だから
765名無しさん@そうだ選挙にいこう:2005/08/21(日) 14:37:14
>>764
どこに書いてある?
766名無しさん@そうだ選挙にいこう:2005/08/21(日) 14:39:42
>>765
説明書
767名無しさん@そうだ選挙にいこう:2005/08/21(日) 14:47:22
>>766
説明書は入ってませんでした。
768名無しさん@そうだ選挙にいこう:2005/08/21(日) 14:57:32
裏付けのある明確な仕様説明が欲しい奴はMSに聞け
ここはそういうのを説明するスレじゃない
769名無しさん@そうだ選挙にいこう:2005/08/21(日) 15:38:29
>>768
はいはい、分かってますよ。知ったかぶって>>762>>764のような
無責任な書き込みをする輩を排除していきたいだけですから。
770名無しさん@そうだ選挙にいこう:2005/08/21(日) 15:40:43

(´-`).。oO( この子、どうしたんだろう…? )
771名無しさん@そうだ選挙にいこう:2005/08/21(日) 15:43:25
>>770
プ。アンタッテ・・・プ
772名無しさん@そうだ選挙にいこう:2005/08/21(日) 15:53:34
>>770
知ったか書き込みって邪魔じゃないの?
773名無しさん@そうだ選挙にいこう:2005/08/21(日) 16:12:26
知ったかってどれのこと?
>>762>>764は知ったかじゃなくて正しい回答してるもんね。
関係ないので題名は伏せるが、うちの本にも表現は違うけど>>764と同じようなことが書いてある。
間違った事をさも正しいかのように言ってるならまだしも
正しい事を言ってる奴は知ったかとは言わないよね。
774名無しさん@そうだ選挙にいこう:2005/08/21(日) 16:16:54
>>773
夏を相手にするな
暑いだけだ
775名無しさん@そうだ選挙にいこう:2005/08/21(日) 16:17:20
質問です
OS XP
バージョン 2002
VBAを使って解決したい

セルに人の名前が入っていて姓と名のあいだに空白が
あります。

この空白を境にして姓だけ、または名だけを残して
残りを削除するにはどのようにしたらいいか教えて
ください。

例)
「きむら たくや」

「きむら」または「たくや」とする

お願いします。
776名無しさん@そうだ選挙にいこう:2005/08/21(日) 16:54:05
>>773
正しさの根拠を聞かれて分からないから逆ギレしているようにしか見えませんが?
777hoge ◆hoge//WRxY :2005/08/21(日) 16:56:20
>>775
MsgBox Split("きむら たくや", " ")(0)
MsgBox Split("きむら たくや", " ")(1)

結果は実行してみれば分かると思います。
また、A1に「きむら たくや」と入力し
 Range("B1:C1").Value = Split(Range("A1").Value, " ")
を実行するとB1が「きむら」、C1が「たくや」になります。
A1に「きむら」だけ残したい場合は
 Range("A1").Value = Split(Range("A1").Value, " ")(0)

Left、MID、InStrなどの文字列操作関数を使っても出せますが
分割はSplit関数使った方が楽なので。
778名無しさん@そうだ選挙にいこう:2005/08/21(日) 16:56:22
>>762の「できません」は、>>762の知識では「できません」なのか、仕様上「できません」
なのか区別ができない。そこで>>763が根拠を教えて欲しいと思って聞いたのに
勝手に挑発されたと思って>>762が暴走したってとこだな。
779名無しさん@そうだ選挙にいこう:2005/08/21(日) 16:59:04
>>764の「動作しない」も同じ。
>>764の知識範囲で「動作しない」のか、仕様上「動作しない」のか
区別ができないのでソースを聞いたところ、挑発されたと思って
勝手にキレて>>764が暴走したってとこだな。
780名無しさん@そうだ選挙にいこう:2005/08/21(日) 17:00:55
>>773
「仕様」という言葉を安易に使いすぎなのでは?
自分の同僚とかもそうなんですが。
「やってみたらこうなりました」っていうのは仕様とは違いますよね。
781名無しさん@そうだ選挙にいこう:2005/08/21(日) 17:02:36
>>770-780
なんと同一プロバイダです。
782名無しさん@そうだ選挙にいこう:2005/08/21(日) 17:03:32
暑苦しい会話をいつまで続ける気ですか?
783757:2005/08/21(日) 17:04:57
>>758
配列数式は使えないので作業列を作りました。
すばやい解答ありがとうございました!
784名無しさん@そうだ選挙にいこう:2005/08/21(日) 17:05:45
>>782
ごめん。一応謝っておく。
785名無しさん@そうだ選挙にいこう:2005/08/21(日) 17:09:57
「できない」の根拠なんて、正確にはExcelの開発陣しか言えませんが。
解説サイトや本で「できない」とされてるものも、その記事を書いた人が知らないだけかも知れないし
通説的に「できない」とされてることも、レジストリや構成ファイルを直接弄ることで出来るようになるかもしれない。

開発陣なら「実装してないから出来ない」と根拠を提示出来るが、
開発陣だって全員が全てを把握してるとは思えないし、ましてやそれ以外の人は
どんなにExcelに精通していてもMSが見解を出しているもの以外に関しては根拠の提示なんて無理。
悪魔の証明のように「ない」の証明が困難なことは知られてるし、そんなこと考えるまでもなく解りそうなもんだが。
786名無しさん@そうだ選挙にいこう:2005/08/21(日) 17:12:08
>>763
ヘルプで検索してみた。
トラブルシューティング:データの入力
オートコンプリートが行われない
オートコンプリートの対象値
アクティブ セルを含む列に入力されている値が、オートコンプリートの対象になります。
列ではなく行に入力されている値が一致していても、オートコンプリートは行われません。

だそうな。
787名無しさん@そうだ選挙にいこう:2005/08/21(日) 17:12:53
事の発端は、………763
788名無しさん@そうだ選挙にいこう:2005/08/21(日) 17:14:06































 
789名無しさん@そうだ選挙にいこう:2005/08/21(日) 17:14:10































 
790名無しさん@そうだ選挙にいこう:2005/08/21(日) 17:14:17































 
791名無しさん@そうだ選挙にいこう:2005/08/21(日) 17:14:34
>>785
>「できない」の根拠なんて、正確にはExcelの開発陣しか言えませんが。
なんだ。自分で分かってるんじゃん。つまり君には答えられない
質問だったんだよね。じゃあなんで答えたの?

それを「知ったかぶり」っていうんだよ。

ま、分かってるみたいだからいいけど。
792名無しさん@そうだ選挙にいこう:2005/08/21(日) 17:15:31
>>786
すばらしい。こういう回答をすればいいんだよ。>>785に爪の垢を
煎じて飲ませたいね!
793名無しさん@そうだ選挙にいこう:2005/08/21(日) 17:18:30
質問です
OS 2000
バージョン XP
VBAを使って解決したい

A列に大量の数値があるんですが、それを印刷したいと思っています。
ですが、そのままだと紙の無駄なので、ある行で切り取り、B列に貼り付け、切り取り、C列に貼り付け・・・・
としたいのですが、VBAの本を読んでもだめでした・・・
お願いします。
794775:2005/08/21(日) 17:48:01
>777
ありがとうございました。
できました!

追加になりますがまた質問させてください。

777氏が書いて下さったやり方だと連続処理ができません。
名前が何行分もある場合はセルの指定をどのように
したらよいでしょうか。

私がやってみたのは
range(activecell)=split(range(activecell.offset(0,-1)))…
のようなやり方です。

できれば777氏のようにアクティブセルの姓名を
その右隣りとさらにその右隣りに分割できれば最高
です。

何度も申し訳ないですが、お願いします。
795hoge ◆hoge//WRxY :2005/08/21(日) 18:13:47
>>793
Const BottomRow As Long = 10 '折り返しの行数
Dim Temp As Variant, i As Long
Temp = Range(Cells(1, 1).Address, Cells(Cells(65536, 1).End(xlUp).Row, 1).Address)

For i = BottomRow + 1 To UBound(Temp)
 Cells((i - 1) Mod BottomRow + 1, (i - 1) \ BottomRow + 1).Value = Temp(i, 1)
Next i
Range(Cells(BottomRow + 1, 1).Address, Cells(Cells(65536, 1).End(xlUp).Row, 1).Address).ClearContents

折り返しの行数で 3 を指定すれば
1   1 4 7 10
2   2 5 8
3 → 3 6 9
4

10
となるはず。

>>794
行に対して処理したいなら
 Dim i As Long
 For i = 1 To Cells(65536, 1).End(xlUp).Row
  Range(Cells(i, 2).Address, Cells(i, 3).Address).Value = Split(Cells(i, 1).Value, " ")
 Next i
A列が元データ、B列が分割した左(氏)、C列が分割した右(名)

アクティブセルに対して処理したいなら
 Range(ActiveCell.Offset(0, 1).Address, ActiveCell.Offset(0, 2).Address).Value = Split(ActiveCell.Value, " ")
元データのセルをアクティブにして実行すると、ひとつ右に分割した左(氏)、ふたつ右に分割した右(名)
796名無しさん@そうだ選挙にいこう:2005/08/21(日) 18:17:58
>>795
ウォォ・・・ こうやってやるのか
VBAの本を読みながら勉強させてもらってます。

ありがとうございました。
797775:2005/08/21(日) 18:25:29
795
すご…。
見たことのない命令がたくさん出てきて勉強になります。
本当に助かりました。ありがとうございます!
798GiantLeaves ◆6fN.Sojv5w :2005/08/21(日) 18:26:25
talk:>>756 どうしたの?ぼうや。
799名無しさん@そうだ選挙にいこう:2005/08/21(日) 18:36:59
>>798
これ意味分からないんだけど、なんなの?talkとかtorqueとか
800名無しさん@そうだ選挙にいこう:2005/08/21(日) 19:19:26
>>799
返信内容を位置付けるものなんだが、根本的に使い方を間違えちゃってる。
801名無しさん@そうだ選挙にいこう:2005/08/21(日) 19:21:05
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

A1からA100 までに数値が入力されていたり、なにも入力されて
いなかったりします。
数値が入力されているセルの1番目から6番目までを合算する
数式をA101に。
数値が入力されているセルの7番目から12番目までを合算する
数式をA102に・・・以下同様
という風にするにはどうしたらよいでしょうか
802名無しさん@そうだ選挙にいこう:2005/08/21(日) 19:54:15
>>800
正しい使い方を教えてください。
803名無しさん@そうだ選挙にいこう:2005/08/21(日) 19:56:00
>>801
自分で計算してA101に打ち込む
繰り返す。
804hoge ◆hoge//WRxY :2005/08/21(日) 20:12:28
>>801
B1=IF(ISBLANK(A1),"",ROW())
C1=SMALL(B$1:B$100,ROW())
D1=IF(ISNUMBER(C1),INDEX(A$1:A$100,C1,1),"")

B1:D1を選択して、100行目までフィルコピー
B:D列を非表示

A101=SUM(D1:D6)
A102=SUM(D7:D12)
合計式もフィルコピーしたければ
A101=SUM(OFFSET(D$1,(ROW()-101)*6,0,6,1))
805GiantLeaves ◆6fN.Sojv5w :2005/08/21(日) 20:23:38
talk:>>799 "talk:"は会話形式であることの明示。
806名無しさん@そうだ選挙にいこう:2005/08/21(日) 20:31:00
ってことは、>>756の指摘はどういう意味なんだろう。
807名無しさん@そうだ選挙にいこう:2005/08/21(日) 20:34:38
【1 OSの種類         .】 WindowsXPHome
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否


↑この文字が含まれるフォルダの中の
xlsファイルを開くとシートが見えなくなってるのですが
みなさんはどうですか?
808名無しさん@そうだ選挙にいこう:2005/08/21(日) 20:38:09
"talk:"が会話形式を指すというのは有ってるが
"talk:>>***"という使い方が間違っている
スレ違いなのであえて使い方は書かないが、
初心者が落ちやすい間違いだな。
809801:2005/08/21(日) 21:08:01
>>804
ありがとうございました。
810名無しさん@そうだ選挙にいこう:2005/08/21(日) 21:56:12
http://www.fuji.ne.jp/~excelyou/trouble.html
だれかどういう事情か知ってる人教えて
811名無しさん@そうだ選挙にいこう:2005/08/21(日) 21:59:18
>>810
激しくスレ違い。
Excelに関する話題を扱ってるサイトとは言え、
そこの事情は直接Excelとは何の関係もない。

知りたければ直接自分で聞け。
812GiantLeaves ◆6fN.Sojv5w :2005/08/21(日) 22:16:14
talk:>>808 日本語を書け。
813名無しさん@そうだ選挙にいこう:2005/08/21(日) 22:20:01
あ〜もう、ここは"talk"じゃないでしょw
814748:2005/08/22(月) 00:12:43
>>750
カキコ規制されて返事遅れましたが、レスありがとうございました。
プレビュー機能の方は結局出来ませんでしたのであきらめます。
815名無しさん@そうだ選挙にいこう:2005/08/22(月) 09:11:05
>>814
もう見てないかもしれないけど。
750さんの言っている通りで、プリンタドライバーがインストールされていれば
実際のプリンターはなくても印刷プレビューは使えます。

どこのメーカーのどのプリンターでもかまいませんし、最新のものでなくても
かまいません。Windowsに標準でついてるから適当に選べばいいです。
(もちろん、そのプリンターの仕様にそったプレビューになりますが)
816名無しさん@そうだ選挙にいこう:2005/08/22(月) 12:22:34
現在VBAで目的のシートの最終行を求めるために
gyou = worksheet(1).Cells(1).CurrentRegion.Rows.Count
によってgyouと言う変数に値を入れています。
しかしセル1意外にも値が入力された場合(セル2に値が有る場合など)に正しい最終行が代入されません。
そこでセル1〜セル10までの各列の最終行を出し、その中で一番大きい数値を最終行にする方法にしようと思いましたが、
VBAでMax関数は使用することができなく(正確には使用できるみたいですが)最終行を求めることができません。

この方法で最大値を求める方法、またはその該当のシートの最終行を求める方法がありましたらご教授よろしくお願いします。
817名無しさん@そうだ選挙にいこう:2005/08/22(月) 14:06:37
Sheet1のセルA1とSheet2のセルA1の和をSheet3のセルA1に表示させるにはどうすればいいのでしょうか?
=Sheets("Sheet1").Range("A1")+...
やCellsなどを使ってやってみたのですができませんでした。
818名無しさん@そうだ選挙にいこう:2005/08/22(月) 14:38:49
sheets(3).cells(1,1)=sheets(1).cells(1,1)+sheets(2).cells(1,1)
で出来ない??
819hoge ◆hoge//WRxY :2005/08/22(月) 14:42:17
>>816
gyou = Worksheets(1).UsedRange.Row + Worksheets(1).UsedRange.Rows.Count - 1
で、大抵はいけると思いますが、UsedRangeはデータ範囲ではなく使用範囲なので
場合によっては想定外の結果が出る場合もあります。
例えばA1.A3,A7に文字を入力し、A10に文字入力無しで背景を赤にした場合、
データが入力されてる最終行の 7 ではなく、10 を返します。

Endプロパティを使ってループ処理すれば、このような不都合は無いと思います。
Dim i As Long, j As Long, gyou As Long
For i = 1 To 10
 j = Worksheets(1).Cells(65536, i).End(xlUp).Row
 If j > gyou Then gyou = j
Next i

VBAでMAXを出すには
MsgBox WorksheetFunction.Max(1, 2, 3)
というようにMAX関数を呼び出すか、配列や範囲内でのMaxなら
上記のようにループ内でIfステートメントを使って出したり出来ます。
また、二つの値のうち大きい方を返すのなら、
Const num1 As Byte= 10, num2 As Byte= 20
MsgBox IIf(num1 > num2, num1, num2)
なんて方法もあります。


>>817
VBAなら
Worksheets("Sheet3").Range("A1").Value = Worksheets("Sheet1").Range("A1").Value + Worksheets("Sheet2").Range("A1").Value
標準プロパティも省かずに、SheetsはワークシートのみならWorksheetsと書いた方がいいです。CellsならCells(1, 1).Value
数式なら
=Sheet1!A1+Sheet2!A1
820816:2005/08/22(月) 14:57:45
>>819さんありがとうございますm(_ _)m
ループを使っての、特に
[ If j > gyou Then gyou = j ]のコードが思いつきませんでした。
これならうまく最終行を求めることができそうです^^

大変参考になりました。また困ったことがあった時にはよろしお願いいたします
821名無しさん@そうだ選挙にいこう:2005/08/22(月) 16:48:18
>>818-819
レスありがとうございます。

Sheet1のA1に
=Sheet2!A2
と書いてみたのですが、値の更新Sheet2と言うダイアログが開いてファイルを指定するように促されます。
キャンセルを押すと#REF!のエラーがセルに表示されてしまいます。

これはどうすれば回避できるのでしょうか?
822名無しさん@そうだ選挙にいこう:2005/08/22(月) 16:55:31
それは「Sheet2」という名前のシートがブック内に存在しない場合に起きる
スペル間違い、全角半角違い等で1字でも違うとダメなのでよく確認してみろ
というか、「=」だけ入れてから参照先セルをクリックすればいいじゃん
823名無しさん@そうだ選挙にいこう:2005/08/22(月) 17:57:30
>>795
今日職場で使わせて頂きました。カメレスですがありがとうございました。
824名無しさん@そうだ選挙にいこう:2005/08/22(月) 19:22:59
hogeさんはすごいなー
825名無しさん@そうだ選挙にいこう:2005/08/22(月) 19:25:01
質問です。

検索をするときに例えば「あり」

という単語を検索したいときに
「ありがとう」とかがひっかからずに、「あり」、で区切られている物だけを検索する方法はありますでしょうか?

一つのセルに「ありがとう。こんにちは」や、「あり、くも、かぶと」等の様に
複数の単語が入っていたりするので完全に一致するセルのみ〜の検索方法が
使えません。
826名無しさん@そうだ選挙にいこう:2005/08/22(月) 19:38:21
常に「、」で区切られてるの?
827名無しさん@そうだ選挙にいこう:2005/08/22(月) 19:59:23
>>826
はい。
区切られている場合はかならず間に 「、」が入っています
828名無しさん@そうだ選挙にいこう:2005/08/22(月) 20:38:05
じゃあ「あり、」で検索すればいいじゃん
829名無しさん@そうだ選挙にいこう:2005/08/22(月) 20:44:35
『1−1』って打つと『1月1日』になるのですが、
『1−1』にするにはどうすればいいの?
830名無しさん@そうだ選挙にいこう:2005/08/22(月) 20:48:15
・表示形式→文字列
・'1−1
・="1−1"
831名無しさん@そうだ選挙にいこう:2005/08/22(月) 20:52:37
832名無しさん@そうだ選挙にいこう:2005/08/22(月) 20:54:24
<<830
ありがとうごさいます
833名無しさん@そうだ選挙にいこう:2005/08/22(月) 21:01:34
>>828
ただ「あり」が最後に来ている場合や、「あり」としか書いていない事もあるんです
834名無しさん@そうだ選挙にいこう:2005/08/22(月) 21:04:07
部分一致
  「、あり」 と 「あり、」
完全一致
  「あり」
でどう?
835名無しさん@そうだ選挙にいこう:2005/08/22(月) 21:04:48
、ありがとう
がヒットするからだめか (´・ω・`)
836名無しさん@そうだ選挙にいこう:2005/08/22(月) 21:14:19
ありがとうを検索して有難うに置換すればおk
837名無しさん@そうだ選挙にいこう:2005/08/22(月) 22:19:50
あ・・・すみません
ありがとう、とかそれは例えで、本当は全部ローマ字です。

でもそれ参考になりました。文字列を一度他とかぶらないように変換してやってみます。

ありがとうございました。
838名無しさん@そうだ選挙にいこう:2005/08/22(月) 22:39:46
>>837がエクセルをどういう使いかたしてるのかがきになる
839名無しさん@そうだ選挙にいこう:2005/08/22(月) 22:59:40
VBA使えばどうにでもなるだろうけどな
840名無しさん@そうだ選挙にいこう:2005/08/23(火) 23:10:59
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

お願いします。
日付を曜日にかえすことは出来たのですが、
SundayやMondayのように表示されます。
日本語の表記にすることは可能でしょうか?
841hoge ◆hoge//WRxY :2005/08/23(火) 23:19:23
>>840
A1に日付のシリアル値があるとして
=TEXT(A1,"aaa") → 日、月、火、…
=TEXT(A1,"aaaa") → 日曜日、月曜日、火曜日、…
842名無しさん@そうだ選挙にいこう:2005/08/23(火) 23:24:23
>>841
おぉ!できました!!
素早い返答ありがとうございました。
ペコm(_ _;m)三(m;_ _)mペコ
843名無しさん@そうだ選挙にいこう:2005/08/24(水) 00:11:29
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

あるセルが外部のブックを参照しているとき、そのセルを Range 型として引数にとり、
ユーザ定義関数内でそのセルの参照先ブックの絶対パスを取得するにはどのように
すればよいかわからなくて悩んでおります。

具体的には、
C:\Book1.xls の A1 セルが、「'C:\[hoge.xls]Sheet1'!$A$1」を参照しているとき、

Function func(a As Range) As String

func = "a が参照するブックの絶対パス"

End Function

のような関数を作りたいと思っています。

一応、ThisWorkbook.LinkSources の中から、
a.Address(True, True, xlA1, True, False) のブック名と合致するものを
検索する、という方法を考えたのですが、これだと ThisWorkbook.LinkSources 内に
ディレクトリの異なる同名のブックが複数存在した場合はうまくいきません。

よろしくお願いいたします。
844hoge ◆hoge//WRxY :2005/08/24(水) 00:38:16
>>843
単純に文字列操作でパスを切り出したんじゃダメですか?
func = Replace(Split(Mid(a.Formula, 3), "]")(0), "[", "")
845843:2005/08/24(水) 01:13:30
>>844
hoge さん、どうもありがとうございます。
hoge さんの方法でやってみたのですが、参照先のブック (C:\hoge.xls) を閉じているときは、
"C:\hoge.xls" が返ってくるのですが、開いているときは、"hoge.xls" が返ってきてしまいます。
参照先ブックを開いていても、参照先の絶対パスを取得するにはどうすればいいでしょうか?
うーん。。。
846hoge ◆hoge//WRxY :2005/08/24(水) 01:43:39
>>845
ブックを開いてる時はWorkbooks().FullNameでパスを取得できるので
 Dim buf As String
 buf = Replace(Split(Mid(ActiveCell.Formula, 3), "]")(0), "[", "")
 If Mid(buf, 2, 2) = ":\" Then func = buf Else func = Workbooks(buf).FullName
でどうでしょうか?
847843:2005/08/24(水) 01:55:53
>>846
なるほど、ブックを開いていて絶対パスが返ってこなかったら、
Workbooks の中から探して FullName でパスを取得するわけですね。
わかりました、どうもありがとうございます!
わからなくて困っていたので、大変助かりました。
848843:2005/08/24(水) 03:55:17
>>846
すみません、さきほど hoge さんに教えていただいたのですが、
私がちょっと混乱していて質問を間違えていました。
ご迷惑をおかけします。

以下のようなユーザ定義関数をつくりたいと思ってます。

※引数 a は外部参照とします。
Function func(a As Range) As String
  …
  a = "a の外部参照先のブックの絶対パス"
End Function

これを、C:\Book1.xls の適当なセルで次のように使います。

=func('C:\[hoge.xls]Sheet1'!$A$1)

これを実行したセルには "C:\hoge.xls" が返ってくることを期待しています。
わかりづらくて申し訳ないのですが、よろしくお願いします。

# 元々、func('C:\[hoge.xls]Sheet1'!$A$1) のような外部参照を引数に取ったときに、
# 参照先のブックをオープンしたかったのですが、絶対パスが取得できなくて
# 困っていて、上記のような関数を作ろうとした次第です。
849hoge ◆hoge//WRxY :2005/08/24(水) 04:47:11
>>848
>>846で間違ってActiveCellと書いてしまいましたが
「ActiveCell → a」と書き換えても、ダメですか?

こちらでは
'・標準モジュール
Function func(a As Range) As String
 Dim buf As String
 buf = Replace(Split(Mid(a.Formula, 3), "]")(0), "[", "")
 If Mid(buf, 2, 2) = ":\" Then func = buf Else func = Workbooks(buf).FullName
End Function

・ワークシート
A1='C:\[hoge.xls]Sheet1'!$A$1
A2=func(A1)

で、A2に"C:\hoge.xls"が返りますが。

というか、参照先ブックパスを返すのに、引数にRange型で'C:\[hoge.xls]Sheet1'!$A$1を渡す必要は無いです。
外部参照が書かれているセルのオブジェクトを渡し、関数内で数式(参照)を取得すれば良いだけですから。
"'C:\[hoge.xls]Sheet1'!$A$1"を渡したいなら文字列型で渡して処理した方が簡単ですね。
850843:2005/08/24(水) 05:21:46
度々すみません。
>>849の方法で、こちらも A2 に "C:\hoge.xls" が返ります。
しかし、期待の動作は次のように、

・ワークシート
A1=func('C:\[hoge.xls]Sheet1'!$A$1)

としたときに、A1 に "C:\hoge.xls" が返ることです。

元々やりたかった事が、上記のように外部参照している Range 型オブジェクトを
引数にとって func 関数を呼んだとき、func 内で hoge.xls を開くことです。
そのために、Range 型のオブジェクトから hoge.xls の絶対パスを取得したかったのですが。。。
私の質問の仕方が悪かったようです、すみませんでした。

やはり、Range 型のオブジェクトを引数にとる方法では hoge.xls の絶対パスは取得できないのでしょうか?
# hoge さんの言うように文字列型で外部参照式を渡すべきなのかなぁ。
851hoge ◆hoge//WRxY :2005/08/24(水) 06:11:11
>>850
そもそも'C:\[hoge.xls]Sheet1'!$A$1では、
ブックを開いてない以上、親オブジェクトが無いので
Rangeオブジェクトとして通らないのでは?

 Function func(a) As String
と、引数の型を指定せずに
 Debug.Print TypeName(a)
で型を調べてみると、ブックを開いてる時はRangeになりますが、
ブックを開いてない時はString型を返しました。
 Function func(a As Range) As String
だと、ブックを開いてない時は、エラーになるどことか関数を通ってさえいません。

なのでRangeオブジェクトからブックパスを返す方法以前に、
Variant型かString型で渡さないと、関数として動作しませんね。
852843:2005/08/24(水) 08:21:38
>>851
そうですね、ブックを閉じているときはやはり Range 型で受けるのは
だめなようです。a は型を Variant にしました。先ほど、

Function func(a As Variant) As String
  func = TypeName(a)
End Function

のように、引数として代入されるデータ型を調べるために、TypeName(a) をそのまま
返すようにして、参照先のブックを閉じたとき、開いたときについて動作を調べました。

C:\hoge.xls は
A1=123
B1=456
として、

・ブックを開いている時
A1=func([hoge.xls]Sheet1!$A$1) => "Range"
A1=func([hoge.xls]Sheet1!$A$1:$B$1) => "Range"

・ブックを閉じている時
A1=func('C:\[hoge.xls]Sheet1'!$A$1) => "Double"
A1=func('C:\[hoge.xls]Sheet1'!$A$1:$B$1) => "Variant()"

となりました。(続きます)
853843:2005/08/24(水) 08:22:23
(つづき)
ブックを開いているときは改めてブックを開く必要はないため、hoge.xls の絶対パスは取得しません。

一方、ブックを閉じている時、hoge.xls を開いて外部参照式で指定された
範囲のデータを処理したいので、hoge.xls の絶対パスが必要になります。
ブックを閉じている時は、引数に単一セルのみの外部参照式('C:\[hoge.xls]Sheet1'!$A$1)を代入すると、
そのセルの値 123 の型 "Double" が返ってきます。また、引数に複数のセルにまたがる外部参照式
('C:\[hoge.xls]Sheet1'!$A$1:$B$1)を代入したところ、"Variant()" となりました。

うーん、このような挙動をするので、どうすればいいかわかりません。。。
func(a As Veriant) のように引数を Variant にして、外部参照式('C:\[hoge.xls]Sheet1'!$A$1 や
'C:\[hoge.xls]Sheet1'!$A$1:$B$1)を引数に代入したとき、func 内で参照先のブックのパスを
取得できますでしょうか?
854hoge ◆hoge//WRxY :2005/08/24(水) 09:05:21
>>852-853
具体的に全体で何がしたいのか書いてくれないのでよくわかりませんが、
単にパスを取得したいだけならString型で渡して文字列操作が一番手っ取り早いと思います。
どうしてもString型で渡したくないなら、
 Application.Caller.Formula
で、引数を含めた数式ごと文字列として取得して、そこから文字列操作すればパスは返せますね。
 Dim buf As String
 buf = Application.Caller.Formula
 buf = Replace(Split(Mid(buf, InStr(1, buf, "(") + 2), "]")(0), "[", "")
 If Mid(buf, 2, 2) = ":\" Then func = buf Else func = Workbooks(buf).FullName
855名無しさん@そうだ選挙にいこう:2005/08/24(水) 10:17:41
1.OS Me
2.ver 分かりません2000かな?どこに載っているのでしょうか…
3.VBA使用 可
4.VBA回答 できれば無しで…


質問です。
A1〜A10まで様々な数値が与えられています。
この中から上位3つの合計を出したいのですがどうすればいいでしょうか。

自分の分かる範囲ではその列を降順に並び替えて=SUM(A1:A3)しかないのですが
他に方法ありましたらお願いします。
856hoge ◆hoge//WRxY :2005/08/24(水) 10:29:35
>>855
{=SUM(LARGE(A1:A10,ROW(A1:A3)))}
=SUM(LARGE(A1:A10,1),LARGE(A1:A10,2),LARGE(A1:A10,3))

どちらでもお好きな方をどうぞ。
上は配列数式なのでCtrl + Shift + Enterで確定してください。
857名無しさん@そうだ選挙にいこう:2005/08/24(水) 10:58:49
【1 OSの種類         .】 WindowsXP Pro
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

同じフォルダに入っている複数のブック8ファイルを、1つのシートにまとめたい。
なお、入っているブックは、全て同じ構成で、中身が違う。
※各ブックに重複するデータはありません。
 
 例:bookA  A校の生徒氏名、科目1の成績、科目2の(ry … 
   bookB  B校の生徒氏名、科目1の(ry
      :
   bookH  H校の(ry

これを bookZ Sheet1に
   bookA  A校の生徒氏名、科目1の成績、科目2の(ry … 
   bookB  B校の生徒氏名、科目1(ry…
    :
   bookH  H校の…

としたいのです。どうしたらよいか教えてエロい人
      


858hoge ◆hoge//WRxY :2005/08/24(水) 11:53:04
>>857
条件が曖昧すぎてよくわかりませんが、
VBA使えるとの事なのでヒントになりそうな事だけ書きます。

まず複数のブックに処理を掛けるには、Dir関数でフォルダ内の.xlsを取得するか、
処理するブックのみを全て開いて、Workbooksコレクションに対して処理を行います。(まとめ用ブックだけ除く

ひとつのブックにシートが複数有る場合も同じくWorksheetsコレクションに対して処理します。
データ範囲はCells(65536, 1).End(xlUp).RowやActiveSheet.UsedRangeで取得出来ます。
まとめるのが文字列データのみでいいなら.Value=.Valueで、書式も含めたいならCopyを使います。

>>857の説明だけではこれ以上の事は言えません。
VBA使えるなら、丸投げせずに一度自分で書いてみて、解らなかったところを聞いてください。
丸投げするのも悪くは有りませんが、丸投げするなら条件はきちんと指定してください。
859名無しさん@そうだ選挙にいこう:2005/08/24(水) 12:11:22
>>858
テンプレ理解してから質問してくれ。
最低半年はスレ読んでから またきてくれ
860名無しさん@そうだ選挙にいこう:2005/08/24(水) 12:52:51
>>856
まさか、こんなに早く答えが返ってくるとは。
ありがとうございます!
861Socket774:2005/08/24(水) 14:01:17
ワークシートA1に2005/05/01と書いてあるときに、B1に今日からA1の日付までの
日数を表示させる方法は無いでしょうか?
=day(A1)-day(now())
などとやってみたのですが、表示できませんでした。
862hoge ◆hoge//WRxY :2005/08/24(水) 14:13:40
>>861
=DATEDIF(A1,TODAY(),"D")
=TODAY()-A1

どちらでもお好きな方をどうぞ。
863名無しさん@そうだ選挙にいこう:2005/08/24(水) 14:47:42
TODAYを使って解決しました。>>862ありがとうございました。

関連した質問なのですが、
A1に日付を入れて、A2に200、A3に10.6851と入れます。A4に
=A3+(DAY(TODAY())-DAY(A1))*A2/1000000)
と入力すると2005/08/01まではスムーズに0.0002づつ増えているのですが、
7/31になると、いきなり数値が逆方向に変化してしまいます。

これは何か回避方法があるのでしょうか?
それともExcel2003の特有のバグでしょうか?
どなたか教えてください。
864hoge ◆hoge//WRxY :2005/08/24(水) 15:04:25
>>863
DAY関数で日付しか見てないんだから、
月が変わればそのような結果になるのは当然だと思いますが。
その式では7/1も8/1も9/1も同じ値になるはずです。

計算結果が思い通りにならないときは、数式をバラしてみましょう。
=DAY(TODAY())、=DAY(A1)
そうすれば、何故思い通りにならないのか、
何処が間違ってるのかが解ると思います。
865Socket774:2005/08/24(水) 16:37:34
>>863です。おもいっきり馬鹿なことをしていました。
脳内アボーンしてください。

たびたびありがとうございました。>>864
散々ガイシュツだとは思うが、教えて下され。

Wordで表を作って、12桁の数字が含まれてる部分をEXCELに
貼り付けようとしたところ、EXCEL中のセルををすべて「文字列」に設定しても
指数表示になってしまいます。
12桁以上の数字をEXCELにペーストした場合、すべて指数表示になっちまうんでしょうか?
そのまま12桁の数字をペーストする方法があれば教えて下され。
クレクレ厨でスマソ。

※もし不可能な場合、12桁の数字を100個以上のセルに打ち込むことになるでつ。OTL
867名無しさん@そうだ選挙にいこう:2005/08/24(水) 19:34:29
>>866
ペースト後、セル書式 数値の書式 数値とか通貨(¥ナシ)とかを選択
868名無しさん@そうだ選挙にいこう:2005/08/24(水) 19:38:06
>>866
ん?
あらかじめセルの書式を文字列にしとけば、普通に貼り付けられるが…
当方 Excel2000。
869名無しさん@そうだ選挙にいこう:2005/08/24(水) 20:44:08
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 まぁなんとか
【4 VBAでの回答の可否】 今回はNGの方向でお願い

D列に出社時間 E列に退社時間 F列に休憩時間 G列に実勤務
時間を出したいと思っています。

で、D列とE列に時間が入った時にE列に1時間を入れ、
G列で(これもD列とE列に時間が入った時に)

E-D-Fにより実勤務時間を出したいんですが、
F列に
=if (and (d3 <> "",e3 <>""),1:00:00,"")
と入れたところ、
入力された数式は正しくありませんと出ます。
で、1:00を1にするとF列に0:00なんて答えがでてしまうんで
何方か、正しい式を教えて下され。
(あ、一応言って置くと退社時間が翌日になってしまう事は
ないです)
870843:2005/08/24(水) 20:47:09
>>854
>Application.Caller.Formula
>で、引数を含めた数式ごと文字列として取得して、そこから文字列操作
どうもありがとうございます!この方法でうまくいきますた!
Caller が関数呼び出しをした時の式を取得できるとは知りませんでした...。
全体の説明をしなかったので、いろいろご迷惑をおかけしてしまったようで、すみませんでした。
全体としては、LOOKUP 関数の自作版が作りたいというのがありまして、検索テーブルを示す範囲を
外部参照した際にブックをオープンする処理で困っていました。(外部参照式からブックのパスを取得
しなければならないと思いまして)
で、LOOKUP 関数と自作版とで、関数の引数のインタフェースを合わせたかったので、
LOOKUP の検索範囲を示す引数の型は String にしたくなかったというのがあります。
871名無しさん@そうだ選挙にいこう:2005/08/24(水) 20:53:32
>>869

1:00:00
 ↓
TIMEVALUE("1:00:00")
872名無しさん@そうだ選挙にいこう:2005/08/24(水) 21:17:26
>>871
有難うございます!出来ました。

それから今更ですが(^^;
×で、D列とE列に時間が入った時にE列に1時間を入れ、
○で、D列とE列に時間が入った時にF列に1時間を入れ、
でした。
873866:2005/08/24(水) 22:51:10
>867・868氏

ありがとうございました。
おかげさまでなんとかできました。
ご協力ありがとうございました。_(._.)_

落ち着いて「書式設定」をきちんとやれば、ちゃんとできるじゃねーか<自分
ってことで、お騒がせしました。
874名無しさん@そうだ選挙にいこう:2005/08/24(水) 23:03:12
【1 OSの種類         .】 WindowsXP SP2
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

10列60行程度のデータがありまして、行、列の広さは一定ではありません(結合はなし)。
これをオートフィルで抜きだしたn行を選択し、コピーして別のシートに貼り付けすると
セルの大きさをコピーしてくれないのですが、コピーしてくれる方法はあるでしょうか。
ぐぐってもと本の目次しかひっかからなくて。勿論形式選択→すべても試してみました。

よろしくお願いします。
875名無しさん@そうだ選挙にいこう:2005/08/25(木) 01:09:29
会社パソコンの .xlsファイルをダブルクリックしてもエクセルは起動しますが
ブックが開きません。どこか設定でしょうか?どなたかよろしく。
876名無しさん@そうだ選挙にいこう:2005/08/25(木) 01:18:14
関連付けのコマンド
877名無しさん@そうだ選挙にいこう:2005/08/25(木) 04:05:44
突然申し訳ありません。
ユーザーの関数設定で、
打ち込む数値にはXXヶ月といれて
表示形式は X年Xヶ月とするユーザー関数を作成する事は可能でしょうか?
もしよろしければやり方を教えて頂きたいです。色々検索しましたが、知識不足で申し訳ありません。
878hoge ◆hoge//WRxY :2005/08/25(木) 04:35:20
>>877
A1が「XXヶ月」だとして
=INT(A1/12)&"年"&MOD(A1,12)&"ヶ月"
で「X年Xヶ月」の形になりますが。

もしかしてユーザー関数ってVBAを使ったユーザー定義関数を作りたいってことですか?
それとも表示形式のユーザー定義での定義式が欲しいってことですか?
まあユーザー定義の表示形式ではおそらく無理ですけど。
879名無しさん@そうだ選挙にいこう:2005/08/25(木) 13:53:26
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

セルに存在する文字列を、文字列ごとに、存在する数を数え集計するには
どうすればよいでしょうか。

例えば、

みかん
みかん
りんご
バナナ
りんご
バナナ
....
というような表で、

みかん10
りんご5
バナナ20
といったように集計したいわけです。
COUNTIFで文字列の数を数えるのはやってみましたが、
それだと、たとえばりんごの個数を数えることはできますが、
各文字列をいっぺんに数えるのは面倒ですし、
あと、表に存在する文字列を全部把握しているわけではないので
(自分は知らないがイチゴやキウイがあるかもしれない)
自動で全文字列の数を集計したいのです。
よろしくおねがいします。
880名無しさん@そうだ選挙にいこう:2005/08/25(木) 14:11:26
>>879
次のような形のリストに手直しする。
「果物」「個数」は便宜上の項目名。個数は全部1でよい。

果物  個数
みかん  1
みかん  1
りんご   1
バナナ  1
りんご   1
バナナ  1

できたら「果物」をキーに並べ替え、その後で「データ」→「集計」を実行
ほかにもやり方はあるが一例として。
881hoge ◆hoge//WRxY :2005/08/25(木) 14:31:47
>>879
B1=IF(COUNTIF(OFFSET(A$1,0,0,ROW(),1),A1)=1,ROW(),"")
C1=SMALL(B$1:B$100,ROW())
D1=IF(ISNUMBER(C1),INDEX(A$1:B$100,MATCH(C1,B$1:B$100,0),1),"")
E1=IF(D1="","",COUNTIF(A$1:A$100,D1))

全て入力したら、B1:E1を選択してデータの末行までフィルコピー、B:C列を非表示に。
範囲は1〜100行目までになってるので、適当に書き換えて使ってください。
今後もデータが増えるなら多めに範囲指定してください。

ワークシート関数は不定な結果を返すことは出来ないから
この手の事を関数でやるのは面倒なんですけどね。
882879:2005/08/25(木) 15:52:31
すばやい回答ありがとうございます。

>>880
これはわかりやすくていいですね
こういう集計の使い方は思いつきませんでした。

>>881
すごい!
けど、この理屈が理解できない程度の
知識なので解析して勉強させていただきます。
883名無しさん@そうだ選挙にいこう:2005/08/25(木) 18:54:04
>>879
ヒント:ピボットテーブル
884名無しさん@そうだ選挙にいこう:2005/08/25(木) 21:54:12
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

グラフについてですが、学生のテストの点数の散布図のようなものを作って
その上に偏差値やIQテストに見られるようなベル方の線グラフも表示するにはどうしたいいでしょうか?
こんな感じで表をまとめてます

No. 点数
1 50
2 30
3 80
4 85
5 90
6 15
885名無しさん@そうだ選挙にいこう:2005/08/25(木) 23:28:13
楽セルの登録パスワード知っている人いますか?
886名無しさん@そうだ選挙にいこう:2005/08/25(木) 23:57:10
> ベル方の線グラフ
って何ぞや?
887名無しさん@そうだ選挙にいこう:2005/08/26(金) 00:04:12
>>884

【グラフの種類】
【X軸 】
【Y軸 】
ベル方=ベル型
888座敷荒氏:2005/08/26(金) 00:23:20
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可


こんばんは。よろしくおねがいします。
プログラム経験無しでVBAでツールを作成することになりました。
いま1日目ですが、考え方というかそういうものがわからなくて
困っているのでご教授くださいませm(__)m

1列目に日付、2列目に曜日が入力されています。
3列目にその日の予定をいれることになっています。

条件として、10日以降の最初の月曜日の日の
3列目に予定"○"を入力するように処理するVBAを
作るにはどのように処理したらよろしいでしょうか?


よろしくおねがいします。
889名無しさん@そうだ選挙にいこう:2005/08/26(金) 01:10:08
>>888
処理の流れだけ教えればいいのかな?
それともコード書いた方がいいですか?

どちらにしても以下の情報が欲しいところです。
@開始日(最初の行の"日")は固定なのか、不定なのか、固定なら何日から始まるのか。
Aデータは1ヶ月分なのか、それ以上なのか。

曜日の書式や開始行などは解らなくても後から簡単に修正できますが、
上記2点は条件によって処理が大きく変わります。
「@不定、A1ヶ月以上」を想定すればどんな条件にも対応出来ますが、
逆に「@1日から、A1ヶ月」だった場合、無駄な処理をすることになるので。
890座敷荒氏:2005/08/26(金) 07:44:54
>>889
お返事ありがとうございます。
毎月作成するものです。

@開始日は1日です。
 1行目には1日〜月末までの日付があらかじめ入力されています。
A月ごとに作成するので一ヶ月分になります。

2行目は1行目の日付に対応した曜日を入力しています。


コードも教えていただけると助かります。
自分で理解して使いたいと思います。
よろしくお願い致します。
891hoge ◆hoge//WRxY :2005/08/26(金) 08:39:37
>>890
Dim i As Long

'# 開始行
i = 1

'# 開始行から、A列(1列目)の日付が「10日」になるまで、Do〜Loop間の処理を繰り返す
Do Until (Day(Cells(i, 1).value) = 10)
 '# 変数iの値を1増やす (チェックする行をひとつ下に)
 i = i + 1
Loop

'# A列が10日の位置から、B列(2列目)が「月」になるまで、Do〜Loop間の処理を繰り返す
Do Until (Cells(i, 2).value = "月")
 '# 変数iの値を1増やす (チェックする行をひとつ下に)
 i = i + 1
Loop

'# A列の日付が「10日」の行以降で、B列が「月」になった行(i行)のC列(3列目)に"○"を入力
Cells(i, 3).value = "○"

'===ここまで===
日付はシリアル値で入力されていることを前提にしてます。
 Do Until (Cells(i, 2).value = "月")
の "月" は曜日の書式に合わせて書き換えてください。この行を
 Do Until (Weekday(Cells(i, 1).value) = vbMonday)
に書き換えると、B列の曜日ではなくA列の日付から曜日を割り出し、それで判断します。
892名無しさん@そうだ選挙にいこう:2005/08/26(金) 10:12:01
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

特定のセルに日付を入力した時に休日(土曜、日曜、祝日)かどうかを判断することは出来るでしょうか

日付が休日だった場合にだけ文字かセルに色を付けることは出来るでしょうか

よろしくおねがいします。
893名無しさん@そうだ選挙にいこう:2005/08/26(金) 10:45:51
>>892
条件付書式で
=WEEKDAY(日付のセル参照,2)>5

祝日の判別方法は解らないです。
894名無しさん@そうだ選挙にいこう:2005/08/26(金) 10:48:41
>>892
こんなん見つけました。
ttp://www.relief.jp/itnote/archives/000971.php
895hoge ◆hoge//WRxY :2005/08/26(金) 11:14:13
>>892
土日の自動判断は出来るが、
祝日は、何月何日が祝日なのかのデータを作らないとExcelは判断出来ない。

条件付き書式では祝日をどこかに書き出し、
 数式が
 =OR(WEEKDAY(【特定のセル】,2)>=6,COUNTIF(【祝日を書き出した範囲】,【特定のセル】)=1)
で書式を設定すればOK


VBAだとこんな感じかな。
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address(0, 0) = "A1" Then '対象セル
  Dim Holiday() As String
  Holiday = Split("{1/1} {2/2} {3/3} {4/4} {5/5}")  '祝日を列挙
  
  If Weekday(Target.Value, vbMonday) >= 6 Then  '土日の場合
   Target.Interior.ColorIndex = 38          '背景色をピンクに
  ElseIf UBound(Filter(Holiday, _
      Format(Target.Value, "{m/d}"))) = 0 Then '設定した祝日と一致した場合
   Target.Font.ColorIndex = 3            '文字色を赤に
  Else                      '土日でも祝日でもなかった場合
   Target.Interior.ColorIndex = -4142        '背景色を無しに
   Target.Font.ColorIndex = -4105          '文字色を自動に
  End If
 End If
End Sub
896名無しさん@そうだ選挙にいこう:2005/08/26(金) 12:21:08
>>892
ttp://www.h3.dion.ne.jp/~sakatsu/holiday_logic.htm#VBA

勤務表を作る時にかなり参考にしました。祝日や振替休日の判定もしてくれるよ。
春分の日・秋分の日の保証していないが、数年使っていて今のところ不具合無し。
897名無しさん@そうだ選挙にいこう:2005/08/26(金) 12:37:01
質問は「色を付けたい」であって
「祝日の内容を表示したい」ではないぞ
VBAわかる奴ならそれを元に書き換えもできるが
用途に対して無駄すぎるし、テンプレ3は「いいえ」だ。
898名無しさん@そうだ選挙にいこう:2005/08/26(金) 13:54:18
しかしテンプレ4が…
899名無しさん@そうだ選挙にいこう:2005/08/26(金) 14:07:08
3=いいえ
4=可

の場合は、そのまま使えるコードじゃないと意味無いな

>>1 ※4は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
900名無しさん@そうだ選挙にいこう:2005/08/26(金) 14:41:15
エクセルの完成度がけっこう低い件について

プレビューとか、いらね。
901名無しさん@そうだ選挙にいこう:2005/08/26(金) 15:32:49
>>900
おまい、Excelの実務経験無いな。
あれほど画面と印刷結果の異なるソフトも珍しいというのに、
プレビューがいらんとは…
プレビューは、Excelだけの機能で動いてんじゃねーよ。
902名無しさん@そうだ選挙にいこう:2005/08/26(金) 15:38:53
>900がExcelを使えてない件について
903名無しさん@そうだ選挙にいこう:2005/08/26(金) 15:39:33
>>900
なんて恐ろしい事を言うんだ…((゚Д゚;)))ガクブル
あれが無いと……
904名無しさん@そうだ選挙にいこう:2005/08/26(金) 15:43:48
>900
ばかやろう! excelで一番重要な機能じゃねえか!!
905名無しさん@そうだ選挙にいこう:2005/08/26(金) 16:18:52
過去ログ見ないですいません。質問です。
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可

一つのセルの中に文字と式を同居させる・・・・というのは出来ますか?

例    セル(Xとする)  [7/1]←ここをいじるだけで

     セル(yとする)  [H.17.7.1〜]←波線の所だけ変更できる。〜は文字

出来ますか?
               ~~~~~~~~

906名無しさん@そうだ選挙にいこう:2005/08/26(金) 16:21:16
>>905
何がしたいのかよくわかりません
907905:2005/08/26(金) 16:27:10
>906
すいません。自身書き込み内容を見てチンプンカンプンでした・・・。

あるセルの数値を変更すると、違うセルの数値が連動しますよね?
その違うセルの中に、連動する数値と普通の文字列を同居させたいのです。

[7/1〜]って書いて、[7/1]の部分だけ連動させたいんです。分かります?
908名無しさん@そうだ選挙にいこう:2005/08/26(金) 16:27:42
よpくわからんがこういうことか?
=TEXT(セルX,"ge.m.d")&"文字"

つーか「波線の所だけ変更できる。」じゃなくて
「波線以外の所だけ変更できる。」じゃないhのか?
909名無しさん@そうだ選挙にいこう:2005/08/26(金) 16:27:47
よpくわからんがこういうことか?
=TEXT(セルX,"ge.m.d")&"文字"

つーか「波線の所だけ変更できる。」じゃなくて
「波線以外の所だけ変更できる。」じゃないhのか?
910名無しさん@そうだ選挙にいこう:2005/08/26(金) 16:27:55
>>905

="H.17.7.1"&X

Xは任意で変更
ただ、例の通りだと結果は "H.17.7.17/1" になるけどいいのか?
911905:2005/08/26(金) 16:31:42
"で数値を挟んで&〜っすか?
とりあえず試してみます。
912905:2005/08/26(金) 16:46:01
ごめんなさい。わかりません・・・・
とりあえず、あきらめます・・・・
説明が下手で苦労します・・・

g6のセル 7/1
h3のセル 7/1〜

g6のセル 7/10
h3のセル 7/10〜  って変更させたい!「〜」ってのを全角で書きたい!でも、エラーが出るって事です。
913名無しさん@そうだ選挙にいこう:2005/08/26(金) 16:51:19
=G6&"〜"
914名無しさん@そうだ選挙にいこう:2005/08/26(金) 16:52:00
>>912
H3 に =G6
表示形式を m/d"〜"
915905:2005/08/26(金) 16:58:16
どうにかエラーは出なくなりましたが、
m/dに表示形式を変えても38537〜になっちゃいます
いろいろ試してます。
916名無しさん@そうだ選挙にいこう:2005/08/26(金) 17:07:49
>>915
>>914の表示形式でも無理?
917名無しさん@そうだ選挙にいこう:2005/08/26(金) 17:13:02
=TEXT(G6,"m/d")&"〜"
918905:2005/08/26(金) 17:25:21
できました!!
えっとですね〜917さんが正解だったようです。
エクセル、難しいっす。これからも度々すいませんですます・・・
勉強します。

ホントみなさんに感謝です♪
919名無しさん@そうだ選挙にいこう:2005/08/26(金) 18:21:09
>>918
おめ。
920名無しさん@そうだ選挙にいこう:2005/08/26(金) 20:40:13
Excel2002です。
ツールのオプションで、新しいブックのシート数を1枚にしています。

私はExcelで何かをつくるときは、デスクトップの何も無いところで、
右クリック→新規作成→MicrosoftExcelシートで作成するのですが、
そのほうほうだと、上記の手順で設定したように、
新しいブックのシート数は1ではありません。

どうしてでしょうか?
921名無しさん@そうだ選挙にいこう:2005/08/26(金) 21:05:59
>>920
新規作成の場合は、xlsテンプレートに準ずるから
922名無しさん@そうだ選挙にいこう:2005/08/26(金) 21:08:10
>>921
レスありがとうございます。
その辺りの概念がよくわからないのですが、よかったら説明願えないでしょうか?
923名無しさん@そうだ選挙にいこう:2005/08/26(金) 21:22:57

 困っってます・・・

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

 症状は、例えばセルに文字を入力して日本語に変換し確定(Enterキーを押す)と、
そのたびに再計算されます。
 Excelのウインドゥ枠の左下に、”再計算●●%”と表示され0から100になるまで待たされます。

 入力項目が多いので、セルに入力した文字を日本語変換する度に再計算で待たされると効率が悪くなってしまいます・・・
また、セルの内容をDELキーで消したときも、同様にいちいち再計算してて100%になるまで、待たされます。

知らないうちにどこか設定をいじったのかもしれませんが、どうすれば元に戻るんでしょうか?


924名無しさん@そうだ選挙にいこう:2005/08/26(金) 21:28:37
>>922
右クリックメニューからの新規作成では、
テンプレートが有る場合はテンプレートのコピーを作成し、
無い場合は空(0バイト)ファイルが作成される。

Excelの場合何も入力してない状態でもブックは空ではないのでテンプレートが必要になる。
このテンプレートはExcelインストール時に、自動的にシート3枚のものが用意されるので
通常、新規作成ではExcelの設定に関係なく、このシート3枚のテンプレートのコピーが作成される。

テンプレートは
C:\WINDOWS\ShellNew
C:\Documents and Settings\ユーザー名\Templates
のどちらかにあるので、ここにあるブックを開いて、シートを一枚にして上書き保存すれば
以後の新規作成ではシート1枚のテンプレートのコピーが作成される。

>>923
ツール>オプション>計算方法>手動
925920,922:2005/08/26(金) 21:40:15
>>924
Excelってそんな複雑?な仕様になっているんですね。
全然知りませんでした。
テンプレートを変更しないで、
どうもありがとうございました。

詳しい説明親切にありがとうございました。
926920,922:2005/08/26(金) 21:40:50
>>925
>テンプレートを変更しないで
は誤入力です。無視してください。
927名無しさん@そうだ選挙にいこう:2005/08/26(金) 21:51:42
Excelの仕様というか、Windowsの仕様なんだけどね。
928923:2005/08/26(金) 22:15:26
>>924さん

 それだけは避けたいのです。シートの中に関数とか入れてあり、自動計算の方がいいので。

 元々、”ツール>オプション>計算方法>手動”は自動にしてあり、つい2〜3日前は普通に動いてたんです。
今日になって、突然こんな症状になってしまったので。

929名無しさん@そうだ選挙にいこう:2005/08/26(金) 22:29:27
自動にしてるなら、100%まで待たされるのが正常。
でも簡単な数式なら数百セルを再計算しても、
「再計算●●%」の文字が一瞬見えるか見えないか程度の時間で計算が終わる。
計算が遅くなってるならハードやシステムに不都合がある可能性もある。
930名無しさん@そうだ選挙にいこう:2005/08/26(金) 23:35:36
【1 OSの種類 】 Windows XP
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか 】 勉強中
【4 VBAでの回答の可否】 可

L2〜アクティブセルをマクロで選択したい

新しいマクロの記録で、L2からL12までを選択したマクロを
いろいろ改造して試したのですがうまくいきません。

どの様に記述したらいいかご教示下さい。
931923:2005/08/26(金) 23:38:31
 そ、そうなんですか・・・
わかりました。

 ・・・気分転換に来月選挙にでも行きます。

932初心者:2005/08/27(土) 00:02:18
仕事で急用です。皆様教えてください。当方エクセル完全素人です。
このような入力シートの作り方を教えてください。

    新潟コシヒカリ10kg
精米月日    月  日
納品月日    月  日
      (株)○こめ 

で、これを24面上下余白付のインクジェッタラベルで印刷したいのですが、
まるでやり方がわかりません。一応、できるWORD&EXCELを読んだのですが
わかりません。
皆様、教えてください。
よろしくお願いいたします。
933名無しさん@そうだ選挙にいこう:2005/08/27(土) 00:51:15
>>932
一太郎でタック用紙設定するのがいいよ。
934名無しさん@そうだ選挙にいこう:2005/08/27(土) 01:37:06
>>932

普通はWordでやるんじゃないの? 
あくまでもMS-Officeがインストールされている環境ならばだけど。
キーワードはWordの差込印刷じゃなかろうか。たぶん。
935hoge ◆hoge//WRxY :2005/08/27(土) 05:34:59
>>930
Range(Range("L2").Address, ActiveCell.Address).Select
936名無しさん@そうだ選挙にいこう:2005/08/27(土) 08:15:54

【1 OSの種類 】 Windows XP
【2 Excelのバージョン 】 Excel2003

 時々ファイルを読み込んでも作業中のワークシートが表示されないことがある。

 しかし「挿入」「ワークシートの追加」をすると、やっと新ワークシートといっしょに
 作業中ワークシートが表示される。

 これを回避する方法ありますか? 
937名無しさん@そうだ選挙にいこう:2005/08/27(土) 10:11:26
>>935
有難う御座いました。
938名無しさん@そうだ選挙にいこう:2005/08/27(土) 13:20:02
【1 OSの種類 】 Windows XP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか 】 はじめたばかり
【4 VBAでの回答の可否】 可

質問です。よろしくお願いします。
任意の列を非表示にしたいのですがどのようなコードになるのでしょうか?
ご教示ください。
↓こんなことしてみましたが
「実行時エラー '13':型が一致しません。」
と出てしまいます。。。
Sub 非表示に(myStartCoiumn As String, myEndColumn As String)
Columns("myStartCoiumn:myEndColumn").Hidden = True
End Sub

Sub 任意の列を非表示()
Dim x0 As String
Dim x1 As String
x0 = "A"
x1 = "B"
非表示に x0, x1
End Sub
939名無しさん@そうだ選挙にいこう:2005/08/27(土) 13:31:42
勉強のために答えこコードはあえて書かずにヒントだけ

myStartCoiumn = "A"
myEndColumn = "B"
の場合、
"myStartCoiumn:myEndColumn" → "myStartCoiumn:myEndColumn"
"myStartCoiumn" → "myStartCoiumn"
myStartCoiumn → "A"
940名無しさん@そうだ選挙にいこう:2005/08/27(土) 14:35:46
セルの塗りつぶしについてなんですが、灰色に設定してから
「条件付き書式」で1以上なら黄色、−1以下なら青、0なら灰色と設定しました。
空白の場合は灰色のままだと思ったのですが、なぜか黄色になってしまいます。
ちなみにそのセルには、=if(isblank(H5),"",F5*I5-M5)という式が入ってます。
"空白または0の時は灰色"にしたいのですが、どうすれば良いのでしょうか、お願いします。
わかりにくくてスミマセン。
941940:2005/08/27(土) 14:44:23
急いでたので忘れました。

【1 OSの種類 】 Windows XP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか 】 使えません
【4 VBAでの回答の可否】 否
                    です。
942hoge ◆hoge//WRxY :2005/08/27(土) 15:26:16
>>940
比較演算の結果では""は1より大きいので、結果通りに「1以上」の場合の書式が適用されます。
というか文字と数値を比較すると、内容に関わらず文字の方が大きいという結果を返します。
""は一応文字として扱われるので。

回避策はいくつかあるけど
 条件1 数式が =OR(A1=0,A1="") 灰
 条件2 セルの値が 次の値以上 1 黄
 条件3 セルの値が 次の値以下 -1 青
とか
 条件1 数式が =VALUE(A1)>=1 黄
 条件2 数式が =VALUE(A1)<=-1 青
あたりかな。
前者は「1以上の場合は黄色」の条件の前に、「0か""だったら灰色」という条件を入れたもの、
後者は数値に直せない文字を比較対照から外したものです。参照先はそちらで書き換えてください。

因みに、VALUE関数は何も入力してないセルでは0を返し、""のセルではエラーを返します。
ついでにN関数は何も入力してないセルでも""のセルでも0を返します。
なので前者条件1の条件式は「=N(A1)=0」とする事も出来ます。
943940:2005/08/27(土) 15:41:43
>>942
Excel初心者なので四苦八苦してました。
丁寧なレスありがとうございます。
とても参考になりました。
944938:2005/08/27(土) 15:55:47
>>939
レスありがとうございます。
先ずはCo"i"umnをCo"l"umnに直しました。
でデバッグモードで
Columns("myStartColumn:myEndColumn").Hidden = True
の「myStartColumn」をポイントしたら「"A"」となっていました。
つまり、
Columns(""A":"B"").Hidden = True
となっていたんですね。しかし、x0 = A、x1 = Bとかにすると変数が宣言されてないといわれました。どうやれば
Columns("A:B").Hidden = True
のように代入できるのでしょうか?
なにとぞご教示をお願いします。

あと、若干別件なのですが、中断モードでリセットボタンをマウス操作でなくAlt+「何かのキー」のようなショートカット操作って出来ないでしょうか?お教え願得ませんでしょうか。お願いいたします。
945930:2005/08/27(土) 15:59:56
先程は、お世話になりました。

先程ご教示いただいた範囲を昇順で並べ替えたいのですが
うまく動いてくれません。

ヘルプで Sort メソッドを見ると key1 以降は省略可能と書かれていたので
下記の様に書いてみたのですがうまくいきません。
ほかにもいろいろ試したのですがうまくいきません。

Sub sort01()
'
Range(Range("L2").Address, ActiveCell.Address).Select
Selection.sort

End Sub

構文の expression の部分は Selectionではダメなのでしょうか?
それとも根本的に間違っているのでしょうか?

何度もお手数をおかけして申し訳ありませんが、ご教示下さい。
946not 939:2005/08/27(土) 17:08:26
>>944
さらにヒント。
Sub 非表示に(myStartColumn As String, myEndColumn As String)
Dim myColumn As String
myColumn = "myStartColumn:myEndColumn"
Columns(myColumn).Hidden = True
End Sub
947名無しさん@そうだ選挙にいこう:2005/08/27(土) 17:12:59
>>945
key1のみは指定しないとダメっぽい
948930:2005/08/27(土) 17:45:05
>>947
有難う御座います。
key1 を記述したらうまくいきました。

それにしても、省略可能と書かれたヘルプは間違っているのでしょうか?
後学のため、詳細をご存知の方ご教示下さい。
949名無しさん@そうだ選挙にいこう:2005/08/27(土) 17:48:09
【1 OSの種類 】 Windows 2000
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか 】 初心者です
【4 VBAでの回答の可否】 可

エクセルでフローチャートを作成していますが、テキストボックス内に
関数を入力して、別シートに入力された文字列などを表示する事は出来
ないのでしょうか?

セルに直接罫線で図形を描いて線を繋ぐ感じで書いていくと後でステップ
が追加になった時に追加するのが困難になるので基本全てテキストボックス
等のオブジェクトに文章を入力しています。

ただ、内容を変更する際にテキストボックスを選択して入力と言う動作が結構
大変なのと、関数が使えると結構楽な場面(同じ文章を入力したい場合など)
が有ります。

どうにかならないでしょうか??
950938:2005/08/27(土) 21:18:35
>>946
ヒントありがとうございます。
>myColumn = "myStartColumn:myEndColumn"(…(1)とします)
なるほどこういう置き換えがあるんですね。
と思いましたが、デバッガ時にカーソルを合わせると(引数の時点で)
myStartColumn は"A"
myEndColumn は"B"
でしたが
myColumn は myColumn = "myStartColumn:myEndColumn"
になってます。(1)のステップはすぎてます。
myColumn = "myStartColumn:myEndColumn" の全体を選択してポイントすると
myColumn = "myStartColumn:myEndColumn"= True
となってます。
なんか分からなくなってきました。難しいですね、適性がないと。

不可視にしたい列範囲が何箇所もあって、それが動く可能性があるのでスマートに変数で対処しようと野望を抱きましたが、私にはまだ早いですね。すらすらっと書き連ねることにしますorz

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

'中断モードをリセットするキーボードショートカットご存知の方教えていただけませんか。
'小さい四角のリセットボタンを押すの、ほとほと疲れました。。。
951名無しさん@そうだ選挙にいこう:2005/08/27(土) 21:39:35
>>950
これでいい
Sub 非表示に(myStartColumn As String, myEndColumn As String)
  Dim myColumn As String
  '                   ↓
  myColumn = myStartColumn & ":" & myEndColumn
  ActiveSheet.Columns(myColumn).Hidden = True
End Sub

以下のような引数で実行すると消えるよ
Sub hoge()
  非表示に "A", "AA"
End Sub
952名無しさん@そうだ選挙にいこう:2005/08/27(土) 21:41:45
>>949
こういうことしたいんでしょうか?
1)表示したいテキストボックスを洗濯する。
2)式を入れる所(左に=かfxがある)に参照したいセル番地を入力する。
=A1と入力
--------------
fx|=A1
--------------

A1に表示したい文字を入力すると、テキストボックスに表示される。
A1にあああと入ってるとテキストボックスに入る。
--------------
|あああ     |
--------------
953名無しさん@そうだ選挙にいこう:2005/08/27(土) 22:42:52
【1 OSの種類 】 Windows XP
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか 】 少々
【4 VBAでの回答の可否】 可

エクセルでカレンダー形式の月間(年間)予定用を作っています。(1シートで1年分)
A1セルに、今日の日付を表示させており、条件付き書式で今日の日付のセルに色を付けています。
一発で今日の日付のセルに移動出来る方法はありますか?
あれば、「今日に移動」のボタンを作ってマクロ処理したいと思います。


954938:2005/08/27(土) 23:24:55
>>951
ありがとうございます!
ずーっと考えてもダメでしたので嬉しいです。
早くこういう↓
& ":" &
考え方が出来るようになりたいと思いました。
分からないながらも考えまくってためになりました。
955949:2005/08/28(日) 04:29:29
>>952
まさにその通りです。
ありがとうございました出来ました!!!
956名無しさん@そうだ選挙にいこう:2005/08/28(日) 14:41:30
>>936
私もよくありますが、恐らく単にパソコンが
busy状態なだけだと思います。
Excelはそれぞれのファイルで関連性を持つので、
他のファイルが処理中の場合、
新規ファイルがbusy状態になる場合があります。
作業中の既存ファイルは定期的に上書き保存し、
新しくファイルを開く際に他のファイルが
上書き保存された状態にしておけば、
悩みは解決されると思われます。
957名無しさん@そうだ選挙にいこう:2005/08/28(日) 18:16:59
936 です。 956さん有難う。 PCがbusyだというのも頷けるんですよ。
というのは再現性が無いので、何らかのPCの状態によるのだろうと
思っていたんです。

回避の仕方は私が書いたように、追加ワークシートするか、
PCを立ち上げたりするといいようですね。

では! 謝謝
958名無しさん@そうだ選挙にいこう:2005/08/28(日) 19:24:59
>>957
馬鹿な回答に返答頂き申し訳ないです。
取り合えず逝ってきます。
959座敷荒氏:2005/08/28(日) 20:46:59
hoge ◆hoge//WRxY さん、お返事が大変遅くなりましたが
ご教授くださいましてありがとうございます。

まだちょっと疑問が残っているのですが
自分でも勉強しています。ありがとうございました。

これを機に勉強して、僕も教えられるようになりたいです。
960名無しさん@そうだ選挙にいこう:2005/08/29(月) 23:59:24
【1 OSの種類 】 Windows XP SP2
【2 Excelのバージョン 】 Excel2002 SP3
【3 VBAが使えるか 】 少々
【4 VBAでの回答の可否】 お願い致します。

UserForm1上に
TextBox1、TextBox2、CommandButton1を配置しております。
CommandButton1をクリックすると、
TextBox2にカーソルが入るようにしたいのです。

よろしくお願い致します。
961hoge ◆hoge//WRxY :2005/08/30(火) 00:08:46
>>960
Private Sub CommandButton1_Click()
 TextBox2.SetFocus
End Sub
962960:2005/08/30(火) 00:16:29
>>961
ありがとうございます!!
仕事の効率が上がります!!
963とんま:2005/08/30(火) 15:13:50
エクセル2000ってどの程度まで計算できますか??
論理積や排他的論理和とかできるんですか?
擬似乱数形成はできますよね??
詳しい方お願いしますm(。。)m
964名無しさん@そうだ選挙にいこう:2005/08/30(火) 15:26:43
>>963
全部できる
やり方は自分で調べれ
965名無しさん@そうだ選挙にいこう:2005/08/30(火) 23:20:50
>>964
私は質問しているのですが?
966名無しさん@そうだ選挙にいこう:2005/08/30(火) 23:44:31
>>965
あげた例は「全部できる」が回答です。
967名無しさん@そうだ選挙にいこう:2005/08/31(水) 00:01:17
>>965
>>963 の質問はすべて >>964 で回答されている。
968名無しさん@そうだ選挙にいこう:2005/08/31(水) 00:28:05
>>966-967
そうでしたか。不親切な方もいらっしゃるようなので、
質問は厳密に記述しないといけないのですね。
さすが2ちゃんねるです。
969名無しさん@そうだ選挙にいこう:2005/08/31(水) 00:35:23
>>968
厳密に記述などしなくていいから、もう来るな。
970名無しさん@そうだ選挙にいこう:2005/08/31(水) 00:54:14

> ▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
> ★要望は具体例や図を使って明確かつ具体的に。

具体的にどういう論理条件を組みたいかを書けば
「出来ますか」と聞いても、論理式で回答してくれる人もいるだろうが
条件を全く書かずに出来るか出来ないかを聞かれれば
出来るか出来ないかを答えるのが普通だろう

まぁこれだけ生意気な事言っちゃったら
今更きちんと質問しても誰も答えてくれないだろうけどね
でも検索すれば一瞬でわかる内容だったのが幸いだったな
971名無しさん@そうだ選挙にいこう:2005/08/31(水) 02:44:47
MTもDLL落としてくれば使えるね。
972名無しさん@そうだ選挙にいこう:2005/08/31(水) 04:36:17
>>968
お前みたいな自分勝手なやつは初めて見た
ハッキング依頼しておきます
973名無しさん@そうだ選挙にいこう:2005/08/31(水) 06:36:24
俺モ友達のスーパーハッカーに頼んどく。
974名無しさん@そうだ選挙にいこう:2005/08/31(水) 06:56:36
ガンガレ
975名無しさん@そうだ選挙にいこう:2005/08/31(水) 07:08:36
>>970
元々分かっていましたけど?
スレを埋めるために適当な質問を投稿しただけですよ。
まったく思う壺ですね。

単純w
976名無しさん@そうだ選挙にいこう:2005/08/31(水) 07:21:19

後付けでは簡単になんとでも言えるが、

そういうのを世間では「○け○しみ」と呼ぶ。
977名無しさん@そうだ選挙にいこう:2005/08/31(水) 07:34:57
>975
自分の負けたこと失敗したことをすなおに認めず、普通なら負けるはずはない、
実力では自分が上だなどと言い張ること。

Shin Meikai Kokugo Dictionary, 5th edition (C) Sanseido Co., Ltd. 1972,1974,1981,1989,1997
978名無しさん@そうだ選挙にいこう:2005/08/31(水) 07:47:38
>>976
○け○の○吠え
とも言うな
979名無しさん@そうだ選挙にいこう:2005/08/31(水) 08:09:36
すっぱいぶどう は違うかw
980名無しさん@そうだ選挙にいこう:2005/08/31(水) 15:19:38
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 少しだけ
【4 VBAでの回答の可否】 可

質問です。
貼付先を選択してマクロを実行すると コピー、貼付け、シートの保護、上書き保存。というモノを作りました。
これに貼付先の選択ミスの表示を追加したいと思っています。
1ページ16行で構成されているものが縦に並んでいる表なのですが
アクティブセルがA21,A37,A53...でないとマクロを実行しない としたいのです。

If MOD(ActiveCell.Row-5,16)>0 Then
と書きたい所、MOD関数が機能しないようだし、
加えて「マクロを中止する」という記述が何処を見ても判りません。
981980:2005/08/31(水) 15:20:32
以下は現在のマクロです。
どのように書き加えたら要望どおりの動作が返されるのでしょうか。
ご教示お願い致します。

Sub copy()
複写確認 = MsgBox("正しい貼付け先が選択されていますか?", ybdefaultbutton1 + vbYesNo, "複写確認")
If 複写確認 = vbYes Then
複写数 = InputBox("増やしたいページ数を入力して下さい。", "ページの複写", 1)
If 複写数 > 0 Then
貼付行 = ActiveCell.Row
Range("A5:L20").copy
Range("A" & 貼付行 & ":L" & (貼付行 - 1) + (複写数 * 16)).Select
ActiveSheet.Paste
Range("B" & 貼付行 + 1).Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
ActiveWorkbook.save
End If
End If
End Sub
982hoge ◆hoge//WRxY :2005/08/31(水) 15:54:25
>>980
VBAではMODは関数ではなく演算子ですので使い方が間違ってます。
 If ActiveCell.Row Mod 16 = 5 Then
加えてA列も条件に入れるなら、
 If ActiveCell.Column = 1 And ActiveCell.Row Mod 16 = 5 Then

マクロ(Subプロシージャ)を強制終了するのはExit Subです。
ただ、上記条件式の場合はExit Subは必要無いですけど。

これらを使ってとりあえず自分で書いてみましょう。
それでもどうしてもうまくいかなかったらまた質問に来てください。
983980:2005/08/31(水) 16:50:17
>982
こんなに早く、、、hoge氏、ありがとうございます!
お陰さまで希望通りのものに仕上がりました。

涙が出るほど嬉しいです。奥が深いですね。。。
持ってるマクロ本は入門編なので、お手上げでした。
重ねて、有難うございます!
984名無しさん@そうだ選挙にいこう:2005/08/31(水) 22:37:53
【1 OSの種類         .】 Windows2000SP4
【2 Excelのバージョン   】 Excel2000/2003

VLOOKUP関数で検索値をセルに返そうとしたのですが、セルに数式だけが表示されてしまいます。
関数の貼り付けダイアログで各項目に同じ内容を入力すると、一番下にある
数式の結果 = の部分には正しい計算結果が出力されます。ですがセルには反映されません。
どのような原因が考えられますでしょうか?
985名無しさん@そうだ選挙にいこう:2005/08/31(水) 22:51:13
>>984
セルの書式設定が文字列になってない?
986名無しさん@そうだ選挙にいこう:2005/09/01(木) 13:02:40
そんなに、困っているわけではないんですけど
梅もかねて、お時間のある方お付き合い下さい。

Exel 2002 を使用しています。
編集メニュー→フィル→文字の割付
↑この機能を知らなかったのでヘルプで調べていたんですけど、
関連するヘルプを見つけられませんでした。
Web 上では見つけました。

そこで、質問なんですけど

1 文字の割付に関するヘルプって Exel のヘルプに載ってますか?
2 もし載っていないとしたら、他にもヘルプに載ってない機能ってあるんでしょうか?

987名無しさん@そうだ選挙にいこう:2005/09/01(木) 13:20:56
>>986
1 VBAヘルプにJustifyメソッドは載ってる
2 ある

具体的に何が載ってないかを挙げたらキリがないので
興味があるなら自分で調べましょう。
988986:2005/09/01(木) 20:34:00
>>987
レス有難うございいます。

VBA の方に載ってましたか。
おかげで、ヘルプをめい一杯呼んでしまいました。

M$ のヘルプってある程度覚えてからでないと
役に立たないと思うのは私だけでしょうか?
989名無しさん@そうだ選挙にいこう:2005/09/01(木) 22:46:37
質問です
A1からF1に入力項目があって、A1からF1まで全て入力済みなら灰色で塗りつぶして
A1からF1のどこか一つでも未入力箇所があると塗りつぶしなしをする

このようなマクロを作成したいのですが初心者なもので・・・教えていただけないでしょうか。
990名無しさん@そうだ選挙にいこう:2005/09/01(木) 23:00:30
>>989
条件付書式で出来るけど、マクロがいいんですか?
991名無しさん@そうだ選挙にいこう:2005/09/01(木) 23:17:21
条件付書式でできるならそれでも教えて欲しいです。
文字はなんでもいいので入っていれば入力済みとなるようしたいです
992名無しさん@そうだ選挙にいこう:2005/09/01(木) 23:29:54
819 名前:デフォルトの名無しさん[sage] 投稿日:2005/09/01(木) 22:57:15
>>818
何を持って入力されたと看做すのか。とにかく何か文字が入っていればそれで良いのか
自分で条件をまとめなされ。

821 名前:デフォルトの名無しさん[sage] 投稿日:2005/09/01(木) 23:16:19
818はマルチ

822 名前:デフォルトの名無しさん[] 投稿日:2005/09/01(木) 23:19:11
>>821
どっちに書いたらいいのかわからんかったから両方書いただけ
993名無しさん@そうだ選挙にいこう:2005/09/01(木) 23:33:54
>>989
Sub tes()
Range("a1:f1").Interior.ColorIndex = 15
For i = 1 To 6
If Cells(1, i).Value = "" Then
Range("a1:f1").Interior.ColorIndex = xlNone
End If
Next

End Sub

作ってみた。
俺も初心者だからちゃんと動かないかも試練
994名無しさん@そうだ選挙にいこう:2005/09/01(木) 23:38:53
マルチのも答えちゃう教えたがり君って
質問者だけにとってはありがたい存在だろうけど、
スレとしては統制を乱す邪魔な存在だな

まぁ埋めの一環&無駄のあるコードってことで、今回はいいか
995いやされた:2005/09/01(木) 23:45:02
>>993
仕様を満たすならこうだね。
Sub tes()
Range("a1:f1").Interior.ColorIndex = 15
For i = 1 To 6
If Cells(1, i).Value = "" Then
'修正-s
'Range("a1:f1").Interior.ColorIndex = xlNone
Exit sub
'修正-e
End If
Next
'追加-s
Range("a1:f1").Interior.ColorIndex = xlNone
'追加-e
End Sub
996名無しさん@そうだ選挙にいこう:2005/09/01(木) 23:46:29
Sub unko()
i = MsgBox("入力した?", vbYesNo)
If i = yes Then
Range("a1:f1").Interior.ColorIndex = 15
End If
End Sub

無駄の無いコード
997名無しさん@そうだ選挙にいこう:2005/09/01(木) 23:55:37
993と995の差がよく分からん
998989:2005/09/01(木) 23:57:09
協力してくれた皆ありがとう
995のコードでうまくいきました
サンクス
999999:2005/09/02(金) 00:04:20
999は幸せの番号
1000999:2005/09/02(金) 00:05:55
ついでに1000!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。