2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Excel総合相談所 32

1 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 22:48:40
Excelに関する質問は、ここで!

     /)_/)    ( ・質問する人は可能な限り具体的に書いてね。
    < ゚ _・゚> .。oO( ・Excelのバージョン、OSのバージョンも書くとレスが付きやすい。
  ノ) /   |    ( ・回答がなくてもキレないで。
  \(_,,,_,,,)   ( ・分かる人はできるだけ回答して下さいませ。

前スレ
http://pc8.2ch.net/test/read.cgi/bsoft/1109340075/


過去スレは>>2
FAQ(よくある質問と答え)は>>3-10くらい。

2 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 22:49:21
=過去ログ=
http://pc.2ch.net/test/read.cgi/bsoft/986283001/
http://pc.2ch.net/bsoft/kako/1004/10044/1004432306.html
http://pc.2ch.net/bsoft/kako/1012/10124/1012439547.html
http://pc.2ch.net/bsoft/kako/1018/10180/1018055390.html
http://pc.2ch.net/bsoft/kako/1023/10238/1023811906.html
http://pc.2ch.net/bsoft/kako/1028/10287/1028725250.html
http://pc.2ch.net/bsoft/kako/1033/10339/1033983470.html
10 http://pc2.2ch.net/bsoft/kako/1042/10429/1042913355.html
11 http://pc2.2ch.net/bsoft/kako/1045/10459/1045997062.html
12 http://pc2.2ch.net/bsoft/kako/1050/10500/1050069432.html
13 http://pc2.2ch.net/bsoft/kako/1053/10530/1053069026.html
14 http://pc2.2ch.net/bsoft/kako/1055/10553/1055342774.html
15 http://pc2.2ch.net/bsoft/kako/1057/10577/1057720306.html
16 http://pc2.2ch.net/bsoft/kako/1060/10603/1060345528.html
17 http://pc2.2ch.net/bsoft/kako/1062/10622/1062260735.html
18 http://pc2.2ch.net/bsoft/kako/1067/10672/1067264540.html
22 http://pc5.2ch.net/test/read.cgi/bsoft/1078930810/ (html化待ち)
23 http://pc5.2ch.net/test/read.cgi/bsoft/1083074470/ (html化待ち)
24 http://pc5.2ch.net/test/read.cgi/bsoft/1085756069/ (html化待ち)
25 http://pc5.2ch.net/test/read.cgi/bsoft/1088690113/ (html化待ち)
26 http://pc5.2ch.net/test/read.cgi/bsoft/1091619391/ (html化待ち)
27 http://pc5.2ch.net/test/read.cgi/bsoft/1096068933/ (html化待ち)
28 http://pc5.2ch.net/test/read.cgi/bsoft/1099232633/ (html化待ち)
29 http://pc5.2ch.net/test/read.cgi/bsoft/1102922371/ (html化待ち)
30 http://pc5.2ch.net/test/read.cgi/bsoft/1106829956/ (html化待ち)

3 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 22:49:46
= FAQ: 列の表示について =
Q.列名がA,B,C,D,Eではなく、1,2,3,4,5になってしまいました。
 アルファベットに戻すにはどうしたらいいですか?
A.ツールメニュー:「オプション」 -「全般」タグで
 『R1C1 参照形式を使用する(C)』のチェックを外せば直ります。

Q:列を256個(IV列)よりたくさん広げることはできませんか?
A:エクセルのシートは65536行×256列が仕様上の上限です。
 シートを分けるとか、行と列を入れ替えるとか、データの方をまとめるとか、
 列数を増やさない方向で工夫するしかありません。

4 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 22:50:05
= FAQ: 印刷プレビュー =
Q:印刷プレビューではセル内に収まっていた文字が
 実際に印刷してみるとはみ出してしまうのですが、
 何とかなりませんか?
A:「印刷プレビューと印刷結果が一致しない」のは
 昔からのExcelの弱点で、どうにもなりません。
 セルの幅や高さに余裕を持たせるか、
 書式設定で「縮小して全体を表示する」にチェックを入れましょう。


= FAQ: マクロの”””削除””” =
Q.マクロを削除したのに、ファイルを開くたびにセキュリティの確認が出ます。
A.モジュールの解放が必要。
 【モジュールの解放方法】Alt+F11→Ctrl+R→Module1を右クリック→解放

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

その他時間とか日付とかの計算について
 勤務時間を計算するには
http://support.microsoft.com/default.aspx?scid=%2Fdirectory%2Fworldwide%2Fja%2Fkblight%2Ft009%2F3%2F46.asp

 日数および日付の表示方法と計算方法 - 基本編
http://support.microsoft.com/default.aspx?scid=%2Fdirectory%2Fworldwide%2Fja%2Fkblight%2Ft009%2F3%2F45.asp

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


= 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)

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

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

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

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


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

8 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 22:51:19
= FAQ: 行列の入れ替え =
Q.エクセルで作った表が横方向に多くなってきたので
 行と列を入れ替えたいのですが。

A.コピーして、適当なセルで右クリック。
 形式を選択して貼り付け→行列を入れ替える。


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

9 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 22:51:37
= FAQ: ブラウザの変更 =
Q.Excelでアドレスをクリックした時に開くブラウザをIEからSleipnirなどに変更したい。
A.スレ違いです。
 開きたいブラウザの設定画面でそのブラウザを通常使うブラウザに指定してください。


= FAQ: セル内での改行 =
Q:セル内で改行したいんですがどうすればいいでしょうか

A:改行したい位置でAltを押しながらEnterを押せばセル内改行できます。

10 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 22:51:48
= FAQ: ワイルドカード文字の検索・置換 =
Q:* 、 ? で検索するとワイルドカードとして認識されてしまいますが、
  * 、 ? の文字自体を検索するにはどうすればよいですか?

A: ~* 、 ~? のように、頭に ~ を付けることでエスケープ出来ます。

A:全角で*と入力し「半角と全角を区別する。」のチェックを外して検索する
 (全角なのでワイルドカードとしては使われないが
  全半角を区別しないので文字として"*"にはヒットする。)

11 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 22:58:52
少し質問が。OSはXPでエクセルは2003です。
内容はについてですが
B1のセルに「セブンイレブン」と入力するとA1のセルに「コンビニ」C1のセルに
「24時間営業」と返すように作りたいのです。
他にいうとB1に「ダイエ−」と入れるとA1には「ス−パ−」C1には「10時間営業」
というふうに関数を作りたいのですが、うまくいかないのです。教えて下さい


 −−−−−−−−−−−−−−−−−−
|   A  |  B  |  C  |
 −−−−−−−−−−−−−−−−−−
|コンビニ  |セブン・・|24時間・|
 −−−−−−−−−−−−−−−−−−
|ス−パ−  |ダイエ−・|10時間・|
 −−−−−−−−−−−−−−−−−−

12 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 23:06:25
A1に =IF(B1="セブンイレブン","コンビニ",IF(B1="ダイエー","スーパー",""))
C1に =IF(B1="セブンイレブン","24時間営業",IF(D1="ダイエー","10時間営業",""))

13 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 23:12:37
>>11
対応表を別シートに作ってVLOOKUP/HLOOKUPでそれを参照させちゃ駄目?

SHEET2にこんな表を作ってHLOOKUPで参照
     A      B   
1|セブン… |ダイエー |
2|コンビニ |スーパー|
3|24H…  |10H… |

14 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 23:17:55 ?
前スレ >994
もう少し条件を判りやすくすれ。

読むからに、単純に10分繰り上げすればいいんじゃねーの?
それと、深夜労働時間(午後10時から午前5時まで)というのは、単純に基本給(時給換算)から1.50倍すればいいだけだと思う。

15 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 23:19:02
質問です。
外部データの取り込みでインポートする取り込み先を相対参照にするかして
カレントディレクトリを参照させたいのですがどうすればいいのでしょう。
OS:WinXP、Excel2002使用

16 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 23:21:44
excel2000を使ってますが、
名簿に生年月日をのせた(A列には名前、B列には生年月日)
表示形式で、例えばB列に入力した「平成17年3月31日」から月日(3月31日)だけを抜き出し、
しかもその月日を月毎に並べ替え出来るようにするには、どういった方法が
考えられますでしょうか。ご教授下さいませ。

17 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 23:22:07
>>12ありがとうございます。

>>13行自体が数百になる予定なので、対応表を作った方が非常にやりやすいです。
逆に
   A     B      C
1  セブン・・ コンビニ   24時間
2  ダイエ−・ ス−パ−   10時間
とシ−ト2に入れて、
シ−ト1のBセルにセブンと入れると自動的にAとCに返すような方が非常に助かります。
出来れば・教えてください・・○TL

18 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 23:24:39
リンクの移動先  追えるけど
>>5
勤務時間を計算するには
http://support.microsoft.com/default.aspx?scid=kb%3bja%3b880980
日数および日付の表示方法と計算方法 - 基本編
http://support.microsoft.com/default.aspx?scid=kb%3bja%3b880979

19 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 23:31:31
>>16
生年月日はセルの中は2005/3/17とかになっていて表示だけ
平成〜になっているのか、セルの中に初めから平成〜となって
いるのか?
それによって対処の仕方が違います。

20 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 23:32:48
>>17
VLOOKUP

21 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 23:35:55
>>19
ちなみに、前者であれば
Month()
Day()
Text()
などをつかえばできるでしょう。


22 :12:2005/03/30(水) 23:37:48
>>17
何がしたいのかやっと分かった

Aiセルに =IF(Bi="","",VLOOKUP(Bi,Sheet2!$A$1:$C$n,2,FALSE))
Ciセルに =IF(Bi="","",VLOOKUP(Bi,Sheet2!$A$1:$C$n,3,FALSE))

23 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 23:38:18
>>16
前者でございます。
基本的に、h17.3.31と打って平成17年3月31日と表示されるように
しています。

24 :23:2005/03/30(水) 23:38:55
×>>16
>>19

25 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 23:42:24
>>23
例えばC列に
=TEXT(MONTH(B3),"00") & TEXT(DAY(B3),"00")

などとして、C列に月日の文字列を表示させてからソートしる



26 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 23:48:28
>>22
何をしたいか人に伝えることができない人は、まず、伝えることを
学ぶ必要がある。それができれば自然とExcelの関数、VBAも
できるわけで、、、

27 :11:2005/03/30(水) 23:51:17
ありがとうございました。何とか成功しますた
>>26え〜っと、ちなみに22さんは僕ではないんで^^;;


28 :名無しさん@そうだ選挙にいこう:2005/03/30(水) 23:54:20
>>25
=TEXT(B3,"MMDD")

でよかったな。

29 :23:2005/03/31(木) 00:05:34
>>28
大変有難うございます! 勉強不足でスマソ。

30 :前スレ997:2005/03/31(木) 09:43:24
新スレ乙です。
どなたか前スレ終了間際の質問にアドバイスいただけますでしょうか。
よろしくお願いします。

--------
ところでリストボックスから検索結果を選択して表示フォームに渡したいのですがうまくいきません。
自分で試してみたのは、アドレス格納用に配列(a(256))を用意しておき、
For文でi=2から初めて条件にヒットしたときに該当アドレスを上記配列に格納し、
さらにそのときのiの値も別の配列(b)に保存しておき、
詳細表示ウィンドウを呼び出すボタンをクリック時に呼び出すフォームに
アドレス格納用配列をa(b)という形で引数として渡したのですがうまくいきませんでした。
こういう場合はどうすべきなのでしょうか。

31 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 09:48:12
>>30
おまえが書いたコードと処理の具体例を書け

32 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 10:41:17
質問させていただきます。
OS:WinXP Pro
Ver:Excel2002

複数の人間で扱うデータなので、会社のネットワークグループに
新しくフォルダを作り、そこにExcelデータを格納しています。
それを開いて使用後に上書保存しようとすると
「他のユーザーによって変更された可能性があります。
 操作を選択して下さい。」
と言ったメッセージが出て、名前を付けて保存か上書保存かを
指定する。といったことが起こってます。

以後、このメッセージを出さないようにする方法はありますか?
ツール−オプションでも解りませんでした。
ご存知の方、宜しくお願い致します。

33 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 11:42:44
winXP,Offece2000です。
メニューをプルダウンしたときに普段使わないような機能は下向き不等号が
2つ重なった●をクリックしないと展開されませんよね?
これをメニューをプレスしただけでフル展開されるように出来ますでしょうか?
よろしくお願いいたします

34 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 11:47:06
表示 > ツールバー > ユーザー設定 > オプション
□常にすべてのメニューを表示する

35 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 11:56:20
セル内で段落わけすることってできますか?
1234
じゃなくて
12
34
みたいに表示したいんです。

36 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 12:00:27
12{Alt+Enter}34

37 :33:2005/03/31(木) 12:05:49
>>34
できました!ありがとうございました!!

38 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 12:54:35
こういう機能ありますでしょうか?XP,2003です。
A1セル:手入力の数値
A2セル:手入力の数値
A3セル:A1+A2
A4セル:A1*A2
A5セル:(A3+A4)*(A3/A4)---A4は0ではありません
のときワンタッチでA5をA1とB1だけであらわしたいのですが、出来ますでしょうか?
もっと複雑な式でこういう悩みを持っていまして、分けがわからなくく
なってきました。こういう機能需要がありそうなのですが。
ご存知の方お教え願えせんでしょうか。よろしくお願いいたします。

39 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 13:05:39
Win2000,Excel2000です

行ごとまとめてコピーしてどっかべつのところに貼り付け、という時、左側の行番号を選択しますよね
で、複数の行をまとめてコピーして……という時は、行番号のところをカーソルでなぞりますよね

それで、画面の外に出ちゃうくらいの、数十行の行をまとめて……という時は
行番号をクリックして、例えばそのまま下にドラックするとどんどん行が下に行ってくれますよね

その時、しばらく行って「ここだ」という時にドラッグを止めるんですが
勢いがついてなかなか止まってくれないんです
100で止めよう、と思っても、200くらいまでバババババって行っちゃうんです

なんかExcelの設定で直せるんでしょうか?
SCRLかと思ったんですが、それも違いました



40 :30:2005/03/31(木) 13:09:36
>>31
以下のように記述しました。
プロパティの指定に問題があるとエラーがでるのですが・・・。
まずいところがありましたら指摘してください。
詳細表示用のプロシージャで該当アドレスを参照させることさえできればあとは何とかなると思うのですが・・・。
よろしくお願いします。


検索ボタンには
Private A(256)
Dim b

Sub CommandButton1_Click()
Search.ListBox1.Clear
N = 3'検索用
b = 0'アドレスを配列に0から順番に格納する


41 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 13:12:02
>>38
=(A1+A2+A1*A2)*((A1+A2)/(A1*A2))
=((A1+A2)+(A1*A2))*((A1+A2)/(A1*A2))

>>39
設定では変えられませんが、作業領域下限から離れた距離によって
速度が変わるので(離れるほど早くなる)適当に調整しましょう。
または100〜500行を選択するなら、先ず100行目を選択して
500行目が見えるところまでスクロールし、Shiftを押しながら500行目の
インデックスをクリックすれば100〜500行の選択になります。
または「名前ボックス」に100:500を入力してEnter

42 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 13:14:40
>>40
おまえが書いたコードと処理の具体例を書け

43 :40=30続き:2005/03/31(木) 13:21:46
Do
'検索条件と比較
If InStr(1, Cells(N, 2).Value, Search.TextBox1.Value) > 0 And InStr(1, Cells(N, 4).Value, Search.TextBox2.Value) > 0 And InStr(1, Cells(N, 6).Value, Search.TextBox3.Value) > 0
And InStr(1, Cells(N, 7).Value, Search.TextBox4.Value) > 0 Then
'ヒットしたらリストボックスに追加
Search.ListBox1.AddItem Cells(N, 2) & " , " & Cells(N, 6) & " , " & Cells(N, 7)
'アドレスを配列に格納
Set A(b) = Application.Cells(N, 2)
b = b + 1
End If
N = N + 1
Loop While Cells(N, 2) <> ""
End Sub

詳細表示ボタンには
Private Sub CommandButton2_Click()
MsgBox (A(b).Address)
ViewRecord A(b).Address
Unload Me
End Sub

44 :40=43:2005/03/31(木) 13:24:17
間が開いてしまいました。申し訳ありません。
検索ウィンドウのテキストボックスに入力した値が各行の対応するセルに含まれているかどうかで検索しています。
ヒットしたものをリストボックスに表示させ、
そのアドレスをアドレスに0から順番に格納し、
詳細表示用ウィンドウ(ViewRecord)に引数として渡したいのです。
よろしくお願いします。

45 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 13:33:15
>>39
100〜500行を選択する>>41以外の方法としては

行番号100を選択した後→Shiftキーを押しながらPageDownを押す
500行付近に行ったら上下キーで調整(Shiftキーは押したまま)

慣れてくるとマウスよりキーボードでの操作の方が早くなってくる


46 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 13:37:47
CommandButton2_Clickの配列Aの引数は
bではなくListBox1.ListIndexでは?

47 :38:2005/03/31(木) 14:16:42
>>41 レスありがとうございます。
実際にはこの式ではなく色々関数を使ったりした長い式なのですが、何か
エクセルの機能で、ボタン一発あるいは関数か何かで一括自動でA1,A2だけの
式にしてもらえるとたすかるなあと思いまして。
ないのでしょうね。ありがとうございました。

48 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 14:19:55
>>47
VBAでできるけどね
詳しくはヘルプでも嫁

49 :38:2005/03/31(木) 14:25:46
>>48
ええ〜、そうなんですか!ありがとうございます。調べてみます。
使いこなせないかもしれませんが勉強します!

50 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 15:04:16
>>39
Macの場合だと、
方法1:
 100行目を選択
 右側のスクロールつまみで、500行目が表示されるまでウィンドウをスクロール
 shiftキーを押しながら500行目を選択
方法2:
 100行目を選択
 shift + page downで一画面ずつ選択範囲を拡大する。
 500行目が表示されたところで(行きすぎていてもよい)shiftキーを押しながら500行目を選択

というような手順で、100〜500行が選択されるよ。
Winだとキーが違うかも知れないけど、大体同じ事ができると思う。
「ショートカットキー」でヘルプを見てみ。

51 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 15:10:17
>>50

> 方法1:
>>41が書いてる

> 方法2:
>>45が書いてる

52 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 15:17:48
>>48
Excelで、そんな数式処理のようなことができるのか。
俺も知りたい。
探したけど見つからなかったので、ヘルプの項目とか参考ページなどを教えて下さい。

53 :50:2005/03/31(木) 15:20:04
>>51
ごめん。見落としてた。
なぜこんなにはっきり書いてあるのを見てなかったのか自分でも不明。
頭を冷やしてきます。

54 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 15:34:23
>>52
ついさっき出たばかりのことで「探したけど」って
実は全然探してないだろ。

55 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 16:05:25
>>38
>もっと複雑な式でこういう悩みを持っていまして

それを書いた方がいいように思う

56 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 16:26:19
>>38

B1がどこから出てきたのかその説明では解らないんだけど

A5 =((A1+A2)+(A1*A2))*((A1+A2)/(A1*A2))

じゃ駄目なの?

57 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 16:34:41
続きがあったのね…

置換は使えないの?

58 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 16:34:47
>>56

>>41読め
もしかしてまた>>50か?

59 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 16:38:45
ゴメン。気づがなった…orz

60 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 16:59:22
ひょっとして>>48は、Replace関数でこつこつ置き換えろと言いたいわけかな。
そりゃワークシート関数のREPLACEでやるよりはVBAだろうが…。

61 :39:2005/03/31(木) 17:07:14
いろいろありがとうございました
確かに慣れるとキーボードの方がラクかもしんないですね

基本的な話なんですが
ドラッグをしてからピタっと止めても、狙った位置には止まんないということでいいんでしょうか?
>>41
>設定では変えられませんが、作業領域下限から離れた距離によって
>速度が変わるので(離れるほど早くなる)適当に調整しましょう
というのはあまくでもドラッグ速度で、ドラッグをやめたあとの「余韻」の話ではないように思えるのですが

私の現在の環境では、例えば5秒くらいドラッグを続けると
ドラッグを止めてもそのまましばらく動きつづけます
これが、100で止めようとして110くらいで止まる、というのであれば単純に個人の反射神経の問題なんでしょうが
目で確認できるくらい動きつづけてしまうので(「おい、おいおい……まだいくかこら……」みたいな感じです)

62 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 17:19:32
>>60
Replaceでだめな理由がわからない。
私は48ではないですが、ちょっと気になったもので。

>>61
それはExcelの問題でなく、PCの処理が遅いだけ。

63 :名無しさん@そうだ選挙にいこう :2005/03/31(木) 17:19:46
Excelはラベル印刷に対応しているのでしょうか?
巷の参考書等ではなかったのもですから。

64 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 17:24:54
>>60
俺もReplaceじゃダメな訳がわからない。
VBAの場合「こつこつ置き換え」ではなく「一瞬で一気に置き換え」できるし。

65 :60:2005/03/31(木) 17:29:09
>>60 >>64
あー。そうじゃないすまんすまん。
48はもっと違う方法を知っているのかと思っただけ。


66 :61:2005/03/31(木) 18:11:13
>>62
SHARPのMURAMASA(PC-MM1-H1V)なんですが……ダメか……orz
Excelの問題ではないという切り分けができただけでもよしとして、PC板いってきます

67 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 18:19:23
Replaceで例えばA1をA2+A3と置き換えるとして
A10とかA11とか判別するのめんどくない?

68 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 18:25:09
すいません、教えて下さい。

(例)3+5+2=10

上のような計算式で、加算数の「2」を入力しないときは「=8」
と表示しない(=が無表示のまま)方法を教えて下さい。

違う言い方をすると、左から「3」と「5」を入力しておくだけで、
最後に「2」を入力したときに、初めて「=10」と計算(表示)
される方法はありますか?


69 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 18:30:46
>>67
LookAt:=xlWhole

70 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 18:32:33
>>68
A1が3、B1が5、C1が2ってことなら
=IF(ISBLANK(C1),"",A1+B1+C1)
で出来るけど、質問が曖昧すぎて意味がよくわからない。


71 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 18:34:02
>>68
A1に3を入力
B1に5を入力しておいて
C1に2を入力したときに
D1に=10と表示されればいいのか?

その場合は
D1に
=IF(C1="","",SUM(A1:C1))
書式を
"="#,##0
とする

72 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 18:36:32
>>38
>エクセルの機能で、ボタン一発あるいは関数か何かで一括自動でA1,A2だけの
>式にしてもらえるとたすかるなあと思いまして。

ユーザー定義で関数作れば?

73 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 18:36:56
>>69
そうしたら、A1/B1を(A2+A3)/B1にできなくならない?

74 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 18:40:18
>>70-71
お付き合いいただき、恐縮です
また説明下手ですいません

要するに
A1に3を入力
B1に5を入力しておいて
C1に2を入力したときに
D1に=10と表示したいのですが、

C1の2が未入力のときは、D1は無表示(または0)
のままにしておきたいのです。

どうか今一度ご指導ください、お願いします。


75 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 18:47:31
>>74
if(C1<>"",A1+B1+C1,"")

76 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 18:51:52
>>74
回答されたものは試したのか?
その要望なら>>70-71で問題ないと思うが。

77 :74&68:2005/03/31(木) 18:52:46
>>75
ありがとうございます。

ただ、ご指導とおり
if(C1<>"",A1+B1+C1,"") をコピペしたのですが、
やはりA1に3を入力した時点で、D1も=3と表示さ
れてしまいます...

どうかアドバイスお願いします。

78 :74&68&77:2005/03/31(木) 18:58:53
>>76
ありがとうございます。

ただ70-71も試(コピペ)したのですが、やはり最初のA1に3を
入力した時点で、すでにD1=3と表示されてしまいました、、、

C1を入力するまでは、D1を無表示のままにしておきたいのです。

何度もほんとうにすいませんが、お願いします。

79 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 18:59:43
だれか超能力者が必要だ

80 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 19:04:18
うちではその3つとも、C1を入力するまで結果は空白のままだが。
なんか根本的に使い方間違ってないか?
ちなみにどの式もC1=0なら合計が返るけど。

81 :68 ◆gkGvMnGzh. :2005/03/31(木) 19:15:55
74&68&77&78です

>>80
皆さんの教えていただいたものをコピペしたのですが
何度やっても、A1またはB1を入力した時点で、既に
D1も表示されてしまいます...

どうかアドバイスをお願いします。


82 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 19:22:58
C1に0(0値非表示で)とかスペースとか入ってるんじゃないの?
C1でDELキー押してみな。それでもだめなら解らない。
というか、こっちで再現しない問題はアドバイスのしようがない。

83 :68 ◆gkGvMnGzh. :2005/03/31(木) 19:39:01
ほんとーーーにすいませんでした

>>82氏の予想通り、C1に0を表示したままでした
もちろんそれを消したら、すぐに出来ました!

0、、、、そんなことも知りませんでした、、、トホホ


みなさんの貴重な時間に、ほんとうに申し訳なかったです

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

84 :BUGかなー?:2005/03/31(木) 19:39:08
エクセルのシート間でデータの移動を行っています


Dim Ws3 As Worksheet
Dim Rng As Range
Dim i As Long

Ws3.Cells(i, 1).Resize(1, 30).Value = Rng.Offset(0, -1).Resize(1, 30).Value

こんなプログラムを実行すると

'81534','0000001',0,0 が

81534',0000001',0,0 とCOPYされ ’’シングルクオートで囲んだ
文字列の 左のシングルクオートが外れるんです

なんでしょうかね? RngはCSV形式のファイルから読んだシートです

Excel2000 On WindowsXPでごぜーます



85 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 19:49:55
>>84
BUGじゃないよ。
Excelの場合、入力の最初に ' を付けると「文字列」に
指定する演算子になります。
'2 と入れると文字列の 2 と認識されます。
頭に ' を入れたければ ''2と入力する必要あり。

86 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 19:58:10
>>85
ありがとうございます

私が2ちゃんに初めて助けられました
感謝


87 :994:2005/03/31(木) 21:41:15
>>14 レスありがとうございます。長くなってすいません。
・9:00に出勤するパターンの人は、6:00でも9:00でも9:00の出勤とされる。
・9:01は遅刻となり、9:10の勤務開始とみなされる。11:23に出勤したら11:30とされる。
11:29は11:30。11:30は11:30。11:31で11:40となる。
以上出勤は9:00以前と9:01以降で処理が違う:
9:00以前は何時に来ようが9:00勤務開始とされる。
9:01以降は10分単位で労働者に損な感じで丸められる。

・18:29に退勤したら、18:20とみなされる。18:30は18:20。18:31で18:30.
退勤は労働者に損な感じで10分単位で丸められる。

・深夜残業は22:00以降翌5:00まで。
・残業は出勤してから8時間働いてから。
・12:00から一時間は昼休みで労働時間にカウントされない。
なので、例えば9:02に出勤、23:30まで働いた人は
丸められた出勤 : 9:10
丸められた退勤 : 23:20
昼休みが12:00から一時間。
総労働時間 : 23:20-9:10-1:00=13:10
通常残業 : {9:10から9時間後(昼休みを考慮)の}6:10から22:00までの3時間50分。
深夜残業 : 22:01から23:20までの1時間20分(1時間19分と思われるが…)。
という感じになります。
で通常残業と深夜残業を求めよ、というわけです。
会社入ったばっかであんまりよく分かってないのですが、たしかこういう条件だったと思います。

88 :名無しさん@そうだ選挙にいこう:2005/03/31(木) 21:48:58
>>87
それなら前スレの回答で解決してるね。

89 :名無しさん@そうだ選挙にいこう:皇紀2665/04/01(金) 09:20:02
日付 みかん りんご 日付 みかん りんご
3/1 2 3 → 3/1 3 5
3/1 1 2 3/2 0 0
3/3 2 0 3/3 2 0
・ ・
・ ・
・ ・
左がもとデータで右が完成表(日付ごとの合計)です
3/2はデータがないので 0 を表示させたいのです
ご教授宜しくおねがいします






90 :名無しさん@そうだ選挙にいこう:皇紀2665/04/01(金) 09:42:42
>>89
VBAで。

91 :89:皇紀2665/04/01(金) 09:48:21
>>90
なんかスペースが消えておかしな表になってしまいましたスイマセン
で、やっぱりVBAでやるしかないのでしょうか?
VBAは自動記録くらいしかできないもので・・・・

92 :名無しさん@そうだ選挙にいこう:皇紀2665/04/01(金) 10:28:50
>>91
Sub hoge()
 Dim myDate As Date, i As Long, j As Long
 j = 2
 myDate = Cells(2, 1).Value
 Cells(j, 5).Value = myDate
 For i = 2 To Cells(65536, 1).End(xlUp).Row
  Do Until myDate = Cells(i, 1).Value
   j = j + 1
   myDate = myDate + 1
   Cells(j, 5).Value = myDate
   Range(Cells(j, 6).Address, Cells(j, 7).Address) = 0
  Loop
  Cells(j, 6).Value = Cells(j, 6).Value + Cells(i, 2).Value
  Cells(j, 7).Value = Cells(j, 7).Value + Cells(i, 3).Value
 Next i
End Sub

日付はシリアル値で、各項目は数字ではなく数値で入力してあればこれでいけると思う。
セル位置は元データの「日付」がA1、「みかん」がB1、「3/1」がA2に、
出力は同シートのE〜G列にしてあるのであとは勝手に調整して。

93 :名無しさん@そうだ選挙にいこう:皇紀2665/04/01(金) 10:41:21
>92がVBAでやってくれてることと同じようなことを手動でやるんだったら
実際に販売(?)されたデータの行のほかに月初か月末に毎月1日〜末日分の
空データ(というかゼロ)を入れた行を挿入してピボットテーブル使って集計するとか。

日付  みかん  りんご
3/1   0      0
3/2   0      0
3/3   0      0
(中略)
3/31  0      0


自分だったら>92のを使わせてもらうけど。

94 :92:皇紀2665/04/01(金) 12:13:17
>>91
関数でやる方法も一応書いておく。
E2に3/1と入力して、A列の最後の日付と同じになるまでオートフィルでコピー。
F1に「=SUMIF($A:$C,$E2,B:B)」と入力して
列範囲は右に2列、行範囲は下にE列の最終行までオートフィルでコピー。

95 :89:皇紀2665/04/01(金) 12:32:18
皆さん親切にありがとうございました
やってみます。

96 :名無しさん@そうだ選挙にいこう:皇紀2665/04/01(金) 15:08:50
Excel2002を使っています。
Range("A1").Addressで$A$1が得られますが、
A1を得るにはどうしたらよいでしょうか。
セルに式を代入するときのアドレスを$のつかない形にしたい。


97 :名無しさん@そうだ選挙にいこう:皇紀2665/04/01(金) 15:57:10
>>96
Range("A1").Address(RowAbsolute:=False, ColumnAbsolute:=False)
ヘルプ見れ

98 :名無しさん@そうだ選挙にいこう:皇紀2665/04/01(金) 15:58:30
>>96
Range("A1").Address(0, 0)

99 :96:livedoor06/04/01(金) 16:19:50
>>97-98
ありがとうございました。

100 :名無しさん@そうだ選挙にいこう:livedoor06/04/01(金) 16:45:45
1行ごとに1レコードを入力してあるリストがあるのですが、
各行の先頭セルにチェックボックスを貼り付け、同行の特定セル(あるいは同先頭セル)の内容を0と1で切り替えたいのですが、
このようなことは可能でしょうか。
ワンクリックで切り替えさえできればチェックボックスである必要はありません。
Wordで差込印刷をする際の判別用に必要なのです。
どなたかアドバイスお願いします。

101 :名無しさん@そうだ選挙にいこう:livedoor06/04/01(金) 16:46:48
???なんか日付けがおかしなことになってる???

102 :名無しさん@そうだ選挙にいこう:livedoor06/04/01(金) 17:01:39
>>100
右クリでA列が1と0が置き換わる。
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim a As Range
For Each a In Selection
If a.Column = 1 Then
a.Value = 1 - a.Value
End If
Next
End Sub


103 :名無しさん@そうだ選挙にいこう:livedoor06/04/01(金) 17:16:59
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
 Dim a As Range
 If Selection(Selection.Count).Column = 1 Then
  Cancel = True
  For Each a In Selection
   a.Value = 1 - a.Value
   a.NumberFormat = ChrW(9745) & ";;" & ChrW(9744)
  Next
 End If
End Sub

>>102を改造してみた。

104 :100:livedoor06/04/01(金) 17:28:38
>>102,103
どうもありがとうございます!
ばっちり行きました。
条件付書式と組み合わせて見やすくなりました。
って右クリックのイベントで書式も変更できるようなのでこっちでやったほうがいいのかな?
ともかくありがとうございます。

ところで>>102を先に見てそれでうまくいったのですが、>>103は何が違うのでしょうか?
ChrW云々とはどのような記述なのでしょうか?

105 :103:livedoor06/04/01(金) 17:41:43
>>104
1.A列のみを選択してる場合は、右クリックしても右クリックメニューを表示しない。
2.選択範囲にA列以外が含まれる場合は処理をキャンセル
3.A列以外を範囲選択した場合のキャンセル処理を高速化(B〜Z列あたりを選択して右クリックすれば違いが解ると思う)
4.A列の表示をチェックボックス文字で表示(セルの値は0と1のまま)

ChrW(9745)は□の中にチェックマークが入っている記号

106 :104:livedoor06/04/01(金) 18:01:31
>>105
なるほど。
チェックボックスに見えるのはすごくいいカンジです。
どうもありがとうございました。


107 :('A`):livedoor06/04/01(金) 20:46:23
ちょっと、質問させて下さい。
本気で悩んでます(泣)
Excelのバージョン:2003 personal
OS:Win2k

ある、それぞれの各商品コードに、不変の単価が対応付けられてるとします。


商品コード      単価
1000    →   \3,200
1001    →   \2,700
1002    →   \5,000
1003    →   \1,900
1004    →   \6,340
(ちなみに、商品コードは増える可能性があるものとします)


などのように、決まっていた場合に、例えばセルA4に

  セルA4     セルA7
| ̄ ̄ ̄ ̄ ̄ ̄| | ̄ ̄ ̄ ̄ ̄ ̄|
|    1003| |  \1,900 |
|______| |______|

1000と入力したら、セルA7に\1,900と自動的に入ってくるようにしたいのです。
どうかお力添え、お願いしますm(__)m

108 :('A`):livedoor06/04/01(金) 20:47:21
すみません、下げ忘れました

109 :名無しさん@そうだ選挙にいこう:livedoor06/04/01(金) 20:53:36
>>107
A7で以下の数式
=VLOOKUP(A1,商品コード,0,FALSE)

商品コードは増えるとの事ですので、
名前の範囲を多めにして、名前の定義をしておくとよい。

110 :('A`):livedoor06/04/01(金) 20:58:56
>>109
ありがとうございます。やってみます!

111 :('A`):livedoor06/04/01(金) 21:06:28
ちなみにこの式は、どこのセルに入れたらいいのでしょうか?
式の中の商品コードは商品コードが入っているセルの範囲ということでしょうか?

すみませんm(__)m

112 :('A`):livedoor06/04/01(金) 21:07:13
>>111

>>ちなみにこの式は、どこのセルに入れたらいいのでしょうか?
は無視してくださいm(__)m

113 :名無しさん@そうだ選挙にいこう:livedoor06/04/01(金) 21:10:45
> ちなみにこの式は、どこのセルに入れたらいいのでしょうか?
「A7で以下の数式」って書いてくれてるじゃん

> 式の中の商品コードは商品コードが入っているセルの範囲ということでしょうか?
「商品コードは増えるとの事ですので、名前の範囲を多めにして、名前の定義をしておくとよい。」
って書いてくれてるじゃん。

せっかく答えてくれてるんだからちゃんと読めよ。


ちなみに俺なら範囲可変参照使うけど、コードと単価の表の位置が解らないと掛けないからな。

114 :('A`):livedoor06/04/01(金) 21:17:22
>>113

確かに、そうですよね、すみません

セルA1に商品コード     セルB1に単価
セルA2に1000       セルB2に\3,200
セルA3に1001    セルB3に\2,700
セルA4に1002     セルB4に\5,000
セルA5に1003     セルB5に\1,900
セルA6に1004     セルB6に\6,340
とし、

115 :('A`):livedoor06/04/01(金) 21:18:27
A7に商品コードを自分で入力、B7に、表示ということがしたいのです。

116 :名無しさん@そうだ選挙にいこう:livedoor06/04/01(金) 21:25:50
つーか、>109が書いてくれてることで十分答えになってるんだから
あとは検索するなりちっとは自助努力もしてくれ。





117 :名無しさん@そうだ選挙にいこう:livedoor06/04/01(金) 21:27:53
A7、B7を入力、表示セルに使ったら
表を広げられないじゃん・・・

118 :名無しさん@そうだ選挙にいこう:livedoor06/04/01(金) 21:55:17
どうか皆様のお知恵を貸してください。
商品が売れると、1行から順番に、A列に売れた商品の商品番号(a01とかb30とか)、B列に売れた個数(1〜10)が入力されたcsvファイルがあり、
このファイルを使って、1ヶ月にどの商品が何個売れたかを集計したいのですが、
とりあえずどの商品が売れたかを集計する方法は判りました。
新しいファイルに各商品番号を上から順番に列に入力し、その隣の列全てに、
=COUNTIF(上記csvファイルをコピー&ペ−ストしたシート名(仮にmoto)!A:A,商品番号が入力されたセル)
を記入することで解決できました。
この方法では、1回に付き1個だけ買った場合は問題ないのですが、2個以上買った場合、何回買われたかは判るのですが、全部で何個
買われたかは判りません。
手作業でmotoシ−トのB列の数字分だけ、A列に該当商品番号の入力されたセルを挿入すればよいのですが、
売れた商品数が多くなった場合面倒になりますので、csvファイルのデータだけを利用して集計を実現する方法はないでしょうか?
Windows98、Excel2000を使用しています。
よろしくお願いします。



119 :名無しさん@そうだ選挙にいこう:livedoor06/04/01(金) 22:34:03
VLOOKUPとHLOOKUPをあわせたようなことは、できないでしょうか?
左端の列から特定の内容を検索して、行を選び
上の行から特定の内容を検索して、列を選んで、
特定の行と列の交点にあるセルの値を取得したいのですが。

120 :名無しさん@そうだ選挙にいこう:livedoor06/04/01(金) 22:47:35
>>119
indexとmatch関数を組み合わせるのが定法
例: =INDEX(リスト範囲,MATCH(列条件セル,列リスト範囲),MATCH(行条件セル,行リスト範囲)) 
みたいに書く。
式中の項目は勿論セル範囲やセルを指定。

121 :名無しさん@そうだ選挙にいこう:livedoor06/04/01(金) 22:53:01
あ、リスト範囲はデータ部分のトコだけんね。
項目部分は要らんよ。

122 :名無しさん@そうだ選挙にいこう:livedoor06/04/01(金) 23:24:07
>>118
ピボットテーブル

123 :名無しさん@そうだ選挙にいこう:livedoor06/04/02(土) 07:59:20
助けて…
シートに表示する日時とファイル名を「○○4月分」に変更させるマクロを組んだのですが
なんだかPCの日付自体も変えられてしまうのです。
ファイルを保存後PCを再起動すると、マクロで指定した月日に変更されるようです。
最初は電源が外れて狂ったのかと思いましたが、時刻は変わりません。
Win98SE、XPとも同じ現象が起こりました。
使用する度にこれではたまりません。どなたかお知恵を…ちなみに↓のように書いてます

Private Sub CommandBox月年_Click()
For i = 1 To Worksheets.Count
Worksheets(i).Cells(1, 3).Value = TextBox月.Value
Worksheets(i).Cells(3, 2).Value = TextBox日.Value
Next
Mytuki = TextBox月.Value & "/" & TextBox日.Value & "/1"
With Sheets("data")
.Range("Q2").Value = TextBox年.Value
.Range("N2").Value = Mytuki
End With
TextBoxFILE.Value = ThisWorkbook.Path & "\予定表" & Format(Mytuki, "ggge年mm月")
End Sub

Private Sub CommandBoxFILENAME_Click()
ThisWorkbook.SaveAs Filename:=TextBoxFILE.Value
End Sub

上記で5月1日と指定すると、PCの日付も5/1になってしまう

124 :名無しさん@そうだ選挙にいこう:livedoor06/04/02(土) 08:37:32
原因はこのコードじゃないと思われ。

125 :名無しさん@そうだ選挙にいこう:livedoor06/04/02(土) 09:10:58
>>124
解決しました、このコードでない、ということで別のとこを見てたら
「Date」を変数として使っていたところがあって、MyDateとかにしたら治まりました
ありがとうございます

126 :名無しさん@そうだ選挙にいこう:livedoor06/04/02(土) 11:40:56
Dictionaryオプジェクと(oDicとする)なんですが、Keyとして
存在しない例えばHogeをoDic("Hoge")とするとEmptyが
返ってきます。まあ、それでよいのですがこれをやると
勝手にoDicのKeyにHogeが追加されてしまい以降
oDic.exists("Hoge")がTrueになってしまうのはどうして
なんでしょ?

If oDic.exists("Hoge") And oDic.exists(oDic("Hoge”)) Then

なんて誤った使い方していて発見しますた。
Andの前がFalseでもAndの後を評価してしまうんですね、とほほ。

127 :名無しさん@そうだ選挙にいこう:livedoor06/04/02(土) 13:35:00
セル内で段落をつけると同じ行の表示が下につめられてしまうんですが、
どうやって上につめればよいのでしょうか?
例えば

山田太郎 東京
      渋谷区

って表示させたいんですけど、東京渋谷区に段落つけると

      東京
山田太郎 渋谷区

ってなってしまうんです。
わかりずらくてすいません。


128 :名無しさん@そうだ選挙にいこう:livedoor06/04/02(土) 13:44:51
>>127
わかりませんよ何がいいたいのか。
セル内改行のことですか?

東京
_渋谷区(_は空白)

と表示したいのなら、初めから空白を入れるしかありません。
あるいはセンタリングするぐらいでしょうか。

129 :名無しさん@そうだ選挙にいこう:livedoor06/04/02(土) 13:50:30
>>127

山田太郎のセルの「セルの書式設定」で「配置」を選んで
縦位置を調整する。

130 :127:livedoor06/04/02(土) 13:57:39
>>128>>129
お二人とも即レスありがとうございます。
わかりずらかったようで申し訳ありません。
自分のやりたいことは129さんのレスで解決しました。
ありがとうございました。

131 :名無しさん@そうだ選挙にいこう:livedoor06/04/02(土) 14:23:50
>>126
oDic("Hoge")と記述することで、新たなkeyである Hoge を宣言し、
""(空白)と関連付けたことになるからですよ。

宣言してない変数Hogeをいきなりマクロの中で使っても0や空白として
認識されるのと同じです。

132 :名無しさん@そうだ選挙にいこう:livedoor06/04/02(土) 14:31:19
>>131
それは分からないでもないですが、existsというプロパティ
があるにも拘らずなんのために?
そもそもitemを指定しないでkeyだけ追加されることが、add
ではkey,item両方省略できないわけで何でだろうと。
というか、なんかいいことあるんでしょうか。

dim a as integer
とするとaに値を代入しないばあい0になるのとは違うと思ったです。

まあ、そういう仕様だということなんでしょうが、仕様とするメリット
が分からないです。という疑問ですた。

133 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/02(土) 15:04:13
>>132
>dim a as integer
>とするとaに値を代入しないばあい0になるのとは違うと思ったです。

そういう意味ではない。
「代入しなくても」じゃなくて、「変数を宣言しなくても」だ。
dim a as integerを記述しなくても、aは0または空白と認識される、
といってるんだよ。

厳格な変数宣言をプログラムが肩代わりしてくれるのがメリット。
良くも悪くも「Basic」なんだよ。



134 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/02(土) 15:39:23
どなたか知恵を貸してください。
当方、Excel2003を使用しています。

VBAを利用したフォームボタンでブックの保存を行いたいのです。
そこで、ファイル名をそのブック内の特定のセルの文をそのままファイル名にしたいのですが出来ません。
(例えば、A1に「顧客リスト01」とあればファイル名を自動的に「顧客リスト01.xls」とするように)
以下は或るサイトでコピーしたもので、これを利用したいと考えています。

Sub Sample()

Const myPath As String = "C:\TEST\"

Dim myFileName As String

ChDrive myPath
ChDir myPath

myFileName = Application.GetSaveAsFilename _
(ActiveWorkbook.Name, "Excelファイル,*.xls")
If myFileName = "False" Then
Exit Sub
Else
With Application
.DisplayAlerts = False
ActiveWorkbook.SaveAs myFileName
.DisplayAlerts = True
End With
End If
End Sub

宜しくお願いします。


135 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/02(土) 15:45:14
>>134
おいおい、全然違うもの引っ張ってきたな。
特性セルの文字をファイル名にして保存するなんて
腐るほどサンプルコード転がってるからまともなもの拾ってこい。

136 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/02(土) 15:57:08
>>134
そのサンプル中で必要なのは後半だけ。
SaveAsメソッドを調べてみな。

137 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/02(土) 16:19:56
ユーザーフォームを作成する際にラベルに文字を表示するとき、
横位置の設定はTextAlignで設定できるようなのですが
縦位置の設定(上詰め下詰め等)はどこかで設定できないのでしょうか?

138 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/02(土) 17:01:52
>>102-105
で書いてあるように、チェックボックスみたいなことを、僕もしたいのですが、
右クリックでメニューがでてしまいます。

次のようにしたのですが、おかしいところがあれば、指摘してください。
ツール>マクロ>Visual Basic Editor
その後、visualu basic editorで 挿入>標準モジュール
として、>>102>>103をコピー&ペーストしました。

A列に0と入力したり、右クリックしても、いつもどおりです。
右クリックすると、メニューが出てしまいます。なぜでしょう??

versionはExcel2003です。

139 :103:livedoor6年,2005/04/02(土) 17:17:21
>>138
標準モジュールじゃダメです。
シートタブ(シートの左下でSheet1などと書かれてる部分)を
右クリックして「コードの表示」を選択してそこに貼ってください。

しかし、この程度の使い方も解らない方が、他人の書いたコードをコピペして使うのは危険です。
自分で書けないまでも、コードを見て大まかな内容と使い方が解るようでないと
悪意のあるコードを実行して泣きを見るはめになるかもしれませんよ。

140 :138:livedoor6年,2005/04/02(土) 17:30:09
>>139
どうもありがとうございます。
一応、プログラミングの経験はあります。
Sheetオブジェクトのメソッドとして、定義するってことですね。

いや、Excelって今まで使ったことなくて、この4月から、使わないといけなくなったので。。

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

141 :138:livedoor6年,2005/04/02(土) 17:35:57
あと、もしよければ、
a.NumberFormat = ChrW(9745) & ";;" & ChrW(9744)
この意味を教えてもらえませんか??
a.valueが、1なら、ChrW(9745)で、0なら、ChW(9744)ってことですよね。
真ん中の";;"って、どういう値に対するものなのでしょうか??
しかも、1、0っていう順番で定義するんですか???

もう一つ、おすすめのリファレンスってないですか?

142 :103:livedoor6年,2005/04/02(土) 18:01:55
>>141
NumberFormatはセルの表示形式を操作するプロパティ
そして表示形式の書式には「正数;負数;0値;文字列」という規則がある
つまりChrW(9745) & ";;" & ChrW(9744)は
正数 → ChrW(9745)
負数 → 表示なし
0値 → ChrW(9744)
文字列 → 指定なし
ということ。たとえば「;;;」なら、セルにどんな値を入力しても表示はしない。

このコードではセルの値は0か1なので0なら「ChrW(9744)=チェックなし」
1なら「ChrW(9745)=チェックあり」となる。
視覚的な表示のみを求めてるなら、セルに直接ChrW(9745)とChrW(9745)を
交互に入力するようにしてもいいんだが、今回は質問者が「0と1で切り替え」を求めているので
セルの値は0と1のままで、視覚効果のみチェックボックスになるように表示形式を使っただけ。


んで、オススメなんてのはここで聞くことじゃない。
とりあえずヘルプでも読み漁っておけ。
ヘルプにも金出してるんだから使わなきゃ損だよ。

143 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/02(土) 18:06:51
>>142
丁寧にありがとうございます。
ヘルプも活用してみます。ありがとうございました。

144 :134:livedoor6年,2005/04/02(土) 18:21:38
>>135 >>136
ありがとうございます。
が、サンプルコードが見つからず、SaveAsメソッドもヘルプで調べたのですが、
全くわかりませんでした。
当方、VBAは全くの初心者です。
可能であれば、希望するサンプルコードが置いてあるサイトを教えて頂けないでしょうか。


145 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/02(土) 18:34:32
>>144
Sub CommandButton1_Click()
ActiveWorksheet.SaveAs Filename:=Range("A1").Value & ".xls"
End Sub

146 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/02(土) 18:37:05
ゴメン
ActiveWorksheetじゃなくてActiveWorkbookです。

147 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/02(土) 19:36:33
>>146
これだとパスはMy Documentsになるんか?

148 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/02(土) 19:39:22
>>147
設定をいじってなければね。

149 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/02(土) 21:57:50
AからCのセルを結合し業務日報という文字を均等割付にて書き込みました。
そして下線をつけたのですが、均等割付をしているせいか
業 務 日 報
 ̄  ̄  ̄  ̄
というふうになってしまいます。
業 務 日 報
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
としたいのですが良い方法はないでしょうか?

150 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/02(土) 22:08:21
>>149
・均等割付ではなく中央揃えでスペースで字間調整
・アンダーラインではなく罫線やオートシェイプを使う

151 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/03(日) 00:20:26
abcdefg というセルの値と、hijklmnというセルの値(ハイフンは、下線のつもり)
--- --
を結合させて、別のセルに
abcdefghijklmn
--- --
という風に表示したいです。
つまり、下線の情報を持たせたまま、つなげたいのですが、いい方法はありますか??

152 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/03(日) 00:27:43
偶数行と奇数行のセルの背景を、それぞれ別の色にすることって可能ですか?

153 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/03(日) 00:32:07
http://www2.odn.ne.jp/excel/waza/cformat.html#SEC15

154 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/03(日) 02:09:48
Excelで、入力したとおりに表示するには、どういう、表示形式にすればいいんでしょうか??

最低、数値に関して、そのまま表示して欲しいです。
13.0は13.0。13は13という感じに。

155 :真夜中のさまよい人:livedoor6年,2005/04/03(日) 02:51:28
シート1上にボタンを作って、クリックしたらマクロが動くようにしているのですが
このボタンの表題が、たとえば別シート2のA1セルに書かれている文字列である
ようにすることは可能でしょうか
シート2のA1セルに「モナー」と入力→シート1のボタンの表題は「モナー」。
またシート2に戻って、今度はA1セルに「モナー」から「age」と入力し、またまたシート1に
戻ったら、ボタンの表題は「age」になってるという具合に。
ちなみに当方は、いまだにエクセル97を使用しています

156 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/03(日) 03:17:21
>>152

一番簡単な方法は、A列にでも連番振って
条件付き書式で「MOD(A1,2)=0」と設定してあげる。
あとの行はコピーすればOK。


157 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/03(日) 03:24:51
>>154

書式設定を文字列にするぐらいしか思い浮かばない。

158 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/03(日) 08:25:25
>>155
下のマクロをシート2に書く。

Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Worksheets("シート1").CommandButton1.Caption = Target.Value
End If
End Sub

159 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/03(日) 14:47:39
Webページの表をExcelXPに取り込んだのですが、
ハイパーリンクがウザくて仕方ありません。
シート単位でまとめて解除するには、どうすれば
よいのでしょうか?

160 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/03(日) 14:56:09
>>159
Sub ハイパーリンクを削除()
 Dim hoge As Hyperlink
 For Each hoge In ActiveSheet.Hyperlinks
  hoge.Delete
 Next
End Sub

161 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/03(日) 15:10:58
>>160
コードの内容がわからないのですが、出来ました。
ありがとう。

162 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/03(日) 17:54:52
>>161
ちょっと上にも書かれているけど、自分で理解できないコード
を安易に実行しないほうがいいよ。

破壊工作的なコードだったらどうするの?
実行は自分で理解してからにしな。

163 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/03(日) 20:35:09
>>162
俺は理解していないコードを実行してることのほうが多い。

164 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/04(月) 01:03:44
どなたか、お知恵をお貸しください。

Windows2000 と Office2003な職場で仕事をしています。

手書き帳票の清書→入力会社に出荷→パンチ入力会社から納品→納品されたデータを確認しDB登録
という流れのバックオフィス系の業務がメインの職場です。

上記 「→」の部分は、データの受渡しを表します。そしてそのタイミングで、受渡し件数の確認が必要です。

現状は、「→」の部分では、紙に印刷したエクセルのファイルに、ボールペンで記入して相互参照するという
時代錯誤なことをしております。時代錯誤ですしなによりも帳票を物理的に移動させなければならないという
面倒くささもあります。

これをなんとか、WEB上でやりたいと考えております。 

エクセルにこだわる必要性などないと思われるのですが、
1.セキュリティ上の制約から、mysql等、一切のDBアプリが使えない。
2.なによりも、従業員のスキルが低いので、エクセル以外使えない。
という制約から、 エクセルにこだわらざるをえません。

イメージとしては、
「エクセルでフォーマット作成→WEBで公開→ブラウザから入力&保存→一日の終わりにエクセルファイルとして出力&保存」
なんてことをイメージしております。

こういうことは、可能なのでしょうか? 可能であればどのような方法があるのでしょうか?

よろしくお願いします。

165 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/04(月) 02:05:01
Excelでセルに = で始まる式を入力すると
数式になるはずですよね。

なぜか、数式を編集したりするうちに、計算結果を表示してくれないで、
単に、数式を文字列のように表示するだけのように、なってしまいました。
一度、消して、入力しなおしても、セルの属性??が、文字としてしか認識してくれないようで、
数式として、計算してくれません。

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

166 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/04(月) 04:29:21
>>165

セルの書式を「標準」し、一度セルをアクティブにする。

167 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/04(月) 08:56:43
>>164
Webでやりとりするってことは、全世界に公開するってことですよ。
それでもいいのですか?

PCの知識のあまりない人が間にかむなら、面倒くさがらずに
紙運用がbestと思いますが。

168 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/04(月) 09:32:18
>>164
状況がよくわからない。
ブラウザから入力するのは誰?
入力代行依頼をやめるってこと?

169 :164:livedoor6年,2005/04/04(月) 10:01:29
ご回答ありがとうございます。

>>167
外部公開されていない、社内イントラ上のWEBですので、大丈夫です。
確実に大丈夫とまでは言い切れませんが、確か、アパッチの入っているサーバー自体が
グローバルIPを持っていないはずです。
現状、WEBは、マニュアル類の掲示や部署内掲示板の運用にのみ使っています

>>168
入力代行依頼はやめません。
ブラウザから入力するのは、それぞれの工程の責任者です。そしてその責任者たちは
同じフロアにおります。ただし、そのフロアが自動車工場なみに極めて広大です。
そのフロアの中を、紙に出力した管理台帳をもって行ったりきたりしているというのが、現状の運用です。




170 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/04(月) 10:22:17
社内事情をあまり晒さない方がいいよ。
ブックの操作やVBAに関してならここで聞くのもいいけど
それ以上のことは社内で解決しようね。

171 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/04(月) 10:26:48
>>169
ワークシートに直接チェック入力させれば?
入力可能なWeb形式が希望ならDBソフトは不可避だし。
このあたりはソフト屋に聞くほうがいいと思う。
具体的なデータ形式がわからないと、あいまいな回答しかできない。

172 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/04(月) 10:35:05
Webと書いてたからインターネットで使うのかと思ったら違うのかよ…
いずれにしてもDBのプログラムを使えないんじゃ話にならないと思うが。
素直に

1:入力用のフォーマットを作ったExcelファイルを作成、共有フォルダに保存
2:そのファイルを各部署の担当者が開いて入力

ってしたら?同時に複数の人間が入力するようなら、

1:マスターになるファイルを共有フォルダに保存
2:各担当者がそれをコピー。コピーしたファイルに日計データを入力。
 日計データの入ったファイルを共有フォルダに保存
3:>164なり誰かがそれぞれの日計ファイルを集計

って形にするとかさ。



173 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/04(月) 10:52:41
>>169
外部には漏れないみたいだけど、内部の人には?
責任者以外のひとはLANにさわれないの?

記入できるということは消すこともできるってこと。
素人が触ればミスでとんでもない処理をすることだってある。
それを確実に管理する自身と責任を取る覚悟がおありですか?

なければPC処理なんてやめたほうが「楽」ですよ。

174 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/04(月) 11:43:03
超初歩的な事ですいません。
グラフの凡例って、順番を並べ替える事できますか?

office2000 OSはXPの環境です。

175 :164:livedoor6年,2005/04/04(月) 11:50:47
みなさん、ありがとうございます。

私の書き方が悪かったようで、なにやら誤解を生じさせているやもしれません。
まず、エクセルに書き込む必要のあるデーターは、単に、「やり取りしたデータの件数」の数字だけです。
特殊なデータ形式のやり取りは必要ありません。ぶっちゃけ、件数がわからなくなってもなんとかなるのが実情です。


>>172氏 ご指摘の方法が、実をいうと、以前の運用でした。だた、集計記入者の作業負荷が高すぎるのと
どうしても情報のタイムラグが生じるために、現状の紙ベースの運用になりました。

>>173
イントラ上のファイルは、責任者しかさわれません。一般作業員は、WEBのみ閲覧可能です。そもそも一般作業員の
クライアントマシンは、ほぼ、シンクライアントです。 



176 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/04(月) 14:10:36
複数のシートに備品の購入したものを書いたのですが、
   A     B     C     D     
1 えんぴつ   2こ   3月12日 
2 にんじん   3こ   3月13日
3 けしごむ   4こ   3月16日



・つづく


こんな表が12枚で一年分あるのですが、実際はものすごい縦長の表で、
これを一括して集計したいのです。
sumifだと、一枚のシートしか集計できないと思ったのですが、複数の
シートにわたって集計する方法はないものでしょうか?

ご教授のほどよろしくお願い申し上げます。
4


177 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/04(月) 14:51:55
>>176
できればぐぐってから聞いてほしいなぁ。
Excel SUMIF 複数シートでぐぐって1番目のページ

ttp://www.moug.net/skillup/buef/kn003-1.htm

178 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/04(月) 14:56:45
>175
集計くらいVBA使えば労力ってほど手間はかからんような気がするけどな。
じゃなきゃ串刺し集計使うとかさ。

>176 177が書いてくれた他にも「複数 シート 集計 Excel」でググってみるとかな
ピボットテーブル萌え

179 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/04(月) 17:13:10
>>175
件数くらいなら簡単なCGIで集計可能。
結果もExcelに取り込める。
172の方法でタイムラグが出る原因が不明だけど。

180 :おながいします:livedoor6年,2005/04/04(月) 18:09:39
エクセルで『このセルがこの金額以上ならいくら割引』ってのをやりたいのですが、

たとえば
10000円以上なら1000円引き
20000円以上なら2000円引き
30000円以上なら4000円引き

みたいにする場合どういった式になるんでしょうか?

心優しい方のお返事お待ちしております。。


181 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/04(月) 18:13:53
IFをネスト

182 :おながいします:livedoor6年,2005/04/04(月) 18:30:11
ネストって方法を知らなかったのでググッて下のように書いてみましたが
見事に失敗しますた。どの変が悪いんでしょうか?

=IF([値引き前のセル]>=10000,[値引き前のセル]-1000,IF([値引き前のセル]>=20000,[値引き前のセル]-2000,IF([値引き前のセル]>=30000,[値引き前のセル]-4000,IF([値引き前のセル]>=40000,[値引き前のセル]-6000,[値引き前のセル]-0))))

183 :おながいします:livedoor6年,2005/04/04(月) 18:37:29
読みにくいんで書き直しました。。
もうセルも表記しておきます。


=IF(D79>=10000,D79-1000,
IF(D79>=20000,D79-2000,
IF(D79>=30000,D79-4000,
IF(D79>=40000,D79-6000,D79-0))))

184 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/04(月) 18:47:54
>>183
4万円でも5万円でも、最初の1万円以上という条件に引っかかっている。
順序を逆にする。

185 :おながいします:livedoor6年,2005/04/04(月) 19:05:16
出来たー!!
184の方ありがとうございました。
順序を逆にするという方法がまったく頭にありませんでした。

とても勉強になりましたです♪

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

186 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/04(月) 21:40:27
コントロールで、「クリア」と言うボタンに
コンボボックス.ListIndex = -1
というのをつけてボックスの内容をクリアしているのですが、
その後コンボボックスをクリックすると「プロパティの値が不正です」と出てしまいます。
この警告が出ないようにするには、どうすればいいでしょうか
ちなみにMatch Requied はtrue にしてないとまずいんです

187 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/04(月) 21:49:12
コンボボックス.Clear
じゃダメなの?

188 :186:livedoor6年,2005/04/04(月) 22:00:43
>>187
そうすると、「予期せぬエラーが発生しました」となって
デバック画面になってしまうのです。ビビリます

189 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/04(月) 22:15:58
>>188
(´-`).。oO( なぜそれを最初に書かないんだろう・・・ )

まあ、情報後出しにする奴には教えないのがお決まりなので以下ヌルーで

190 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/04(月) 22:45:47
>189=>187? エラーになんのはあたりまえだろw何を逆切れてるのやらwww


191 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/04(月) 22:56:03
春の妄想

192 :186:livedoor6年,2005/04/04(月) 23:38:28
>>186
これって後だしになるんですか?す、すいませんそんなつもりではなかったです。
何かお知恵をいただければと思っています。

193 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/05(火) 00:16:16
>>186
新規ブックにコンボボックス(Match Requied = True)とコマンドボタンを用意して
1.ブックOpen時にコンボにAddItem
2.コンボから適当に選択
3.ボタンClickでコンボのListIndex = -1
4.コンボを再度クリック
の手順でやってみたけど
「プロパティの値が不正です」は再現しなかったな(当方Excel2000 SP3)。
コンボボックスのClickイベントとかでListIndexを使って何か処理していないかい?
もしあるなら、その辺を見直してみては?

194 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/05(火) 00:37:10
どなたかお知恵を頂けないでしょうか。

あるExcelファイルを開いた直後は動作は普通なんですが、
同ファイルの別シートを次々表示していくと動作が急に重くなり、
セルの内容を変更するだけで10〜20秒ぐらいbusy状態になってしまいます。
重いですが、セルの変更は可能です。
Excelを終了して、再度同ファイルを開いても既に重い状態になっています。
普通の動作をするのは初回起動のみでした。
マクロ、VBAのモジュール等はありません。

OS:WindowsXP-Pro SP2
Excel:2003

どうかよろしくお願いします。


195 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/05(火) 00:55:42
>>194
変なフォント使っているとか、、、
全てのフォントをMS Pゴシックとか極普通のにしたらどうなる?

196 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/05(火) 01:58:14
ブックの共有ができなくなっている。。。
なんらかの保護はしていないのになぜだろう。。

197 :名無しさん@そうだ選挙にいこう:livedoor6年,2005/04/05(火) 02:26:11
リスト機能を使用していたためでした。

198 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 10:29:20
EXCEL2002以降でEXCEL95とかのファイルを開くと
改ページ位置がずれるのですが、
(EXCEL95では1ページにおさまる行数が2002以降ではおさまらない)
双方で同じ書式で扱うのは無理なんですかね。

199 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 11:02:56
テンプレに
「情報の後出しをするな」と付け加えてほしいなぁ

200 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 11:17:02
シ−トごとに分離して一つずつのファイルに保存できないのでしょうか?

201 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 11:21:15
すみませんが2ページ目ってどうやって設定するのですか?
こんな初歩的なこと知らないオレって、、、、orz

202 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 11:43:28
はじめまして。ご教示ください。

得意先からFAXで送られてきた内容をスキャナで読んで、
その内容に上書きしてプリントアウトして、それをFAXで送って
回答したいのですが、
そのFAXを図形で読み取った場合だと、テキストボックスの重ね方は
わかるのですが、セルというかワークシートが重ねられません。

あるいは、読み取って背景化して、そこにかさなるようにワークシートで
作業をすることも考えましたが、プリンタでズレたらばアウトなので
やっていません。

これに関して、便利な方法がありましたらご教示ください。





203 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 11:44:25
>>200
面倒臭がらずにシート一つすつ、
シート名右クリック→シートの移動・コピーで
新しいブックにコピーすればどうすか?
>>201
改ページの挿入なら行選択で挿入→改ページ
ただ単純に入力行(または枠)増やせば自然とページ増えるが?
あるページをコピーしたいなら元のページの行を全て範囲選択して
コピーする場所の行を選択して右クリック→コピーした行の挿入だが

204 :201:2005/04/05(火) 12:03:01
自己解決しました。お騒がせです(  ̄ー ̄)

205 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 12:15:09
>>203
THANK YOU!


206 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 13:07:30
御教授ください。
例えば1番上の行に四月、五月…と書いていって
下に会計を入れていく。
行がどんどん下にいって
どの列が何月だか分かりづらい!
こんなとき1番上の行を常に表示する方法
教えて下さい。

207 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 13:11:41
>>206
うーん釣り?
取りあえずその1番上の行選択してウィンドウ→ウィンドウ枠の固定で
やれっけどこれはマニュアルレベルでしょ

208 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 13:22:22
207続き
他人のこと答えてる場合じゃないですから!
誰か198教えてくれエロイ人

209 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 13:38:05
>>208
印刷の設定で頑張ってみるか文字を小さくする
あとは「EXCELだから」とあきらめる

210 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 13:41:31
>>207
釣りじゃないっす!ありがとう!
助かりました!

211 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 13:46:36
>>209
orz…あきらめるのかオイ、俺の人生こればっか
鬱だ死脳(ナツカシイ)

212 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 15:12:12
前スレの686の件ではお世話になりました。
再びで恐縮ですが686関連で質問があります。

セルA1に「=INDIRECT("B1")-INDIRECT("C1")」
という関数を設定し、以降にコピーにて
A2 「=INDIRECT("B2")-INDIRECT("C2")」
A3 「=INDIRECT("B3")-INDIRECT("C3")」
というようにしたいのですが、カーソルを引っ張っただけでは出来ません。
どのように行えば出来ますか?

213 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 15:40:11
>>212
=INDIRECT("B"&ROW())-INDIRECT("C"&ROW())

フィルコピーしても数式の内容は変わらないが、返る結果はきちんと行ごとに変わる。

214 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 16:08:35
>>212-213
しかしこれは単に
A1に=B1-C1
と入れるだけじゃないか?
別シートや別ブックの場合でも、相対参照にしとけば、セルのコピーでできるから、
あまり必要ないんじゃないの?

215 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 16:26:34
>214
絶対参照の意味が理解できてないようだな

216 :212:2005/04/05(火) 16:32:51
申し訳ありません。
例が実状にあっていませんでした。

C2 「=INDIRECT("C1")+INDIRECT("A2")-INDIRECT("B2")」
以降に
C3 「=INDIRECT("C2")+INDIRECT("A3")-INDIRECT("B3")」
C4 「=INDIRECT("C3")+INDIRECT("A4")-INDIRECT("B4")」
という感じにコピーしていきたいのですが、
どのようにすればいいのでしょうか?
重ね重ね申し訳ありませんがよろしく御願いいたします。

217 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 16:43:34
=INDIRECT("C"&ROW()-1)+INDIRECT("A"&ROW())-INDIRECT("B"&ROW())

218 :212:2005/04/05(火) 16:48:03
解決できました。
御教授ありがとうございました。

219 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 19:04:24
Excel2002を使っています。
書式設定で、日付が
2005/ 4/ 5
のように一桁だったらスペースにしたいんですが、どう指定したら
よいのでしょうか。


220 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 19:48:34
>>219
表示形式だけではでは無理だと思う。
だって表示形式の書式記号には「一桁だったら」という条件を判断できるものが無いから。
年と月のみの表示なら「yyyy/* m/」としてセル幅を調整することで
月が一桁の場合のみスペースが入ってるように見せかけることも出来るけど、
日も表示させたいなら、別セルに
=YEAR(A1)&"/"&IF(MONTH(A1)<10," "&MONTH(A1),MONTH(A1))&"/"&IF(DAY(A1)<10," "&DAY(A1),DAY(A1))
と入れるとか、VBAで↓みたいにするとか
Private Sub Worksheet_Change(ByVal Target As Range)
 If Month(Target) < 10 And Day(Target) < 10 Then
  Target.NumberFormat = "yyyy/ m/ d"
 ElseIf Month(Target) < 10 Then
  Target.NumberFormat = "yyyy/ m/d"
 ElseIf Day(Target) < 10 Then
  Target.NumberFormat = "yyyy/m/ d"
 Else
  Target.NumberFormat = "yyyy/m/d"
 End If
End If

221 :219:2005/04/05(火) 21:24:43
帰宅しました。
>>220
ありがとうございます。やはり数値の場合の#のようなものはないのですね。


222 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 21:25:42
>>215
Excelの絶対参照($A$1とか)は理解してるけど、
>>212>>216はただ相対参照したいだけのように見えるんだけど
INDIRECTを使う意味はどこにあるの?

223 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 21:48:31
>>222
絶対参照はオートフィルを使っても参照先が変化しないというだけで、
セル・列・行の挿入・削除・移動など参照先そのものの位置が変化した場合は
参照先が相対変化する。
そういう場合でも参照先が変化しないのがINDIRECTによる参照。
ただしオートフィルでコピーしても参照先が固定されるので
複数の相対変化式を使いたい場合は
ADDRESS、ROW、COLUMNまたはINDEX、OFFSETなどを使う。

これが絶対参照(絶対(固定)位置を参照する) と 固定参照(参照先を固定する)の違い。

224 :名無しさん@そうだ選挙にいこう:2005/04/05(火) 22:04:28
>>200
ttp://park11.wakwak.com/~miko/Excel_Note/02-01_hozon.htm#02-01-07

225 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 00:02:05
>>223
内容は理解しました。
どういうときに必要になるのかは、よくわからないけど。

226 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 09:29:41
瓶レスですが、>212さんは単にオートフィルで数字を増やしたいだけみたいだから
D2に '=INDIRECT("C1")+
E2に INDIRECT("A2")-
F2に INDIRECT("B2")
C2に =D2&E2&F2
と入力してオートフィル、C列コピー→値貼り付け
データ→区切り位置→完了、DEF列削除。でわ?


227 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 09:32:21
   A    B   C
1  10cm  ≧   5cm
(A1、C1はユーザ設定でcm表示させている)
を別セルに例えば&を使って結合すると、10≧5 となり、cmは
反映されません。これをうまく単位まで反映される方法はあるでしょうか。

228 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 10:32:25
>>227
ユーザー定義関数でも使えば?
.Valueで取得すると「10」になるけど
.Textで取得すれば「10cm」になる。
あとは繋げればいいだけだし。

ワークシート関数は値を取得する物なので
文字列値ですらないcmは取得されないし、
ユーザー定義の表示形式書式を取得するものも無い。
あとはそれぞれの値を10、5から10cm、5cmにするか
結合式の中で"cm"を付加するかだな。

229 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 11:13:02
質問です エクセル2000で WindowsXP上で動かして
います

文字列の検索なんですが 旨くマッチしてくれません
文字列の最後に’(シングルクオート)がある文字列
を探したいのです

セルの中にたとえば abc' や 123'' などのセルを
ピックアップしたいのですが 旨く行きません

Dim RE, strPattern As String
Set RE = CreateObject("VBScript.RegExp")
Dim r as Range

strPattern = "$'"
With RE
.Pattern = strPattern
.IgnoreCase = True
.Global = True

 If .Test(r.Value) Then
      見つけた! これだ!
   End If
END With


230 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 11:30:09
>>226
手間かけすぎ
スマートに行こうぜ

231 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 11:41:34
>>229
ttp://www.officetanaka.net/excel/vba/tips/tips38.htm
ここらへんからコード引っ張ってきたんだろうけど
全然意味理解してないみたいだね。

とりあえず末尾に ' があるセルを検索したいなら
Find("*'", , , xlWhole)
Right(.Value, 1) = "'"
で出来る。
要望のみで情報が全く書かれてないので
それ以上のことは教えられない。

232 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 11:45:35
>>229
strPattern = ".*'$"じゃないの?

233 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 12:04:48
スマートじゃないのは認めますよ。だったら
"C"&ROW()-1←これはスマートかっつー事です。
手間も大してかからない。
これが手間に思えるならもう少し訓練した方がいい。
要は最終形をいかに楽して実現するかです。

234 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 12:14:58
かわいそうな奴┐(´ー`)┌

235 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 12:26:20
>>233
操作としては>>226より遙かにスマートだろ
式入れたらオートフィルでコピーするだけだし

236 :かわいそうな奴:2005/04/06(水) 12:44:54
ここは厳しいインタネツですね


237 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 12:54:17
あんまり粘着するなよ

238 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 13:31:53
スマートな方法が常に最良とは言えんがな。
一緒に働く人たちの環境や自分のかかわり方によっては、
泥臭いやり方が最善なこともある。ケース・バイ・ケース。

239 :227:2005/04/06(水) 13:48:27
227です。228さんありがとうございます。結局
   A    B   C
1 10cm   ≧  5cm
を別セルにtext関数で10p、5pと表示させ、
&でつなげるという方法をとってみました。しかし、
text関数の表示形式で
10p(cとmでcmはなくp)ならうまくいきますが、cmで分けると
うまくいかないのと、mの単位はうまく表示させることができませんでした。
根本的にやりなおす必要があるのでしょうか。

240 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 13:49:11
227です。228さんありがとうございます。結局
   A    B   C
1 10cm   ≧  5cm
を別セルにtext関数で10p、5pと表示させ、&でつなげるという方法をとってみました。しかし、
text関数の表示形式で10p(cとmでcmはなくp)ならうまくいきますが、cmで分けるとうまくいかないのと、
mの単位はうまく表示させることができませんでした。根本的にやりなおす必要があるのでしょうか。

241 :227:2005/04/06(水) 13:56:38
ちょっと補足させてください。
text関数の表示形式に例えば#.00あや#.00a
なら反映されるのに、#.00mとか#.00cmのように入力すると
#VALUE表示になってしまいます。どうやら単位になり得る
アルファベットはNGみたいな雰囲気ですが、対処法はあるでしょうか。

242 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 13:59:52
>>240
=A1&"cm"&B1&C1&"cm"
じゃだめなの?

243 :227:2005/04/06(水) 14:08:05
>>242
ありがとうございます。
mのところはその方法でしのぎます。

244 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 14:30:45
>>241
>>228はTextプロパティを使えといってるんだと思うけど。

245 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 14:35:54
>>241
=TEXT(C1,"#.00""cm""" )

246 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 14:53:37
|←    a    →|
       |←    b    →|
. _____________
1|     c       d
2| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

このような表で、1行目は月を、2行目は日を入れて
a の範囲を表示しているときは c の位置に
b の範囲を表示しているときはd の位置に月を表示させたいのですが、
どのようにすれば良いでしょうか?
つまり↓みたいな感じです。

. ________
1|     4月
2| 1 | 2 | 3 | 4 | 5 | 6 |
    ↓横にスクロールしても月の表示位置は同じ
. ________
1|     4月
2| 4 | 5 | 6 | 7 | 8 | 9 |

1行目には「4月」などという文字を複数入れたくないので
どうかご教授ください。Excelは2002です。

247 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 15:11:30
初めて質問します。

当方、Wndows2k sp4・Excel2k sp3(VB6.0)で、VBAを使って開発しています。
(MS OfficeサイトでUpDate済み)

開発しているのは割と単純な業務支援アプリなのですが、
保存するたびに何故かファイルサイズが肥大化して困っております。

もちろん、何か編集を加えていれば当然増えるのは分かっていますが、
ブックを開いて何もせず即保存して確認してもファイルサイズが増えているのです。

増えるのは約200KB〜400KBほどですが、何度もヴァージョンを更新していくと
とんでもないファイルサイズとなり、クライアントのスペックによっては
開くだけでフリーズする恐れも考えられます。(現在550KB程度)

何かわずかな情報でもかまいません、原因や解決にお心当たりのある方
どうかアドバイスをお願いいたします。

248 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 15:31:48
>>247
すべてエクスポートしてインポートしてみれば?

249 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 15:39:53
>>246
無理

250 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 15:54:08
>>246
アクティブセル位置にラベルを追従させるとかならいいけど、
スクロールはイベントが無いからむずいな。

251 :247:2005/04/06(水) 16:58:40
>>248
アドバイス大変ありがとうございます。
さっそくやってみましたが状況は変わりませんでした。

VBA側ではなくてExcel側の問題かな?と思い、
使用している6枚のシートを順番に削除しながら保存してみましたが
これでもサイズが増えます…。
シート自体を削除しているのに、なぜでしょうか?

>>246
無理やり作るならこんな感じだと思いますが、
多分意図するものではないと思うのでご参考までに。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Select Case ActiveWindow.ScrollColumn
Case Is < 20
Cells(1, 10) = Format(Now(), "m") & "月"
Cells(1, 30) = ""
Case Else
Cells(1, 10) = ""
Cells(1, 30) = Format(Now(), "m") & "月"
End Select

End Sub

252 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 17:04:12
>>251
Wordでは差分保存にしているとどんどんファイルサイズ増えますが、
Excelには差分保存の設定ないですしねぇ。

他のファイルはどうなのですか?
Excelの問題なら、どのファイルでも同じ現象が起こると思うのですが。


253 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 17:06:27
エクセル2000です。ご伝授お願いします。

A1セルにオートシェイプが有ればB1セルに”1”を無ければ”0”を返したいのですが
特定セルにシェイプが有るのか、無いのか調べる方法ってありますか?

よろしくお願いします。

254 :247:2005/04/06(水) 17:42:47
>>253
ちょっと原始的ですが、こんな感じはどうでしょう?

Privete Sub cmdBtn1_Click() ←適当にボタン作りました

  Dim objShp As Shape

  For Each objShp In Sheet1.Shapes 'そのシェイプが存在するかどうかのループ
    If objShp.Name = "シェイプ名" Then '存在したとき
      If ActiveSheet.Shapes("シェイプ名").Top = 0 And _
        ActiveSheet.Shapes("シェイプ名").Left = 0 Then '例)セルA1の左上端の座標
        Range("B1") = 1 'セルB1に1を入れる
        Exit Sub
      End If
    End If
  Next
  Range("B1") = 0

End Sub


>>252
他のブックで同様の操作(開いて何もせず保存、即閉じる)をしたところ、
 ・マクロありブック → サイズの変動あり
 ・マクロなしブック → サイズの変動なし
となりました。時間もなかったのでサンプル数は少なめですが…。

ちなみにマクロありブックでは、逆にサイズが減ったブックもありました!
いよいよ私には不可解になって参りました。

とりあえず更新内容は、エディタでコーディングして保存しておき、
ブック自体を更新させないようにしておくことで緊急回避しています。

255 :247:2005/04/06(水) 17:44:29
×Privete Sub → ○Private Sub
ヤッチマッタ…

256 :227:2005/04/06(水) 18:04:44
>>245
ありがとうございます。解決しました。

257 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 20:48:08
WinXP上でOfficeXPでエクセルを用いてグラフを作成しております。

これまで、グラフ作成ののち、プロットエリアの書式設定、目盛り線の書式設定、
凡例マーカーの書式設定などでグラフの書式を変更してきました。
グラフの作成後にこうした作業をひとつひとつ繰り返すのは若干面倒なので、
事前に何らかの方法でこうした設定はできないものでしょうか。

258 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 21:09:31
設定済みのグラフをアクティブにし、
グラフの種類>ユーザー設定>ユーザー定義>標準 で登録すると良いよ。

259 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 21:31:30
お願いします。WinXP、OfficeXP、Excel2002です。


GETPIVOTDATA関数を使い、ピボットテーブルのフィールドごとの総計を
取得しようとして、フィールド・アイテムを一つだけ指定したのですが#REF!
が出てしまいます。(2つ目の行フィールドだけを指定したせいでしょうか)
[GETPIVOTDATA("金額",SHEET1!$A$3,SHEET1!$B$4,"三月")]?→#REF!

ピボットテーブルに総計を表示させて、それをアイテムとして指定しようにも、
フィールド名にセル参照を使ってるのでどうしたものか見当がつきません
[GETPIVOTDATA("金額",SHEET1!$A$3,SHEET1!$B$4,SHEET1!$B$4+" の合計")]?→#REF!

なんとか、ピボットテーブルのフィールド2の総計を取得したいのです。
同データを元にした別のピボットテーブルを作って、行を一つに減らすことを
考えましたが、ページフィールドを一括管理したいのでできればこれはさけたいです。

260 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 22:22:35
>>259
値を表示したいセルをクリックして「=」だけ入力し、
そのままピボットテーブル内の取得したいセルをクリック。
…であかんの?
GETPIVOTDATAは、それ以外の方法で使ったことない。

261 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 22:29:18
>>251
新しいブックにインポートするんよ。

262 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 22:39:34
>連続するデータ入力についてです。
>「1,3」と入力して下へドラッグすると「5,7,9」と連続データが入力されるし
>「第1章、第3章」を下へドラッグしても「第5章、第7章」となります。

>それなのに「=債権者一覧表!B3、=債権者一覧表!B5」を下へドラッグすると
>「=債権者一覧表!B5、=債権者一覧表!B7」となってしまい
>同じような「3,5,7,9・・・」というような連続データができません。
>いちいち入力していかないといけないんでしょうか?
>やり方がわかる方いらっしゃれば教えていただけませんか、お願いします。

誘導されてきました。
職場のPCで、多分EXCEL2002の前のバージョンだと思うのですが
どうぞよろしくお願いします。

263 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 22:51:07
>>262
「"=債権者一覧表!B3、"=債権者一覧表!B5」

置換「"= → =」


264 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 23:00:46
>>263
!!!
できました!!
目から鱗です、どうもありがとうございましたヽ(´∇`*)ノワーイワーイワーイ
明日が楽しみです♪

265 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 23:02:00
>>262
え?
当然ですけど、、、
数式とデータでは違いますよ。

266 :257:2005/04/06(水) 23:06:55
>>258
神降臨!!できますた。ありがとうございます。これでグラフ作成が楽になります。

267 :名無しさん@そうだ選挙にいこう:2005/04/06(水) 23:26:47
>>265
何もわかっていなくてすみません。
>>263以外の方法もあるんでしょうか?

268 :259:2005/04/07(木) 00:18:52
>>260
・・‥考えつきませんでした。ありがとうございます、明日試してみますね。

269 :パニクリ:2005/04/07(木) 10:48:57
エクセルのVBEを起動しようとするとEXCELのページ違反です
モジュール VBE6で強制終了します
OSはwindows98でoffice2000premium
オフィスの再インストールを行いましたが直りませんでした
対処方法を知っている方がいたらお願いします

270 :名無しさん@そうだ選挙にいこう:2005/04/07(木) 11:00:57
>>269
新規ブックでVBE立ち上げても?

271 :名無しさん@そうだ選挙にいこう:2005/04/07(木) 14:10:15
http://j-sound.k1.xrea.com/vmelo/melo/no127.zip

2005/5/1分だけの数の合計の出し方、計算式教えて下さい


272 :名無しさん@そうだ選挙にいこう:2005/04/07(木) 14:21:27
>>271
=SUMIF(A2:A10,DATE(2005,5,1),B2:B10)

273 :パニクリ:2005/04/07(木) 14:48:39
>>270
新規ブックでもなります

274 :名無しさん@そうだ選挙にいこう:2005/04/07(木) 15:21:50
WINXP,2003です。
17年度のある日の勤務時間と16年度の同じ日の時間の差を求めたいのです。
シート17---A1には20時間
シート16---A1には23時間30分が入っているとします。
='17'!A1-'16'!A1
で-2:30と表示させたいのですが。#####になってしまいます。
IF(("'17'!A1-'16'!A1")>=0,'17'!A1-'16'!A1,"-ABS('17'!A1-'16'!A1)")でも
だめですし…。文字としてのマイナス記号のあとに時刻の絶対値がつづけば
表面上は体裁がととのうかと思いましたがダメでした。
セルの書式は出来るだけどのPCに持っていってもいいように、ユーザー
定義を使わなければそれにこしたことはありません。
どなたかお知恵を授けてください。お願いします。

275 :名無しさん@そうだ選挙にいこう:2005/04/07(木) 15:35:04
>>274
=IF('17'!A1>'16'!A1,TEXT('17'!A1-'16'!A1,"h:mm"),"-"&TEXT('16'!A1-'17'!A1,"h:mm"))


276 :名無しさん@そうだ選挙にいこう:2005/04/07(木) 15:41:18
>>272サンクス

すいません追加です
日付   名前 数
2005/5/1 Aさん 1
2005/5/1 Bさん 2
2005/5/1 Cさん 3
2005/5/1 Aさん 4
2005/5/1 Aさん 5
2005/5/6 Bさん 6
2005/5/7 Bさん 7
2005/5/8 Bさん 8
2005/5/9 Bさん 9

すいません追加です。
2005/5/1分のAさん
      Bさん
      Cさんのそれぞれの合計はどうすればよいでしょうか?
日付を打ったら自動でA,B,Cの合計が出るようにしたいです。

また教えて下さい  
http://j-sound.k1.xrea.com/vmelo/melo/no128.zip

277 :274:2005/04/07(木) 15:44:59
>>275
神!助かりました。
今度はその結果を計算してみたいと思いますが、データ形式を変換すれば
できそうな予感がしてきました。
本当にありがとうございました>>275さんにいいことがありますように!


278 :272,275:2005/04/07(木) 16:16:49
>>276
そういうことは最初に書こうよ。
条件が2つになると配列数式使わないとならないので
=SUM(IF(A2:A10=DATE(2005,5,1),IF(B2:B10="Aさん",C2:C10,0),0))
これを入力してCtrl+Shift+Enter。数式が { } で囲われればOK。

「日付を打ったら自動で」としたいなら、日付の部分である「DATE(2005,5,1)」を
実数ではなく参照にすればいいだけ。
名前の部分も参照にしてもいいし、あとはお好きなように。

279 :名無しさん@そうだ選挙にいこう:2005/04/07(木) 16:26:18
>>273
メニューの「ヘルプ」→「アプリケーションの自動修復」はやってみた?
それでも駄目なら
1.Office2000をアンインストール
2.アンインストール後に
  <インストールしたドライブ>:\Program Files\Microsoft Officeと
  <インストールしたドライブ>::\Program Files\Common Files\Microsoft Shared\VBA\VBA6
  が残っていたら削除
3.再インストール
でやってみたら?

280 :パニクリ:2005/04/07(木) 18:59:28
>>279
ダメでした

281 :名無しさん@そうだ選挙にいこう:2005/04/07(木) 19:25:24
>>280
うーん、正直お手上げ。
識者の登場を待つしかないっすね。
自分ならOS再インストールするけど…

282 :247:2005/04/07(木) 19:30:34
>>261
大変遅くなりました。

エクスポートしていたら、あることに気づきました。
1つのVisual Basic Form Binary File(.frx)が
ファイルサイズのほとんどを占めるサイズになっておりました。

このバイナリファイルを使用するフォームは、いたって普通の作り方だと思うのですが
他のフォームと違う点を挙げるとすれば、FlexGrid6.0を使用しているだけです。

どのファイルかは突き止めたものの、解決策まで思いつかず未だに困っております。
バイナリファイルをスリム化させる方法や、別のものと差し替える方法などないのでしょうか?

どうかご教授くださいませ。

283 :259=268:2005/04/07(木) 21:49:43
報告です。

>>260
すいません、やってみましたが関数の指定がおかしなことになって駄目でした。
今ははINDEX関数で無理矢理気味に指定して何とかしてます。(今日思いついたんですよ)
[ INDEX(ピボットテーブル,MATCH(CONCATENATE(フィールド2," 合計"),ピボットテーブル!$B:$B),MATCH("総計",ピボットテーブル!$4:$4)) ]

284 :名無しさん@そうだ選挙にいこう:2005/04/07(木) 22:06:44
質問です。
EXCEL2002を使っているのですが、
個人用マクロブックにマクロを新規登録しようとすると
「起動フォルダにある個人用マクロブックは、記録のために開かれた状態でなければなりません。」→「記録できません」
というメッセージが出て、登録できません。

personal.xlsを一旦削除すると登録できるのですが、保存して終了後再度エクセルを起動すると
使用できるマクロには個人用マクロが表示されず、また新規登録しようとすると上記のメッセージがまた出てしまいます。
このスレの過去ログを調べたら、
「エクセルがpersonal.xlsのパスを忘れてしまっていたので、ファイル名を指定したら直った」
なるものを見つけたのですが、何をどうしたらいいのかさっぱり分かりません。どうか教えてください。

285 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 03:54:26
他人が作ったexcelデータファイルを貰いました。
そして、そのexcelデータファイルの中にボタンが使われていて、
邪魔なのでそのボタンを消したいのですが、ボタンの消し方がわかりません。

ボタンの上で右クリックしてみたり、
ボタンを選択してdelキーを押したりしましたが、
全然消えません。
これはmicrosoftの嫌がらせかなんかですか?

286 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 05:45:39
>>285

いまいちよく解らないけど、オートフィルタなら
ツールバーの「データ」→「フィルタ」の
オートフィルタのチェックを外せば消えるはず。
コマンドボタンとかだったら右クリックして
切り取りで消せるはず。
後者に関しては削除後、動作の保証はできないけどね。
あとヴァージョンによって多少の表記の違いがあるかもしれないことを
頭の片隅においといてね。

287 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 05:47:42
連続カキコですみません。

あと、シートの保護とかされているから削除できないのかも。

288 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 10:22:38
日付 名前 数
2005/5/1 Aさん 1
2005/5/1 Bさん 2
2005/5/1 Cさん 3
2005/5/1 Aさん 4
2005/5/1 Aさん 5
2005/5/6 Bさん 6
2005/5/7 Bさん 7
2005/5/8 Bさん 8
2005/5/9 Bさん 9


2005/5/1Aさん 数の合計
2005/5/1Bさん 数の合計
2005/5/1Cさん 数の合計
それぞれの条件での数の合計を出すにはどんな計算式が必要ですか?
http://j-sound.k1.xrea.com/vmelo/melo/no129.zip

289 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 10:33:33
>>288
>>278

290 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 10:36:18
>>289


>>278の実数ではなく参照の意味がわかりません

291 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 10:42:26
>>290
書かれている通り配列数式という使い方。
278のやり方で入力していろいろ試してみるとか、
ヘルプで「配列数式」を引いてみるとかしてください。

292 :272,278:2005/04/08(金) 10:43:24
>>288
C13をクリック → 数式バーをクリック
=SUM(IF(A2:A10=$A$13,IF(B2:B10=B13,C2:C10,0),0)) を張り付け
CtrlキーとShiftキーを押しながらEnterキーを押す
C13セルの黒枠の右下の点をC15の位置までドラッグ

すべての式が
{=SUM(IF(A2:A10=$A$13,IF(B2:B10=B13,C2:C10,0),0))}
のように { } で囲われてればOK。

つーか、解らないことがあるなら>>288の時点で書こうよ。
回答付けてるのに無視して催促質問されるとかなり傷つく・・・_| ̄|○

293 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 10:48:22
>>292
すいません
解決しました
ありがとうございました

294 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 11:28:06
横に長い表を折り返して一枚に印刷したいのですが
どのようにすればよいでしょう?

295 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 11:30:58
ここで質問していいものかわからないけど、
IE上にあるアドレスからExcelを直接開くと、Excelが立ち上がらずに、
ブラウザ上で立ちあがるよね?
で、上がってきた時に、マクロが入ってるとエラーが出るんですよ。
どなたか、IE上で立ち上がるExcelと通常起動のExcelの違いとか
分かる方いらっしゃいますか?

296 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 11:34:05
>>294
カメラ

>>295
日本語でよろしく

297 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 11:44:47
>>292

一つ質問ですが
{ } で囲む意味は何なのでしょうか?

298 :272,278:2005/04/08(金) 11:48:37
>>297
{ } で囲うことに意味があるんじゃなくて。
配列数式として扱われてることの証明として { } が付加されるだけの話。
ただ単に { } で囲っただけでは文字列扱いになってしまう。

299 :295:2005/04/08(金) 11:48:41
IE上のリンクでExcelを立ち上げようとすると、ExcelがIE上で
立ち上がると思います。
そのとき、マクロが入ったExcelを立ち上げようとすると、
一部の命令がエラーになりました。
上記のような、IE上でExcelが起動された際の通常起動のExcelとの
違い(制限?)をどなたかご存知ないでしょうか?


300 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 11:54:36
>>299
マイクロソフトが知ってるよ。
IE(Windows)もExcelも金払って購入したんだから
きちんとMSにサポートしてもらいな。

301 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 11:57:12
>>300
やっぱり、そっちの方が早いですかね・・・

すみませんでした

302 :285:2005/04/08(金) 12:06:30
>>286-287
レスありがとうんこ。

ボタンは、オートフィルタじゃなくて「データ初期化」と書かれているボタンで、ボタンを押すアクションも出来ました。
あと、シートの保護とかはかかってないみたいでした。

303 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 13:05:33
>>300
すみません、MSに回答を求めると
大体何日くらい返答に掛かりますか?

304 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 13:14:40
質問です。
Excelの関数の中に、文字列をコピーするという関数はありますか?
Excelで伝票を発行する際に、発行した内容をコピーしておきたいと思っています。
ただ、入力するフィールドは決まっており、伝票を発行したら、内容をクリアして
また次の…となるので、手間になってしまいます。
ネットで関数一覧を見てみましたが、見つかりませんでした。


305 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 13:17:09
>>303
MSに聞いてください

306 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 13:20:03
>>304
日本語で具体的に要望を書いてください。

ちなみにワークシート関数は、関数を入れたセルに値を返す以上のことは出来ません。

307 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 13:22:48
>>305
それ聞くだけで、1インシデント取られたりしてorz

308 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 14:01:04
初歩的な事で質問ですがお願い致します。
CEILING関数またはROUNDUP関数を用いて、
小数点以下を切り上げて整数にしたいのですが、
少し問題が起こって困っています。

まず元のデータを、入力した割合で計算させます。
(下は不具合が出てる部分の実際の数字)
    A     B    C     D
1|1,320,000|4.2%|55,440| ?

(C1はA1×B1を計算させてます。)
ここでD1に、CEILING(C1,1)を入力すると、
何故か55,441が返ってきます。
C1に、実数で55,440を入力すると、
当然D1は55,440を返すのですが。

どうしてこのような現象が起こるのでしょうか。
また、どうすれば回避出来ますか?
当方Excel 2000です。

309 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 14:08:41
>304
コピーして保存しときたいセルが決まってるならマクロで
コピー→別シートに貼り付け(値のみ貼り付け)すればいいのでは。
ついでにコピペが終わったら元のシートの入力用のセルの値を
クリアするとこまでマクロにいれればラクだろうに。


310 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 14:37:42
質問です。

OSはXPでExcel2000を使っているのですが、確かエクセルってセルに直接URLを打ち込むと
勝手にハイパーリンクに変換される筈なんですが、WWWだと変換されるのにhttpだと何故か
変換されないんですけど何でなんでしょう?

XPとの相性問題のせいでしょうか?
HPチェック用の一覧表がわりに使いたいもので不便で仕方が無いのですが・・・

311 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 14:41:14
>>310
ツール >オプション > スペルチェック > オートコレクトオプション

312 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 14:43:12
>>308
自分の環境では55,440が返ってきたけど(Excel2000 SP3)

313 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 14:51:16
>>312
あぁっ!すみません。少し状況が間違っていました。
実際には、B1の値が95.8%で、
C1の計算がA1×(1-B1)となっています。
この状態だと上記のような現象が起こると思います。

314 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 14:51:19
>>310
自分の環境では55,440が返ってきたけど(WinXP SP1a、Excel2002 SP3)

315 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 14:58:42
>>313
「Excel 浮動小数点」でググれ。

316 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 15:02:00
>>313
C1の表示形式を数値にして小数点以下の桁数を10桁にすれば理由がわかるよ

317 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 15:07:39
>>313
Excel内部の数値計算の誤差によるもの。
95.8%とかの割り切れてるんだか何だか分からないような数字を使って計算して、
かけ算の答えが整数にならないと文句を言うのは筋違いだと思う。

318 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 15:08:12
>>315-316
ありがとうございました!仕事の書類で少し急いでいたので助かります。
(1-B1)自体の端数をCEILING関数で整えたら改善することが出来ました!
実際にはもっと複雑な数式で(初心者の私にとっては、ですが)、
IFをつかったり、データをインポートしたりと、いろいろやっているので、
どこがおかしいのかもわからなかったんです。
本当にありがとうございました。

319 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 15:20:02
>>311
やってみたけど駄目でした・・・・・・というか、「半角英数」で打ち込むと認識するのですが
「直接入力」だと駄目なんですよね。

理解不可能です・・・・・

直接入力でも、wwwで始まるものはちゃんと認識するんですよ。
アドレスなんてコピーしたものを貼り付けるのではなければ、面倒でやらないだろうに、コピー
して張り付けたものは直接入力扱いみたいだし・・・・

なんかわけわかりませんよ本当。

320 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 15:21:44
いっその事、ハイパーリンクを張ろうかと思ったら、ハイパーリンクの入力画面では
右クリックも貼り付けも出来ない仕様だし・・・・・・

舐め天の課と。

321 :304:2005/04/08(金) 15:37:58
>>309
一度、それを試したのですが、新しいデータを次の行に
コピーするところで詰まってしまいました。
コピー元が同じでコピー先は1行ずつ下へずれる感じです。
単純にマクロの記録だけでできると良いのですが…。


322 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 15:51:03
>>321
行挿入してペーストすれば?

新しいのが上に来てしまうが

323 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 16:30:38
範囲内でのグループ化した件数を取得したいのですが
ワークシート関数で実現出来ますか?

11
11
22
22
33
44
44

↑を 4 と取得したいです。

SQL で表現すれば、
select count(*) from range(hoge) group by range(hoge)
ってな感じです。


324 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 16:42:51
>>323
データがソートされてるなら
{=SUM(IF(A1:A6=A2:A7,1,0))+1}
とかで4を取得できるけど。

あとはユーザー定義関数を使うとか

325 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 20:05:47
>321

>新しいデータを次の行に
>コピーするところで詰まってしまいました。
意味がわからん。次の行にペーストするところで、の間違いか?
マクロの記録だけで無理なら、マクロの記録で書かれたVBAのコードを見て
いろいろ勉強して修正すればいいだろ。

326 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 20:44:31
If文の2重構造の書き方を教えてちょ♥

If hage=0 Then
  If hoge=0 Then

  Else
  End If

Else
End If

で委員ですか?

327 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 21:04:19
>>326
別に問題はないけど、Elseの処理が必要無いなら
If hage=0 Then
 If hoge=0 Then
  処理
 End If
 処理
End If
とか、2つの条件を満たしてる場合のみ処理するなら
If hoge=0 and huga=0 Then
 処理
End If
とか
If hoge=0 and huga=0 Then 処理
みたいな感じでもOKだよ。
あとはヘルプなりWebの解説なり読んで勉強しよう。

328 :323:2005/04/08(金) 21:29:43
>>324
なるほど!!

データはソートされてます。
ありがとう、ございました。

329 :326:2005/04/08(金) 21:57:01
>>327
d!

330 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 22:54:25
ピボットでは、登場しない項目を集計できませんよね

a 1
a 2
b 1
c 2
b 1

とかだと
 1 2
a 1 1
b 2
c  1

とかなるけど、登場しないけど0とか3とかdとかもテーブルにして欲しい時はどうしたらいいですか?
 0 1 2 3
a  1 1
b  2
c   1
d

みたくにしたいです

331 :名無しさん@そうだ選挙にいこう:2005/04/08(金) 23:12:02
>>330
フィールドを右クリック→「フィールドの設定」→[データの存在しないアイテムを表示する]をオンに


332 :名無しさん@そうだ選挙にいこう:2005/04/09(土) 01:07:09
自分は330じゃないけど、330のデータの場合「データのないアイテムを表示する」を使うのは
無理じゃないか?
自分とこでもためしにやってみたら、月日ならその方法で補完されるけど
330のようなデータだと補完されなかったんだけど(Excel2003)。俺のやり方に問題があるのか?

自分なら表示用に0やDの行を入れる。

333 :331:2005/04/09(土) 01:11:21
あ、意味読み違えてたスマソ>>330 >>332

334 :330:2005/04/09(土) 07:29:25
>>332さん、表示用に入れるというのをもう少し説明してくれませんか?
a 0とかd 0とかを入れるということですか?でもそれだと表に集計されてしまうと思うんです

335 :332:2005/04/09(土) 08:02:28
>334
仮に>330で出してる例が販売レポートみたいなもので、
A列=科目 B列=商品コードなんだったら、
C列に販売数を入れて、実態のあるレコードの行に1を入れる、

んで、表の最初か最後にA列にa,b,c,dの値を入れた行を挿入、
それぞれのB列に0,1,2,3を入れる。

それでピボットテーブル作るときに列側にA、行側にB、
集計するレコードにCを入れる。
集計の方法はレコードの個数でも合計でもいい。

A列   B列     C列
科目  商品コード 販売数
a     0       
b     1
c     2
d     3
a     1     1
a     2     1
b     1     1
c     2     1
b     1     1

スマートじゃないけど、自分の求める表が簡単に欲しいなら自分ならこうするだけ。
もっと楽でスマートな方法があれば別の方法をつかう。

336 :330:2005/04/09(土) 20:29:06
なるほど!よくわかりました
項目数を数えるための列をもうひとつ用意するのか〜
表示しないようにしたら表面上変わらないですね

337 :名無しさん@そうだ選挙にいこう:2005/04/09(土) 22:13:41
質問ですが
エクセル2003で
行列を入れ替えてリンク貼り付けできないでしょうか?


338 :名無しさん@そうだ選挙にいこう:2005/04/09(土) 22:20:24
できる

339 :名無しさん@そうだ選挙にいこう:2005/04/09(土) 22:23:33
どうやればいいですか?

340 :名無しさん@そうだ選挙にいこう:2005/04/09(土) 22:27:29
できるって単なる願望とか妄想ですよ w

341 :名無しさん@そうだ選挙にいこう:2005/04/09(土) 22:33:19
やっぱ無理ですかねー
ヤフーで検索したら
「嫉妬されるほどエクセルが上手くなる222の技」って本の目次に
行列を入れ替えてリンク貼り付け って項目があったので
もしやできるのかと思ったんですが...



342 :名無しさん@そうだ選挙にいこう:2005/04/09(土) 22:48:53
あえてやるなら、まずリンク貼り付けをする。
それから貼り付け先を選択してコピー。
形式を選択してコピーで、行列の入れ替えにチェックを入れて
数式をコピー。

行列の縦横の数が一致していないとできない。

343 :名無しさん@そうだ選挙にいこう:2005/04/09(土) 23:06:18
すいません
形式を選択してコピーってどうやるんですか?
コピーじゃなくて貼り付けでしょうか?
一応貼り付けでやったんですが
リンクもとの数値を書き換えても
反映されないんですが


344 :名無しさん@そうだ選挙にいこう:2005/04/09(土) 23:23:40
http://weather.crc.co.jp/weatherchart/src/0501_47409.htmをエクセルに
コピーペーストすると天気の気温が-1.0/-2.0のように頭に-がつくところだけ
かってに=-1.0/-2.0と=が入った計算式となり
0.5となってしまいます。
WEBのデータをそのままとるにはどうすればいいでしょうか


345 :名無しさん@そうだ選挙にいこう:2005/04/09(土) 23:28:26
貼り付ける前に、準備段階で貼り付け先の書式を文字列に変更しておく、とか。

346 :名無しさん@そうだ選挙にいこう:2005/04/09(土) 23:31:01
貼り付けたら、該当箇所の"="を""に置換。

347 :名無しさん@そうだ選挙にいこう:2005/04/09(土) 23:43:08
どうもありがとうございます
1 "="を""に置換はできました。が、
2 あらかじめ書式を文字列にするやりかたがうまくいきませんでした。
最終的にはクエリの編集でデータの更新ボタンで1アクションで取り込みたいので
2がうまくいってほしいんですけど。

348 :名無しさん@そうだ選挙にいこう:2005/04/09(土) 23:58:59
>>343
Book Aがリンク元
Book Bがリンク先とする。

AをBに「リンク貼り付け」する。
Bの表をコピーしてそれから)右クリックをして「形式を選択
して貼り付け」を選ぶ。
(別の場所に貼り付けないと駄目のようだ)
そして、「数式」をチェック、更に下のほうにある「行列を入れ替える」
にもチェックしてからOKする。

結果は単に数式をしこしこリンクさせたものとなるだけだが、
作業は楽になる。

349 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 00:05:55
>>347
クエリで取り込んで置換で=を取るマクロを登録すればよし

350 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 00:28:02
>347
webクエリ使って取り込むんだったら文字列に指定云々は無理っぽかったね。スマソ。
自分も>349の置換をマクロでやるのに賛成。
WebクエリをRefreshした直後に置換させるマクロ組んでボタンに割り当てるか、
Worksheet_SelectionChangeで処理させるとか。

351 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 00:50:43
347です
置換をマクロの記述は知らないのでマクロの記録でしてみました。
ボタンの登録も今はじめてできました。
これならなんとかいけそうです。VBAはまるでわかりませんが
Worksheet_SelectionChangeの意味をちょっと調べてみました。 
今回はこのやりかたはあきらめます。だいぶ助かりました
ありがとうございます




352 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 02:24:45
テキストエディタにある一覧表のデータを
Excelにまるごとコピーしたら、
行ごとにすべてが一列に丸め込まれてしまいました。

1 69.891 SG 8.609^SG 8.688^SG 8.469^SF 8.109^SE 9.047 SI 7.859^SD 9.453 SJ 9.657 A 19 05.04.08
2 72.125 SI 8.360^SF 8.281^SF 9.750 A 9.188 SI 9.000 SI 9.468 SJ 9.610 A 8.468^SF 13 05.04.09
3 73.422 SI 11.047 C 7.890^SD 8.266^SF 10.344 B 9.047 SI 8.921 SH 9.344 SJ 8.563^SG 14 05.04.06
3 73.422 SI 9.391 SJ 9.156 SI 9.250 SJ 8.344^SF 9.406 SJ 9.125 SI 9.438 SJ 9.312 SJ 9 05.04.09
5 73.438 SI 9.719 A 9.313 SJ 8.078^SE 8.937 SH 8.000^SE 8.860 SH 10.000 B 10.531 B 19 05.04.06
6 73.734 SI 8.343^SF 9.297 SJ 10.641 B 8.625^SG 8.469^SF 8.781 SH 10.000 B 9.578 A 6 05.04.09
7 73.937 SI 8.375^SF 9.516 A 8.984 SH 8.828 SH 9.672 A 10.344 B 8.953 SH 9.265 SJ 13 05.04.09
8 73.953 SI 10.109 B 8.016^SE 9.609 A 9.500 A 10.328 B 7.875^SD 9.281 SJ 9.235 SI 13 05.04.09
9 74.000 SJ 9.625 A 7.703^SC 8.203^SE 8.359^SF 9.563 A 10.500 B 10.406 B 9.641 A 12 05.04.08
10 74.063 SJ 9.188 SI 8.719^SG 10.031 B 8.547^SG 9.765 A 8.782 SH 9.859 A 9.172 SI 21 05.04.09
11 74.157 SJ 8.000^SE 10.422 B 7.625^SC 11.203 C 9.766 A 9.500 A 9.312 SJ 8.329^SF 13 05.04.08
・・・

こんな感じのデータなんですけど、
スペースごとに、セルを変えて一気に入力することは可能でしょうか?

353 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 02:31:19
>>352
メニューバー、データ→区切り位置

354 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 02:47:09
スペース区切りのデータならCSVとして扱えるから
メニューから [ファイル] -> [開く] でスペース区切りとして開くべし

355 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 03:14:10
>>354
スペース区切りはprnね。
タブ区切りがtsvでカンマ区切りがcsv

356 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 03:15:23
おおっ、できました!
>>353 >>354 >>355
ありがとうございました。

357 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 03:26:37
オートフィルで、質問!

1   1
2   2
    3
    4

    ↑は出来るんですが、

1   1
1   1
2   2
2   2
    3
    3
    4
    4

    ↑は出来ないんですか?

358 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 03:57:28
>>357
1
空欄
2
空欄

このA1:A4の4セルを選択してA7までフィルコピー
A1:A7を選択してコピー、A2を選択して形式を指定して張り付け
「□空白セルを無視する」にチェックを入れるか演算を「○加算」にして[OK]

1
1
=A1+1

A3を選択してフィルコピー
フィルコピーした範囲を選択してコピー→値の張り付け

359 :1/2:2005/04/10(日) 20:33:14
Excel 2000(XP)です。

A(日付) B(分類) C(社名) D(電話番号)の入ったデータを使って名簿を作成したいのですが、
重複するデータを削除する方法を教えてください。

・D(電話番号)が同一の場合のみ重複と判定(社名が同じでも電話番号が違えば別データ)
・元のデータは1行目からデータです
・名簿は一行目をタイトル行にしたいです


元のデータ

A列B列C列D列
4/7○A社111-1111 ←(1行目データ)
4/8△B社222-2222
4/6□C社333-3333
4/5△B社222-2222
4/8△B社444-4444
4/9○A社111-1111

360 :2/2:2005/04/10(日) 20:33:38
名簿

A列B列C列D列

日付分類社名電話番号 ←(1行目タイトル行)
4/7○A社111-1111
4/8△B社222-2222
4/6□C社333-3333
4/8△B社444-4444

よろしくお願いします。

361 :359:2005/04/10(日) 20:36:58
すみません、なんか見にくいですね。
もう一度書きます。

A列  B列  C列  D列
4/7  ○   A社  111-1111 ←(1行目データ)
4/8  △   B社  222-2222
4/6  □   C社  333-3333
4/5  △   B社  222-2222

362 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 21:43:20
>>348
よくわかりませんでしたが
違うやり方でできました。

363 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 21:45:38
その違うやり方ってやつをスレ住人にも教えなさい

364 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 22:03:15
>>359
社名の重複は許すってこと?
B列、C列、D列のうちひとつでも違う場合は残したいってこと?

ワークシート関数でできるかなぁ。
マクロ使ったらかんたんだけどね。


365 :359:2005/04/10(日) 22:21:55
>>364

おお、レスありがとうございます。

>社名の重複は許すってこと?

はい。
社名は支店名が省略されている場合などがあり、同じ社名なのだけれど実は違う会社ということがあるので、電話番号(D列の違い)で判断したいです。
よろしくお願いしますm(。_。;))m ペコペコ…



366 :359:2005/04/10(日) 22:25:18
>>364
>マクロ使ったらかんたんだけどね。

そうなんですか?
教えていただけると嬉しいです。

367 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 22:32:48

CSVファイルから必要な数値だけを、
あらかじめエクセルで作った表に現すにはどうするんですか?
師匠方、教えてください!

368 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 22:39:49
>>366
自動でばんばん削除したいのか、重複データに印をつけて
手動で削除したいのか。

369 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 22:42:14
>>367
マクロで読み込んで表に配置させる

370 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 22:48:50
>>367
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_020.html

371 :359:2005/04/10(日) 22:55:11
>>368

自動でばんばん削除したいです!


372 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 23:08:30
>>371
なら、
1) D列でソート
2) D列を上から順番に、一つしたのセルと同じなら行削除
  というマクロ
でやればいいんでないの?

2)の部分は


dim i as integer
i=1
while cells(i,4)<>""
if cells(i,4)=cells(i+1,4) then
rows(i+1).delete
end if
i=i+1
wend

つう感じでいいでしょ。
(試してないからどっか間違ってるかもしれないが w)

373 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 23:09:08
>>363
リンク元をコピーして
行列を変えて張りつけて
transpose関数を使って
ってかんじで


374 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 23:27:08
エクセルでスクロールする時、
セルが大きいと、いっきにスクロールしてしまい何かと不便です。
セルの影響を受けずにスムーズにスクロールする方法はありますか?

375 :359:2005/04/10(日) 23:35:57
>>372
>(試してないからどっか間違ってるかもしれないが w)

なぜか一度では削除できず1回実行する毎にデータが少なくなっていき
5〜6回マクロを実行すると重複がなくなりましたw

今まで手作業で消すのに時間がかかっていましたが、これでかなり作
業時間を短縮することが出来ます。すんごい便利だー。
どうもありがとうございました。


376 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 23:42:54
質問があります。
XP Excel 2000 2002

ユーザーフォームで最小化、最大化といったことは、出来るのでしょうか?
ヘルプを見ると(勘違いかもしれませんが)それらしい事が、書いてあります。
もし出来るとしたら、どのように、するのでしょうか?

よろしくお願いします。

377 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 23:45:20
>>375
ああ、重複データが最大2つしかない前提で作ったから w

378 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 23:48:27
>>375
試してないけど。
dim i as integer
i=1
while cells(i,4)<>""
if cells(i,4)=cells(i+1,4) then
rows(i+1).delete
else
i=i+1
end if
wend

379 :名無しさん@そうだ選挙にいこう:2005/04/10(日) 23:53:38
>>375
直しました。
ソートもマクロにしています。

Sub test()
Dim i As Integer
Cells.Select
Selection.Sort Key1:=Range("D1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
i = 1
While Cells(i, 4) <> ""
While Cells(i, 4) = Cells(i + 1, 4)
Rows(i + 1).Delete
Wend
i = i + 1
Wend
End Sub


380 :359:2005/04/11(月) 00:15:21
>>378-379

>>378は実行したところ動いていない様子?で削除されませんでした。
>>379は「アプリケーション定義またはオブジェクト定義のエラーです。」とのメッセが表示され、
デバックボタンを押すと下記の部分が黄色表示となっていました。

Selection.Sort Key1:=Range("D1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal

ホント何回もありがとうございます。
見も知らぬ方に親切にしていただき感謝です。
先に書きましたが最初に作っていただいたもので十分助かりますので、
あのマクロを使わせていただきますm(_ _)mデハデハ...

381 :名無しさん@そうだ選挙にいこう:2005/04/11(月) 00:20:51
>>380
へんだな?
せめて下のを使ってけろ。

Sub test()
Dim i As Integer
i = 1
While Cells(i, 4) <> ""
While Cells(i, 4) = Cells(i + 1, 4)
Rows(i + 1).Delete
Wend
i = i + 1
Wend
End Sub


382 :名無しさん@そうだ選挙にいこう:2005/04/11(月) 00:41:03
>>380
すでに削除してあってダブりがないとかソートし忘れとか。

383 :名無しさん@そうだ選挙にいこう:2005/04/11(月) 10:24:45
多分faqな内容な気もするのですが、ググッても分からないので教えてください。

横に(1行に)入っている数値を
縦に(1列に)変換するマクロはどのような設定になりますでしょうか?

384 :名無しさん@そうだ選挙にいこう:2005/04/11(月) 10:25:30
Excel2002でセルに入力を開始したとき、状態を「入力」ではなく最初から「編集」にするにはどうすればいいですか?
たとえばB1を選択してhogeと入力すると、状態は「入力」になり、B1内のキャレット位置が「hoge|」となりますが、
ここから←キーを押すと、A1が選択されるのではなくB1内のキャレット位置が「hog|e」となるようにしたいのです。
つまり、セルの内容を入力・編集してるときは方向キーでキャレットを移動し、そうでないときは方向キーでセルの移動がしたいのです。
毎回F2を押すのは煩わしいしいので、どなたかお助けください。

385 :名無しさん@そうだ選挙にいこう:2005/04/11(月) 10:28:53
>>383
形式を指定して張り付け
□行列を入れ替える

386 :名無しさん@そうだ選挙にいこう:2005/04/11(月) 10:38:53
>>385
おおお。そんな簡単に出来たんだ。dクス

387 :359=380:2005/04/11(月) 11:43:13
うわー、ごめんなさい。
すでに削除済みのデータで試してました。
もう消すものがないから動かなかったんですね(大汗

今日他のデータで試したところ一発で決まりました!
本当にありがとうございました。

388 :359=380:2005/04/11(月) 11:44:31
>>387>>381さんへの返信ですm(__)m


389 :名無しさん@そうだ選挙にいこう:2005/04/11(月) 13:15:40
>>359さんへのレスについて。
せっかくマクロを使うんだったら1回ですべて処理できる
マクロにすべきだと思うのですが。

While使わずにFor〜Nextで最下行からまわした方がよくない?
例えば、

Dim Rn As Integer, i As Integer, KW As Variant, C As Range
Rn = Sheets(1).UsedRange.Rows.Count
For i = Rn To 2 Step -1
  KW = Cells(i, 4).Value
  Set C = Range("D1:D" & i - 1).Find(KW, LookAt:=xlWhole)
  If Not C Is Nothing Then
    Rows(i).Delete
  End If
Next i

390 :389:2005/04/11(月) 13:22:40
スマソ
ちゃんと処理できるのもかかれてましたね。
・・もっとちゃんとレス読むです。
ほんとにごめんなさい

391 :名無しさん@そうだ選挙にいこう:2005/04/11(月) 22:23:44
すいません
=(SUM(G47:I47)=0,"",SUM(G47:I47))
これって、どう解釈するのでしょうか?

392 :名無しさん@そうだ選挙にいこう:2005/04/11(月) 22:28:15
>>391
If式じゃないの?
=IF(SUM(G47:I47)=0,"",SUM(G47:I47))

IFが入らないと何の意味も持たないと思われ

393 :359:2005/04/11(月) 22:49:53
>>389
作ってくれてありがとう〜
マクロって便利ですね!自分でも勉強してみようかと思います。

ホント皆いい人だねー。


394 :名無しさん@そうだ選挙にいこう:2005/04/11(月) 22:56:29
>>392
すいません、おっしゃるとおりIFが抜けてました。
どういう意味なのでしょうか?

395 :名無しさん@そうだ選挙にいこう:2005/04/11(月) 23:00:21
>>394
ヘルプでIFとSUMを見ろ。

396 :名無しさん@そうだ選挙にいこう:2005/04/11(月) 23:04:18
>>394
G47+H47+I47 の結果が0なら何も表示しない
それ以外なら G47+H47+I47 の結果を表示する。

397 :名無しさん@そうだ選挙にいこう:2005/04/11(月) 23:09:03
>>396
ありがとうございます。
助かりました!

398 :>>367:2005/04/12(火) 00:32:00

マクロがまだ組めないんですが、
簡単な策がありませんか?
読み込んで表に配置させる方法。
ぶしつけな質問で、すいません。


399 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 00:38:25
だったらもっと情報を出せば?どんなデータが入ったCSVから何をどう取り出したいのか。
今のままじゃ情報が少なすぎる。検算も出来やしない。

400 :>>367:2005/04/12(火) 00:51:57
定食屋四店舗分のメニュー名、単価、売上数、売上金額、
等の日報数値データです。


401 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 01:21:30
で、その日計データから何をとりだして、どんな表を作りたいのよ…
単に店舗別の集計ならCSVで読み込ませた後ピボットテーブル作れば済むだろうけど
400の話だけじゃ何もできない。他人が読んで理解できるように書いてくれ。

つーか、マクロも使えないんじゃ、DBソフト使った方が楽なんでないか?

402 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 05:06:40
こんばんは。どなたか教えてください。

住所のデータ、
例えば
横浜市円円区祖師谷1-2-1
というものを
横浜市
円円区
祖師谷
1-2-1
の4つに分割する方法を教えてください。
もしくはセルの数字部分だけ削除する方法を教えてください。
郵便番号をあてるソフトをみつけたのですが、
番地が入っていると正しく検索してくれないので。

よろしくお願いします。


403 :402:2005/04/12(火) 05:11:16
連続ですみません。
数字を消すというのは以下のマクロで出来たのですが、
シートの数値が全部消えてしまうんですね。
なんとか任意のセルの数字部分を消せれば(一番いいのは
セルの分割)と思ってご相談しています。

Sub Sample()

Dim myCell As Range
Dim i As Integer

For Each myCell In ActiveSheet.UsedRange
For i = 0 To 9
With myCell
.Replace CStr(i), vbNullString
.Replace StrConv(CStr(i), vbWide) _
, vbNullString
End With
Next
Next

End Sub



404 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 05:43:29
>>402
分割は先頭から「3文字、3文字、3文字、残り」の4分割でいいの?
それとも「先頭から"市"まで、その次から"区"まで、その次から数字の前まで、残り」の4分割?

データベース無しに市区名で正確に区切りを入れることは出来ないからどちらかになるけど
前者は市区村名の文字数が揃ってないと狂ってくるし、
後者は市区町に"市・区"が入ってると狂ってくる。

で、数字を削除ってのは「横浜市円円区祖師谷--」となればいいの?
それとも「横浜市円円区祖師谷 - - 」とか「横浜市円円区祖師谷」?

どちらもマクロで出来るけど、条件をきちんと書いてくれないとこっちでは何にも出来ない。
対象セルも固定単一セルなのか固定範囲なのかアクティブセルのものなのか、選択範囲のものなのかはっきりして。

ちなみにExcelで検索してるなら、完全一致じゃなくて部分一致にすることで、
「横浜市円円区祖師谷」を検索しても「横浜市円円区祖師谷1-2-1」がヒットするようになる。
ついでに言うと>>403のマクロでは「For Each myCell In ActiveSheet.UsedRange Next」が
全セル(使用範囲)を対象にさせてる部分。

405 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 11:28:15
htmlの表をコピーしてExcelに張り付けると、既定ではHTML張り付けになり、
表形式で書式(フォント、背景色、罫線など)も一緒に張り付けられますよね。
で、テキスト張り付けにすると、文字列のみを1列に繋げたものが張り付けられる。
(テキスト張り付けの場合5行*5列の表をコピペしても5行*1列になってしまう)

そこで質問なのですが、表形式で文字列のみを張り付けるにはどうしたら良いのでしょうか?
一度HTML形式で張り付けてから、もう一度コピーして値の張り付けをするのではなく
最初から文字列のみを表形式で張り付ける方法を教えてください。
環境はWindowsXP、Excel2002です。

406 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 12:28:42
>>405
Excel2002がインストールされているなら
Internet Explorer(またはそのコンポーネントブラウザ)のHTML表の部分で
マウス右クリックし「Microsoft Excelにエクスポート」で出力する方法は?

もっとシステマチックにやりたいのなら
VBAからHTMLDocumentオブジェクトを使って、HTMLテーブルセルの値を直接Excelのセルに書きこむ方法もある。


407 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 12:37:47
>>405
貼り付けた後でスマートタグをクリックして「貼り付け先の書式と一致させる」を
選べば済むことなのでは?

408 :405:2005/04/12(火) 12:38:25
>>406
回答ありがとうぞざいます。
前者は、張り付け位置を既存のブックのの任意位置に指定したいので無理です。
後者は5*5の表をコピーしてB3:F7に張り付ける場合は具体的にどうすれば良いのでしょうか?

409 :405:2005/04/12(火) 12:40:06
>>407
既存の書式を壊したくないので、「貼り付けた後で」という方法ではダメです。

410 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 13:04:22
>>409
?????

411 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 13:12:01
>>410
?!?!?!

412 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 13:26:09
前スレで回答が無かったのでもう一度質問させていただきます。

WindowsXP SP1a、Excel2002 SP3
入力規則のリストに関する質問なんですが、
通常、ドロップダウンリストは
|___|___|___|
|___|___[▼]___|
|___|項目1    |___|
|___|項目2    |___|
|      | ̄  ̄  ̄| ̄   |
こんな感じに表示されますが、これが
  |___|___|___|
_|___|___[▼]___|
|項目1         |___|
|項目2         |___|
 ̄| ̄ ̄ ̄| ̄  ̄  ̄| ̄   |
こんな風になってしまう場合があります。
リストの値をa,b,cなどと短いものにしても変わらないし
一度入力規則を削除してから再設定しても、幅はそのままです。
これを通常のように「セル幅+ボタン」の幅内で表示させるにはどうすればよいですか?

413 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 13:50:44
>>409
いったん貼り付けるとHTMLの書式通りになるように見えるが、
その後で「貼り付け先の書式と一致させる」を選べば、
HTMLの書式は無視されてもとのセルにあった書式になる。
ご要望通りだと思うが?

414 :405:2005/04/12(火) 14:06:17
>>413
一回でも書式が変わるとイベントマクロが動いてしまうので問題ありです。
操作上Application.EnableEvents = Falseも使えないし。
なので今までは「別シートに張り付け→コピー→値を張り付け」とやってました。


HTMLDocumentオブジェクトの方を調べてるんですが、
コピーしたデータってどういう風に取得させればいいのかわからない。
Dataオブジェクトを使ってクリップボードの値を取得する方法ならわかるけど
これではテキスト張り付けと同じ全列繋がった文字列になる。
>>406氏の再降臨を待ち望みます。

415 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 14:06:30
若槻千夏がS○Xしてるときの声と顔を実演してるサイトみつけました!
いくら売れてないときだからって、アンアン言い過ぎなんじゃ・・・
http://waraiameba.ameblo.jp/

416 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 14:12:22
>>414
なるほどね。
405や409ではそんな理由は一言も書いてないが。
後出しはやめてくれ。それなら最初から無駄な答えは書かないから。

417 :405:2005/04/12(火) 14:25:18
「何がやりたいか」は>>405
「最初から文字列のみを表形式で張り付ける方法を教えてください。」
ってはっきり書いたんだけど・・・。
要望以外の回答(代用案)に対しても万全な情報なんて書ききれないですよ。

まあ、あんまりゴネると教えてもらえる物も教えてもらえなくなりそうなので
HTMLDocumentオブジェクトについて検索しながら>>406氏か
「最初から文字列のみを表形式で張り付ける方法」をご存じの方の降臨を待ちます。

418 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 14:37:40
まあ、一理あるな。


>>403
Sub 数字以降を削除()
 Dim hoge As String, i As Byte
 hoge = ActiveCell.Value
 Do
  i = i + 1
 Loop Until Mid(hoge, i, 1) Like "#"
 ActiveCell.Value = Mid(hoge, 1, i - 1)
End Sub

Sub 数字を削除()
 Dim i As Byte
 For i = 0 To 9
  ActiveCell.Replace CStr(i), vbNullString
 Next
End Sub

対象はアクティブセルね。

419 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 14:38:21
>>417
ならキミの書いた409に410のような反応があったのはなぜか
よく考えることやね。断っとくが410は私じゃないよ。

答える側は書かれた情報だけで判断して知恵を絞っている。
たとえキミの気にいらない答えでもね。そこらもよく考えや。

スレ汚しになるのでここらで消えるよ。

420 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 14:46:13
>419   ____
    i´-======-`i
    } . .. ..::;:;;;;;彡{
    i . .. (,,゚Д゚);;;|  ∬
    }  (ノ .::;:;;;;彡{つ旦<まぁ、茶でも飲んでもちつけ
    !,  .. .:.::;:;;;彡j
    ヽ、.. ....::::;;;ジ
     └∪゙∪┘

421 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 14:51:41
>>414
>>407をマクロに登録してその中でApplication.EnableEvents = False
をすればいいんじゃない?
書式が変わるのをトリガにしてるイベントあったっけ?

422 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 15:41:49
負けず嫌い?

423 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 15:56:13
漏れも>>406のは知りたいな。漏れの場合書式云々じゃなくて、
単に普通に張り付けするとでかい表の場合時間が掛かるから。
htmlから表を張り付ける場合に書式ごと張り付けたいことなんて
ほとんどないから、テキストのみ張り付ける方法があるなら
使いたいもんだな。

424 :402:2005/04/12(火) 16:42:00
>>404さん、>>418さん
ありがとうございます。
私が使わせてもらおうとしているozzipというソフトは番地が
入っていると綺麗にあたってくれないので、数字を削ろうと考えました。
ただ、番地は最終的には必要なので分割できないものかと
ご相談申し上げました。
分割は市、区、地名、番地で分けられたらいいんですけど
むずかしいですよね。
数字を削る方にします。マクロ使わせて頂きますね。
お世話になりました。またお願いします。

425 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 17:08:24
>>424
とりあえず番地(アラビア数字)以降を右に分けるなら

Sub 数字以降を右に移動()
 Dim hoge As String, i As Byte
 hoge = ActiveCell.Value
 Do
  i = i + 1
 Loop Until Mid(hoge, i, 1) Like "#"
 ActiveCell.Value = Left(hoge, i - 1)
 ActiveCell.Offset(0, 1).Value = Right(hoge, Len(hoge) - i + 1)
End Sub


下3行を
 ActiveCell.Offset(0, 1).Value = Left(hoge, i - 1)
 ActiveCell.Offset(0, 2).Value = Right(hoge, Len(hoge) - i + 1)
End Sub
とすれば、元の住所はそのままで、対象セルの1つ右に番地の前、2つ右に番地を振り分けられる。

市区町村名に"市・区・町・村"の文字がある場合に区切り位置がおかしくなることを承知してくれるなら
"市・区・町・村"の文字位置で分割するマクロくらい書いてもいいけど。
全て手動でやるよりはマクロで処理した後、修正した方が早いだろ。
もし欲しかったらデータの範囲を書いてくれ。

426 :402:2005/04/12(火) 17:55:23
>>425さん
わあ、ありがとうございます。
一個のセル、番地前後で分離できました。
ぶっ飛ばされそうなんですけど、列全体を指定する時は
どのようにしてかくんですか?activerow?

427 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 18:11:15
>>426
Sub 数字以降を右に移動()
 Dim hoge As String, i As Byte, r As Long
 Const c As Byte = 1 '列番号を指定
 For r = 1 To Cells(65536, c).End(xlUp).Row
  i = 0
  hoge = Cells(r, c).Value
  Do
   i = i + 1
  Loop Until Mid(hoge, i, 1) Like "#"
  Cells(r, c).Value = Left(hoge, i - 1)
  Cells(r, c + 1).Value = Right(hoge, Len(hoge) - i + 1)
 Next r
End Sub

列番号は1ならA列、2ならB列、
開始行が1行目からじゃないなら「For r = 1〜」の1を書き換え。
んで、元データそのままで処理するには
  Cells(r, c + 1).Value = Left(hoge, i - 1)
  Cells(r, c + 2).Value = Right(hoge, Len(hoge) - i + 1)
でよろしく。

428 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 18:57:52
住所を県市区町村などで分けたいというのは時々あるけど、
八日市場市とか十日町市とか市川市市川とか今市市今市とかあるので、
データベースを参照しながらじゃないと無理でしょう。

429 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 19:00:28
>>428
既にその件は>>404で書かれてる。

430 :402:2005/04/12(火) 19:17:03
>>427さん
ほんとにあほ丸だしですみません。
列指定してできました。700件くらいのデータなんですが、
オーバーフローといって50件目で止まってしまいます。
これは50件ごとにマクロをしていくしかないのでしょうか。
お時間あったら教えてください。

431 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 19:25:06
>>430
50件の制限というわけではなく、
数字のない住所の位置でオーバーフローしますね。
i = i + 1
の下の行に
If i > Len(hoge) Then Exit Do
を入れてみてください。

これでダメなら止まってしまう位置の住所を貼ってみて。

432 :402:2005/04/12(火) 19:28:27
>>431さん
早速のご回答ありがとうございます。
できました!これで、郵便番号がふれます…。

ここの方たちみなさんに感謝します。
また教えてくださいね。

433 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 19:34:43
>>432
Do
 i = i + 1
Loop Until Mid(hoge, i, 1) Like "#" Or i > Len(hoge)

もう見てないかもしてないけどこれの方が良かったかも。
結果は同じはずだけど、こっちの方がちょっと処理早いかな。

434 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 19:36:33
ついでに気が向いたら、最初に
Application.ScreenUpdating = False
最後に
Application.ScreenUpdating = True
を入れておくとより処理が早くなる。

435 :402:2005/04/12(火) 19:37:33
>>433>>434
みてます!
そちらに変更します。
ありがとうございました。


436 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 23:11:58
>>423
406じゃないけど、ググって作ってみた。
自信は無いけどどうだろう?
文字を取り出してもテーブルの区切りがわからんので、
スペースがセルの中にあると思った結果にならない。
MSFormsを参照してるのと、
クリップボードの形式を事前に調べてはいない。

Dim cc As New MSForms.DataObject
Dim s, t
Dim i As Integer
Dim j As Integer

cc.GetFromClipboard
s = Split(cc.GetText(1), vbCrLf)
For i = 0 To UBound(s)
t = Split(s(i))
For j = 0 To UBound(t)
ActiveCell(i + 1, j + 1) = t(j)
Next j
Next i


437 :名無しさん@そうだ選挙にいこう:2005/04/12(火) 23:15:00
----------------------------------------------------
ここまで読んだ。ここまで読んだ。ここまで読んだ。ここまで読
----------------------------------------------------
Dim oHttp As Object
Dim s
Dim i
Set oHttp = CreateObject("MSXML2.XMLHTTP")
oHttp.Open "GET", "http://www.yahoo.co.jp", False
oHttp.Send
s = Split(oHttp.responseText, vbCrLf)
For i = 0 To UBound(s)
Cells(i + 1, 1) = s(i)
Next i
----------------------------------------------------
んだ。ここまで読んだ。ここまで読んだ。ここまで読んだ。ここま
----------------------------------------------------

438 :名無しさん@そうだ選挙にいこう:2005/04/13(水) 04:42:27
前スレで質問しましたが、誰も知ってる方がいなかったので、再度質問させてください。

他人に貰ったエクセルファイルを加工してます。
問題は、下のような邪魔なボタンがあります。どうやって消せばいいのでしょうか?
http://up.nm78.com/data/up091070.jpg

439 :405:2005/04/13(水) 07:36:20
>>436
また情報後出しとか言われそうだけど、自分が以前書いたマクロです。
Dim myData As New DataObject
Dim w As Variant, i As Integer

myData.GetFromClipboard
w = Split(myData.GetText, vbCrLf)
For i = 0 To UBound(w) - 1
Range(ActiveCell.Offset(i, 0), ActiveCell.Offset(i, UBound(Split(w(i))))) = Split(w(i))
Next i
>>436と同じような物ですが、>>414でも書いた通りDataオブジェクトを使って
クリップボードの値を取得すると繋がった文字列になってしまいます。
区切り位置に半角スペースが入るのでそこで分割しただけだけど、
自分がコピーしたい表には半角スペースが含まれないことの方が希なので全く使い物になりませんでした。

>>423の言うとおり、速度面の問題もあるのでなんとか
「VBAからHTMLDocumentオブジェクトを使って、HTMLテーブルセルの値を直接Excelのセルに書きこむ方法」
を実現したいのですが、コピーしたhtmlデータをどうやってテーブル区切りで取得させるかが全く解らない状況です。

440 :名無しさん@そうだ選挙にいこう:2005/04/13(水) 07:40:48
かなり頻繁に検索を使うのですが、グーグルの検索ツールバーのようにツールバーに検索窓を追加
するようなことは出来るのでしょうか?

441 :405:2005/04/13(水) 08:16:05
>>440
田中亨に検索ツールバーのアドインがあるので使ってみては?
ttp://www.officetanaka.net/library/

リンクフリーなのでスクリーンショットも貼っておく
ttp://www.officetanaka.net/library/sample/tbf-1.jpg
ttp://www.officetanaka.net/library/sample/tbf-2.jpg
SSでは単体になってるけど、もちろんツールバーに埋め込むことも出来る。

442 :名無しさん@そうだ選挙にいこう:2005/04/13(水) 10:02:54
>>441
おお。ありがとー。

443 :406:2005/04/13(水) 15:02:00
>>439
405さんに質問です。
コピー元(HTML)のセルは1つのテーブル<table>〜</table>全体ですか?
それともテーブルの中の一部分のセルですか?

前者であれば表示中のHTMLDocumentからtableエレメントオブジェクトを特定し、
Rows(i)Cells(j).innerTextでエクセルライクに値を取得できますが、
後者だとdocument.selection.createRange().htmlText等で
選択範囲のHTML文字列を取得し、<tr><td>タグを解析して縦横の値を
自力で取り出す必要があるかと。

なお、これらの方法ではクリップボードは不用です。
いずれにしてもコピー元のHTMLの構造が一定であればプログラミング可能ですが、
不特定のHTMLのテーブルセル文字列を汎用的にExcelの選択セル等に埋め込むような
ルーチンを作るのはかなり大変だと思いますです。


444 :405:2005/04/13(水) 15:42:14
>>443
テーブルの中の一部分のセルです。
Webブラウザから表の一部をコピーしたあと、どのようにすれば良いのでしょうか?
VBAは初歩的なことしか解らないので>>443の解説だけでは
無能な自分には全く理解出来ません。
ローカルのhtmlから表全体を取得するならなんとかなるけど
いちいちローカルに保存するくらいなら、今までの方法の方が早いし。

コードを書いていただけるとありがたいのですが、
失礼ながら406氏も具体的なコードは書けないというなら、ここで期待して待つのはやめて、
何とか出来るところまで足掻いてみます。最後にはあきらめることになるだろうけど・・・

445 :名無しさん@そうだ選挙にいこう:2005/04/13(水) 15:51:47
WindowsXp・Excel2003ですが
新規のシートの状態から29行、E列ぐらいでセルを埋めて表を作ったんですが
そのまま普通に印刷すると29行目ぐらいがA4の真ん中ぐらいになるのですが
これの縦横をA4の用紙にいっぱいに自動で合わせて印刷するには
どう操作すればよいでしょうか?

446 :名無しさん@そうだ選挙にいこう:2005/04/13(水) 15:51:52
>>444
具体的にURLとどの部分をコピーしたいのか書いたほうが早いと思うよ。

447 :405:2005/04/13(水) 15:59:22
>>446
Webページから表をコピペしたいことが多いというだけで、
利用するサイト、ページは特に決まってません。
でも、ExcelにHTML張り付けした場合はどの表でもWebブラウザの表示と同じになるので
ソースの記述が多少違っても、1つで可能なら理論上は全てに通ずるはずですよね。
ExcelにHTML張り付けしても崩れるようなものは例外かもしれないけど。

448 :名無しさん@そうだ選挙にいこう:2005/04/13(水) 16:00:12
お伺いしたいのですがEXCELのシート数の制限は何枚でしょうか?
ある競技の集計ソフトを作成中でVBAで成績速報を新規シートで出力していますが
種目が多く枚数が増えるため速報のシートが31枚以上は追加出来ません
本体のシートは参照データベースや入力シート等で既に59枚あります
一度保存し再度ブックを立ち上げるとリセットされる見たいですが
私が運用するのではなく競技大会のの運営者が使用するので
なるべくトラブルを回避したいと思い質問させて頂きます
OS WindowsXP HOME
Microsoft Office Excel 2003です

449 :名無しさん@そうだ選挙にいこう:2005/04/13(水) 16:08:24
>>448
物理メモリ容量、及びシート内容依存です。
シートが追加できないなら、それがおそらくあなたの環境でのシート数限界です。

450 :名無しさん@そうだ選挙にいこう:2005/04/13(水) 16:13:19
>>449
ご回答有り難うございます
うっかりしていましたメモリ512Mです

>物理メモリ容量、及びシート内容依存です。
判りました対策を考えます

451 :名無しさん@そうだ選挙にいこう:2005/04/13(水) 16:19:23
VBAの質問です。
For i = 10 To 1 Step -1
 For j = 1 To 10
  If Cells(i, j).Value = hoge Then
   処理
   Exit For A
  End If
 Next j
 @
Next i

このようにForを2段使っていて、ある条件を満たしたら何らかの処理をして
Forを抜けたい場合、上のコードだとFor jは抜けられるけどFor iは抜けられませんよね。
この場合、Gotoを使ったりこのFor文以降の処理を別プロシージャにしたり@の部分にコードを入れたりせず、
Forの2段目のIf文内(Aの位置)だけのコードでFor iを抜けるにはどうすれば良いでしょうか?

実用上困ってるというわけではなく、興味があっただけなのですが、
何か方法があるなら知っておきたいのでご存じの方が居りましたらご教授ください。

452 :名無しさん@そうだ選挙にいこう:2005/04/13(水) 16:24:22
>>451
ねえよ。

453 :名無しさん@そうだ選挙にいこう:2005/04/13(水) 17:46:33
>>451
go to じゃ不都合でもあるのか?

454 :名無しさん@そうだ選挙にいこう:2005/04/13(水) 17:53:15
>453
「実用上困ってるというわけではなく」
って書いてあるぢゃん
ちゃんと嫁よw

なぜgoto以外の方法が知りたいのかはわからんが

455 :名無しさん@そうだ選挙にいこう:2005/04/13(水) 18:10:56
>>451
ダイクストラ先生におこられろ

456 :名無しさん@そうだ選挙にいこう:2005/04/13(水) 18:15:16
>>447
Excelのクリップボードの内容って、
Webページを入れた場合も、テキスト入れた場合も同じじゃない?

457 :名無しさん@そうだ選挙にいこう:2005/04/13(水) 18:40:21
>456
をいをい・・・
同じだったらhtml形式での張り付けすら出来ないだろ
つーか「Excelのクリップボード」って何よ?
クリップボードは全ソフト共通ですが、何か?
奴も言ってる通りDataObjectで取得した場合はテキスト扱いになるけどな

458 :名無しさん@そうだ選挙にいこう:2005/04/13(水) 18:49:01
>>451
その部分をFunctionに記述してExitするぐらいかな。
そうするメリットは感じられないが。

459 :名無しさん@そうだ選挙にいこう:2005/04/13(水) 18:55:36
>>457
Excelはhtml、xmlで処理してなかったっけ?
htmlのソースコードをExcelに貼り付けてみて。

460 :名無しさん@そうだ選挙にいこう:2005/04/13(水) 21:50:57
関数の質問です。OSはXPでエクセルは2003です。
質問の内容ですが・・
   A      B      C      D      E
1 SH900i  ドコモ    999
2 902SH   ボータ    223
3 W31SA   au     582
4   ・      ・
5   ・      ・
このような形でA・B・C列に400行データが入っています。
Aが商品名でBがメーカーでCが販売数となっています。これをD・E・F行
にTOP10だけ出したいのですが、対応出来る関数はありますでしょうか?
   D     E     F
1 ドコモ   SH900  999
2 ドコモ   D900   870
3 ドコモ   N900   825
・  ・      ・    ・
11 ボーダ   902SH  999
12 ボーダ   802SE  650
13 ボーダ   603SH  540
・  ・      ・    ・
21 au    w31SA  920
22 au    w21H   650
23 au     ・     ・
みたいな感じにしたいのです
 


461 :名無しさん@そうだ選挙にいこう:2005/04/13(水) 23:32:20
体重測定のExcelをつくりたいと思っているのですが

流れ的には
-------------------------------------
        4月  5月  6月 〜
スズキイチロウ 55kg  57kg  54kg
ヤマダハナコ  44kg  45kg  42kg
タナカタロウ  32kg  30kg  36kg
-------------------------------------
というデータを作成して、
200名分くらいをA5の紙に一人一人グラフで
出力するという感じで考えているんですけれど、

Sheet1部分がデータベース部分
Sheet2にグラフを表示、印刷部分

という風に考えたのですが、
どうもあきらかにSheet2の部分が能率的ではなさすぎるなあという感じです。
マクロとかがよくわからないので、下地は地道にコピペでつくるという(泣)感じなのですが。

こういうものをつくろうとした時に参考になりそうなページはございませんでしょうか?
またこれをすっきりさせるためにはどういう方法がありますか?


462 :名無しさん@そうだ選挙にいこう:2005/04/13(水) 23:49:17
> こういうものをつくろうとした時に参考になりそうなページはございませんでしょうか?
ヘルプ

463 :名無しさん@そうだ選挙にいこう:2005/04/13(水) 23:54:54
>>438
前スレ950までしか見てないんだけど、
デザインモードは試したの?


464 :名無しさん@そうだ選挙にいこう:2005/04/14(木) 00:02:51
>>463
してないにちがいない、、、

465 :名無しさん@そうだ選挙にいこう:2005/04/14(木) 00:21:02
>>460
Dをドコモの列: =if(B1="ドコモ",C1,"")
Eをボーダの列: =if(B1="ボーダ",C1,"")
FをAUの列: =if(B1="AU",C1,"")
として、キャリア別の台数を抜き出す。

次にRANK()関数でそれぞれのキャリア内での順位を出しておく。
(G列とかね)

最後にVLOOKUPで順位からデータの並べ替えを行なう。
この場合、同じ台数となっているデータはうまくいかない w

素直にソートを使って加工するのが早そうでつ。
(別にVBAでもいいが)

466 :名無しさん@そうだ選挙にいこう:2005/04/14(木) 00:25:05
エクセルはADOを使ってMDBにアクセスできるけど

ファイルメーカーのデータベースにアクセスする方法ってある?

467 :名無しさん@そうだ選挙にいこう:2005/04/14(木) 01:33:53
エクセルで作った表を印刷しようとすると横に長いために二枚組になってしまいます。
用紙を90度回転させて印刷すれば解決できるのですが、
回転させないでそのまま「用紙の横サイズに合わせて縮小する」みたいな
便利なコマンドってないのでしょうか?

468 :名無しさん@そうだ選挙にいこう:2005/04/14(木) 01:49:20
>>467
ページ設定>ページ>次の次数に合わせて印刷 横「1」×縦「1」 

469 :463:2005/04/14(木) 06:35:52
>>463-464
その通りでした。どうもありがとうございました。

470 :名無しさん@そうだ選挙にいこう:2005/04/14(木) 07:01:43
>>465
やはり、そうなってしまいますか・・現状は同じような設定をしてたもので
自分でももうちょい、VBAとかで試してみます。ありがとうございました

471 :名無しさん@そうだ選挙にいこう:2005/04/14(木) 08:20:45

VBAで指定セルの文字のバイト数を取得したいんですが
VBA関数のLenBでは半角文字も2バイトになってしまうし
なぜかWorksheetFunction.LenB()も使えない。
作業セルを設けて.Formula = "=LenB()"とやるのではなく
VBAコードのみで文字列のバイト数を求めるにはどぷすればいいでしょうか?
Excel97〜2002まで使える方法を教えてください。

472 :名無しさん@そうだ選挙にいこう:2005/04/14(木) 09:46:09
>>471
StrConvを使うといけますよ。

473 :471:2005/04/14(木) 09:58:43
>>472
LenB(StrConv(Cells(1, 1).Value, vbFromUnicode))
でバッチリいけました。ありがとうございます。

474 :名無しさん@そうだ選挙にいこう:2005/04/14(木) 10:07:36
エクセルのエンコードはどこで指定したらよいのでしょうか。

475 :名無しさん@そうだ選挙にいこう:2005/04/14(木) 14:16:22
>>461
かなり長くなるので連投します。みなさますみません。

Sheet1にデータベースを作ります。
┌─┬──┬──┬──┬──┬──┬──┐
│  │ A │ B │ C │ D │ E │ F │
├─┼──┼──┼──┼──┼──┼──┤
│1 │   │4月 │ 5月 │ 6月│ 7月 │ 8月│
├─┼──┼──┼──┼──┼──┼──┤
│2 │佐藤│56.7│56.8 │55.9│56.2 │56.8│
├─┼──┼──┼──┼──┼──┼──┤
│3 │田中│52.2│53.3 │54.4│55.5 │56.6│
├─┼──┼──┼──┼──┼──┼──┤
│4 │鈴木│58.9│60.1 │63.5│65.2 │67.1│
├─┼──┼──┼──┼──┼──┼──┤
│5 │高橋│53.8│52.4 │51.6│52.1 │50.9│
├─┼──┼──┼──┼──┼──┼──┤


476 :名無しさん@そうだ選挙にいこう:2005/04/14(木) 14:16:56
次にSheet2にあらかじめ1人分のグラフを作っておきます。
┌70

├65

├60
│            ■       ■
├55      ■  ■  ■  ■
│     ■  ■  ■  ■  ■
├50   ■  ■  ■  ■  ■
│     ■  ■  ■  ■  ■
├45   ■  ■  ■  ■  ■
└────────────────────
     4月 5月 6月 7月 8月 

さらにSheet2にはコンボボックスも設置しておきます。
┌────┬─┐
│      │▼│(例:ComboBox1という名前)
└────┴─┘

477 :名無しさん@そうだ選挙にいこう:2005/04/14(木) 14:18:35
最後にVBEを開いて、以下のコードをSheet2に貼り付けるだけです。

Private Sub Worksheet_Activate()
  With Sheet1
    ComboBox1.ListFillRange = "Sheet1!" & .Range(.Cells(2, 1), .Cells(65536, 1).End(xlUp)).Address
  End With
End Sub

Private Sub cmbNam_Change()
  Dim i As Long
  Dim rngSds As Range
  Dim rngScl As Range

  With Sheet1
    i = WorksheetFunction.Match(ComboBox1.Text, .Columns(1), 0)

    Set rngSds = .Range(.Cells(i, 1), .Cells(i, 256).End(xlToLeft))
    Set rngScl = .Range(.Cells(1, 2), .Cells(1, 256).End(xlToLeft))
  End With

  Call Draw_Chart(rngSds, rngScl)
End Sub

Private Sub Draw_Chart(ByVal rngSds As Range, _
            ByVal rngScl As Range)
  Sheet2.ChartObjects(1).Select

  With ActiveChart
    .SetSourceData Source:=rngSds, PlotBy:=xlRows
    .SeriesCollection(1).XValues = rngScl
  End With
End Sub

478 :名無しさん@そうだ選挙にいこう:2005/04/14(木) 14:20:43
>>477の6行目
Private Sub cmbNam_Change() は

Private Sub ComboBox1_Change() に訂正です。

479 :名無しさん@そうだ選挙にいこう:2005/04/14(木) 14:24:22
>>475-478を行なえば、
Sheet2上のコンボボックスの名前を切り替えるだけで、
その人のグラフが表示されますので、いくつもグラフを用意する必要はありません。

これなら楽になると思いますが、一応ご参考までに。

480 :名無しさん@そうだ選挙にいこう:2005/04/14(木) 15:20:18
【日産】 NOTE ノート Part9 【普通で素直】
http://hobby7.2ch.net/test/read.cgi/auto/1113087118/

孤独な日産信者、通称「ネット版劇団独り」。
相次ぐノートの酷評記事、酷評レスの結果にもめげず、叩かれ役として大活躍w
気が向いたら燃料でも投下してあげてください。

◆◇◆◇◆◇◆◇◆◇◆◇ネット版劇団独りの特徴◇◆◇◆◇◆◇◆◇◆◇◆
>ノート信者はやたらと若者向けと思わせたがる。
>ノート信者はやたらと女に人気があると思わせたがる。
>ノート信者はやたらと個性という単語を強調したがる。

さらに

捏造した燃費データを報告。
ノートについて論点は存在せず、私怨で追いかけ回すざま。
>>229,232などでわかるように、悔し涙で文字が読めないほど常時興奮。
ID変えまくって仲間がいると思わせたいらしいw
執念だけはルパンを追う銭形以上。
やられっぷりはトムとジェリーのトム以上。

本人へのアドバイス
「IDを変えて必死か?」というレスに対する反応が、毎回ビックリするほどワンパターンw
ID変えの際に書き込み時間が集中しすぎ。文体が似すぎw厨房レベルw
◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆

481 :名無しさん@そうだ選挙にいこう:2005/04/14(木) 19:24:25
エクセル2000なんだけど、月の旬管理をする場合どうしたら良いでしょう?
例えば、
3月21日〜3月31日 4月 1旬
4月1日〜4月10日 4月 2旬
4月11日〜4月20日 4月 3旬
と表したい場合なんですがね。
日付を入力しただけで、「*月」 「*旬」と表示したいんですよね。  

482 :名無しさん@そうだ選挙にいこう:2005/04/14(木) 19:51:04
=IF(DAY(A1)<11,MONTH(A1)&"月 2旬",IF(DAY(A1)<21,MONTH(A1)&"月 3旬",IF(MONTH(A1)=12,"1月 1旬",MONTH(A1)+1&"月 1旬")))

483 :名無しさん@そうだ選挙にいこう:2005/04/14(木) 19:57:54
>>482
助かりました。
ありがとうございます。


484 :名無しさん@そうだ選挙にいこう:2005/04/14(木) 21:51:44
>>475
たいへんありがとう、親切な人(ぺこり)。
取りあえず、試してみます!

485 :名無しさん@そうだ選挙にいこう:2005/04/14(木) 23:23:49
Windows2000、Excel97を使っています。

ファイルを開く際、ファイルをダブルクリックすると、エクセルが一つ起動。
別のファイルをダブルクリックするとエクセルがもう一つ起動する。
という具合にしたいのですが、どのように設定すればいいでしょう。

486 :406:2005/04/14(木) 23:47:24
>>444
'InternetExplorer(他のブラウザ不可)ウィンドウが1つでHTML表のコピー元範囲が選択反転されている状態で実行
'重要→VBEditorウィンドウで「Microsoft HTML Object Libraly」(MSHTML)参照設定が必要
'エラー処理していない(実際には必要)。オブジェクト開放していない。中間部がエレガントでない(w
Sub GetHTMLCellText()
Dim objShell As Object, objWin As Object, objDoc As MSHTML.HTMLDocument, objTable As Object
Dim strSel As String, lngR As Long, lngC As Long
Set objShell = CreateObject("Shell.Application")
For Each objWin In objShell.Windows
If TypeName(objWin.Document) = "HTMLDocument" Then
strSel = objWin.Document.Selection.createRange().htmlText
Exit For
End If
Next
If InStr(UCase(strSel), "<TR") = 0 Then strSel = "<TR>" & strSel & "</TR>"
If InStr(UCase(strSel), "<TABLE") = 0 Then strSel = "<TABLE>" & strSel & "</TABLE>"
Set objDoc = New MSHTML.HTMLDocument
objDoc.body.innerHTML = strSel
Set objTable = objDoc.all.tags("TABLE")(0)
For lngR = 0 To objTable.Rows.Length - 1
For lngC = 0 To objTable.Rows(lngR).Cells.Length - 1
ActiveCell.Offset(lngR, lngC).Value = Replace(objTable.Rows(lngR).Cells(lngC).innerText, vbCrLf, vbLf)
Next
Next
End Sub
当方Win2000+Excel2000なのでWinXP+Excel2003で動くかどうかはわかりません。
んまぁあとはいろいろ工夫してみてください。ということで技術サポート料\10,000ください(www

487 :muro ntaich086179.aich.nt.ftth.ppp.infoweb.ne.jp/:2005/04/15(金) 00:27:20
え     っ     る     ハ     
  ぇ     し     の    ァ ハ  
    け     と     ぉ     ァ 
うはっwww夢がひろがりんぐwwwwww   


488 :muro i60-46-170-55.s05.a010.ap.plala.or.jp/:2005/04/15(金) 01:35:39
え     っ     る     ハ     
  ぇ     し     の    ァ ハ  
    け     と     ぉ     ァ 
うはっwww夢がひろがりんぐwwwwww   


489 :名無しさん@そうだ選挙にいこう:2005/04/15(金) 03:47:34
質問です。
シート1とシート2の内容を常に全く同じ状態にするにはどうしたらいいのでしょうか?

例えばシート1にある表の項目を追加したり削除したりしたときも、行や列、関数などシート1の表と全く変わらず常にシート2に同じ表が現れるという感じにしたいのです。

どうやったらできるのでしょうか?


490 :406:2005/04/15(金) 09:24:58
>>489
なんで同じものを別シートに2つもたなければいけないか、
その理由がわかりません。


491 :名無しさん@そうだ選挙にいこう:2005/04/15(金) 10:10:58
>>489
まず、シート1のコピーを作成
シート1(2)のA1に=シート1!A1と記入
すべてのセルにコピー

じゃだめか?



492 :名無しさん@そうだ選挙にいこう:2005/04/15(金) 11:05:35
>>491
それじゃセルの"値"だけで数式や書式は一致させられないじゃん。
しかもセルの削除、挿入をしたら値すら一致しなくなるし。

>>489
Private Sub Worksheet_Change(ByVal Target As Range)
 Application.ScreenUpdating = False
 Application.DisplayAlerts = False
 Worksheets("Sheet2").Delete
 With Worksheets("Sheet1")
  .Copy after:=Worksheets("Sheet1")
  .Next.Name = "Sheet2"
  .Select
 End With
 Application.DisplayAlerts = True
 Application.ScreenUpdating = True
End Sub

とか

Private Sub Worksheet_Change(ByVal Target As Range)
 Worksheets("Sheet1").Cells.Copy
 Worksheets("Sheet2").Cells.PasteSpecial
 Application.CutCopyMode = False
 Target.Select
End Sub

なんてどうかな?
上はシートそのものをコピーしてるので、内容はオブジェクトやVBAコードに至るまで完全に一致する。
下はSheet1の内容のみをSheet2に張り付けてるので、オブジェクトやVBAコードはコピーされないけど
セルの内容(値、数式、書式など)、修飾、罫線、セルのサイズ、セルの結合などのほとんどは一致する。

493 :muro ntaich086179.aich.nt.ftth.ppp.infoweb.ne.jp/:2005/04/15(金) 11:32:49
え     っ     る     ハ     
  ぇ     し     の    ァ ハ  
    け     と     ぉ     ァ 
うはっwww夢がひろがりんぐwwwwww   


494 :名無しさん@そうだ選挙にいこう:2005/04/15(金) 12:05:05
シート保護のパスワードがわかるソフト
なんでしょうか?

495 :名無しさん@そうだ選挙にいこう:2005/04/15(金) 12:05:21
excell 2003を使っております。 手数料の計算で今まで 1000円までは5ドル、 1001-10000は10ドル、10001-20000は20ドルといったように
10ドルづつあがっていく計算で
=IF(H34<1,"",IF(H34<1001,5,CEILING(H34/1000,10)))

こういう計算式を使っておりました。

今回40000円までは今までどおりで40001-100000円までをすべて50ドルにして100001円-110000円で60 110001-120000で70といったような計算式を作りたいのですがなかなか作れません。こういう式は作成できるでしょうか?

まとめると
up to 1000yen 5$
1001yen-10000yen 10$
10001yen-20000yen 20$
20001yen-30000yen 30$
30001yen-40000yen 40$
40001yen-100000yen 50$
100001yen-110000yen 60$
110001yen-120000yen 70$
続く。。。


496 :495:2005/04/15(金) 12:19:34
=IF(H33<1,"",IF(H33<1001,5,IF(H33=40001-100000,50,CEILING(H33/1000,10))))

これが自分で試したけど上手くいかなかった式です。

497 :名無しさん@そうだ選挙にいこう:2005/04/15(金) 12:26:13
=IF(H34<1,"",IF(H34<1001,5,IF(H34>100000,CEILING(H34/1000,10)-50,IF(H34>40000,50,CEILING(H34/1000,10)))))

498 :497:2005/04/15(金) 12:35:12
今後も条件が変更される可能性も考慮すると、
一覧表を作ってVLOOKUP式を組んだ方がいいような気がする。

0
1      5
1001   10
10001   20
20001   30
30001   40
40001   50
100001  60
110001  70
120001  80

みたいな表を作って
=VLOOKUP(H35,A1:B9,2)

表の位置はどこでもいいし、非表示にしても大丈夫。
あとは表示形式を「0;;」とかにすれば0は表示されないし。

499 :495:2005/04/15(金) 12:36:00
>>497

なるほど! ありがとうございました!

500 :495:2005/04/15(金) 12:38:54
>>498

アドバイスありがとうございます。

501 :名無しさん@そうだ選挙にいこう:2005/04/15(金) 12:40:16

>>412もよろしくお願いします。


502 :名無しさん@そうだ選挙にいこう:2005/04/15(金) 13:32:31
宜しくお願いします。
excelでセルに(C)を入れると、丸C(cを円で囲んだもの)が表示されます。
なんとか(C)を表示する方法は無いでしょうか?


503 :名無しさん@そうだ選挙にいこう:2005/04/15(金) 13:36:17
>>502
[ツール]−[オートコレクト]

504 :502:2005/04/15(金) 13:38:44
すいません。
自己解決しました。
ツール→オートコレクトの一覧から削除すればいいですね。
失礼しました。

505 :502:2005/04/15(金) 13:40:00
>>503
ありがとうございます(^^;


506 :489:2005/04/15(金) 13:41:04
>>492さんありがとうございます。
勉強してみます。

それに付随する質問なのですが、今の場合はシート1のシート1のすべてをシート2に一致させるような形だと思うのですが、シート1にあるA1:B100までの表だけをシート2のA1:B100に丸ごと自動的に写るようにするにはどうやるのでしょうか?

条件は>>489の同じように挿入や削除をしても行や列、関数や書式などがシート1のA1:B100とシート2のA1:B100とが常に全く変わらずに同じ状態にあるような形です。

これはどうしたらできるのでしょうか?


507 :492:2005/04/15(金) 13:58:42
>>506
一致させるのが値だけでいいなら、
=INDIRECT(ADDRESS(ROW(),COLUMN(),1,1,"Sheet1"))
という方法もあるけど、
数式や書式も一致させたいなら>>492の下のやつの範囲を変更すればいい。

Private Sub Worksheet_Change(ByVal Target As Range)
 Worksheets("Sheet1").Range("A1:B100").Copy
 Worksheets("Sheet2").Range("A1").PasteSpecial
 Application.CutCopyMode = False
 Target.Select
End Sub

ただ、>>492で書いたやつもそうだけど、セルの値や式が変更されたときにコピーを実行するので
値や数式以外(書式や修飾など)を変更した場合はコピーは実行されない。
SelectionChangeを使ってもいいけど、その辺は処理速度と見合わせて勝手に決めて。

508 :名無しさん@そうだ選挙にいこう:2005/04/15(金) 14:05:52
質問です
1つのファイルに表を各シートにたくさん作りたいんですが
罫線をそれぞれのシートに入れるとファイル容量が馬鹿でかくなります
全ての表の罫線様式は同じなので雛型を作って使いまわししたいのですが
データを別に入れて印刷時のみ罫線が入ってくれるのが理想なんです
教えてください、お願いします
ソフトはEXSEL2000を使ってます

509 :489:2005/04/15(金) 14:21:47
>>507
ありがとうございます。
さっそく取り掛かってみます。

510 :名無しさん@そうだ選挙にいこう:2005/04/15(金) 14:24:48
>>508
流れとしては
1.データのシートのコピーを作る。
2.罫線等の書式を1.に貼り付け。
3.印刷。
4.コピーのシートを削除。
でどうでしょうか。


511 :508:2005/04/15(金) 15:12:42
>>510
解答ありがとうございます。
罫線のデータシートをコピーしてそこにデータのみを貼り付けるってことですね?

しかしながらデータの量が200ほどあり貼り付け作業だけでも大変な量になります
他にいい方法はないのでしょうか。。



512 :名無しさん@そうだ選挙にいこう:2005/04/15(金) 15:16:21
>>511
んじゃVBAで。
コード書くのと手動でやるのとどっちが面倒か考えて
好きなほうをとればいい。

513 :489:2005/04/15(金) 15:51:32
一致させるのを値だけにする=INDIRECT(ADDRESS(ROW(),COLUMN(),1,1,"Sheet1")) を使った方法も詳しく教えて頂けないでしょうか。

シート1のA1:B100とシート2のA1:B100の値だけを一致させて、挿入や削除をしても行、列が一致するという感じです。

514 :492:2005/04/15(金) 16:09:58
>>513
いや、そのまんまだよ。
この式はROW()とCOLUMN()が可変値なので、全てのセルで同じ式でも
返る結果はセルごとに変わってくる。
=ADDRESS(ROW(),COLUMN(),1,1,"Sheet1")
にして結果を見ればどういうことなのかは一目瞭然だよ。

Sheet2のA1:B100をSheet1のA1:B100に合わせるなら、
Sheet2のA1:B100の範囲全てにその式を入れればいいだけ。

515 :489:2005/04/15(金) 17:09:55
>>514さん
了解です。どうもありがとうございます。

516 :508:2005/04/15(金) 20:52:24
>>512
VBAかぁ。まったくしらないんだよなぁ。
時間はあるんで調べながらいろいろやってみます
ありがとうございました。

517 :名無しさん@そうだ選挙にいこう:2005/04/16(土) 07:13:13
Worksheet_SelectionChange
で、入力規則のリストが設定されてるセルでのみあるコードを実行したいのですが
If Target.Validation.Type = 3 Then
とやっても、リストが設定されてるセルでは正常に実行されるけど
入力規則が設定されてないセルではエラーが出ます。
On Error Resume Nextとかではなく、入力規則が設定されてないセルで
エラーが出ないようにするにはどうすればいいでしょうか?

518 :名無しさん@そうだ選挙にいこう:2005/04/16(土) 12:55:12
>>517
Target.Validation.Typeが存在しないセルであればそりゃエラー
がでますが。
なんでOn Errorではだめなの?

519 :名無しさん@そうだ選挙にいこう:2005/04/16(土) 13:27:21
Excel 2000,XPです。

ツールにある新しいマクロの記録でマクロを作りました。
そのマクロの処理の途中、他のファイルのデータを利用したいのですが処理毎にデータの数が変わります。
そこだけ手動で選択範囲を決めることって出来ますでしょうか?

              Workbooks.Open Filename:="D:ファイル名.xls"
ここの部分が毎回変わる→ Range("A807:D814").Select
             Selection.Copy
             Application.WindowState = xlMinimized
             Windows("Book1").Activate
             ActiveSheet.Paste


変わるのは行数のみで、列は変わりません。
よろしくお願いします。

520 :名無しさん@そうだ選挙にいこう:2005/04/16(土) 14:24:13
>>519
範囲を選択してからマクロを動かすようにすれば?

Dim r as range
r=selection
<-ここに今使っているマクロを記述->


そして

Range("A807:D814").Select
Selection.Copy

の部分を

r.Copy

に変える。


521 :名無しさん@そうだ選挙にいこう:2005/04/16(土) 14:24:49
>>520
r=selectionではなく set r=selection

522 :517:2005/04/16(土) 14:38:23
>>518
「Target.Validation.Typeが存在しないセル」
ってのがどういう風に記述すれば良いのですか?
それが解れば
If Target.Validation.Typeが存在しない Then Exit Sub
とかでもいいんだけど。
On Errorみたいにエラーが出てるけど表示しないだけってのは
精神的によろしくないので一時的にでも使いたくないです。

523 :名無しさん@そうだ選挙にいこう:2005/04/16(土) 15:44:04
>>519
Dim aa As Range

On Error Resume Next
Application.DisplayAlerts = False

Workbooks.Open Filename:="D:ファイル名.xls"
Set aa = Application.InputBox("えらべ", Title:="範囲選択するぽ", Type:=8)

If aa Is Nothing Then
MsgBox "選んでないぽ", 16, "キャンセルしたぽ"
Else
aa.Copy
Me.Activate
ActiveSheet.Paste
End If
Workbooks("D:ファイル名.xls").Close SaveChanges:=False
On Error GoTo 0


524 :名無しさん@そうだ選挙にいこう:2005/04/16(土) 16:15:59
中国の掲示板に投稿された影響で、CNNの調査が中国寄りになってます。
世界の人たちが勘違いしてしまいます。「NO」 に投票して下さい。
http://edition.cnn.com/2005/WORLD/asiapcf/04/15/china.japan/index.html
(内容) 本文: Do you think China's anti-Japanese sentiment is justified?
訳: あなたは、中国の排日感情が当然であると思いますか?

投票は 「NO」「NO」「NO」「NO」「NO」 で

現時点で、YESが80%近くもあるよ。




525 :名無しさん@そうだ選挙にいこう:2005/04/16(土) 16:55:25
>>522
存在しなければエラーになるんだから、エラーになるときと
ならないときで分岐させればIfと同じことでしょ。
On Errorでね。

526 :519:2005/04/16(土) 17:49:22
レスありがとうございます。

>>523
コンパイル エラー
Meキーワードの使用方法が不正です。
となってしまいました(´;ω;`)


>>520
>範囲を選択してからマクロを動かすようにすれば?

そうですね。

523さんが作ってくださったマクロを見るとなんだか難しいそうなことが
沢山って感じなので、諦めて分けて作業するようにします。

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





527 :名無しさん@そうだ選挙にいこう:2005/04/16(土) 18:05:18
>>526
シートのイベントに貼り付けて試してたのをそのまま張って
直してなかった、スマソ。Windows("Book1")でも適当に直してちょ。
ブックを起動して、選択した範囲を貼り付けるっていうもの。

528 :519:2005/04/17(日) 00:11:26
>>527
おお、動きました〜。
ありがとうございます。


529 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 09:46:58
Excelのバージョンは2000です


A B
1 100 a社
2 100 b社
3 200 a社
4 500 a社
5 300 b社


という表でB列にa社と入っている行のA列の数字の合計を
計算するにはどういう関数でどういう式を書けばよいのでしょうか?

530 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 09:48:56
すいません表が読みにくくて。。。

A列には"100","200"といった数字が
B列には"A社",B社"という文字が入っています

よろしくお願いします

531 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 10:03:59
>>529-530
=SUMIF(B1:B5,"A社",A1:A5)

532 :529:2005/04/17(日) 10:27:02
>>531
即レス感謝です


533 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 13:05:47
すみません、最近パソコンを始めた初心者なのですが

Excelを開くと新規のシートが出ますよね?
今まではそれが普通だったんですが、気付いたらExcelを開いても新しいシートが出てこず、灰色の背景とワクのみが表示されるようになってしまいました。。
いちいち新規作成から始めなければならない状態なのですが、戻し方のわかる方、どうか教えて下さい!!

534 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 13:20:58
>>533
eオプションが掛かってるんじゃないの?

535 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 13:58:09
>>533
PERSONAL.XLSを探して削除する

536 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 14:16:43
シート1にフォームのような形、シート2、シート3・・・にシート1のフォームで入力した変数を表示させたいです。

イメージとしては、
_root--sheet1 -A1
    -sheet2 -B2
-sheet3 -C3

のようなパス構造だと仮定して、

/*sheet2-B2 のシンタックス*/
this._thing = _root.sheet1.A1
のように変数制御したいです。

検索がうまく出来ないので、検索のヒントをお教え願えると幸いです。
よろしくお願いします。


537 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 14:24:55
>>536
べつにシート2の表示したいセルで=を入れてリンクしたい
Sheet1のセルを選択してからEnter押せばいいだけではないのか?
何をやりたいのかさっぱりわからないです。

538 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 14:26:19
>>537
てか、本当にフォームを作ってそこに入力したデータなりを
Sheet2に表示させたいってこと?

539 :536:2005/04/17(日) 14:26:50
そのとおりですー。

シートを超えてリンクをしたいなーと思ってまして。
エクセル難しくてわからなかったです。
どうもありがとうございました。

540 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 14:33:25
質問でっす!!!

VBAってのに興味があるんですが、たとえばこんな事って出来るでしょうか?

”終了”(自分で作った奴)ボタンを押すと
・あらかじめ指定してある特定のアクセスのデータベースに要素を追加。
・入力したエクセルデータ(自分)をリネームして保存。
・保存した物を指定しておいたメールアドレスに送信。

教えてくださいー。

541 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 14:36:06
>>540
できるんでないの。

542 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 14:46:20
>>540
全て出来るよ。
「方法が知りたい」ではなく「興味がある」なら、
具体的な方法は自分で調べた方がいいよね。
がんばってね。

543 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 15:58:36
4店舗別の集計がCSVファイルで出力されて、読み込ませた後、
ピボットテーブル作って一覧表にしたいのですが、
CSVファイル名が日付ごとににかわります。

日報、01号店、05年、4月、01日、01回目だと
【N010504011】が、
日報、01号店、05年、4月、07日、01回目
【N010504071】に。
【N020504071】【N030504071】【N040504071】も同じく。

毎日マクロで、読み込ませて、csvを一覧表にしたいのですが
マクロ記憶で、シート名かえても記憶されませんでした。

なにか手法があればご教授ねがいます。


544 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 16:29:40
excelで作ったデータをHTMLのテーブルとして保存するとCSSが勝手に付加されるのですがこれをなくすほうほうってありませんか?

545 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 18:51:57
質問です。
ADDRESS(ROW(),COLUMN(),1,1)からADDRESS(ROW(),COLUMN()+200,1,1)まで合計したいときはどのように入力すればいいのでしょうか?



546 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 18:53:11
>>543
読み込み部分は例えば下のようにする。

Dim myFileName
myFileName = Application.GetOpenFilename(FileFilter:="データ (*.csv;*.xls), *.csv;*.xls,全てのファイル (*.*),*.*", _
Title:="データを選択してください", MultiSelect:=False)

で、読み込んだファイルに対してマクロで作業を書いていくとか。


547 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 18:58:30
>>545
何をやりたいのか良く分かりません。
なぜSUM()関数を使わないのですか?

548 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 19:02:49
>>544
手動で削除しかなかったような、、、

549 :545:2005/04/17(日) 19:04:55
>>547
SUM関数でやってみたのですが、SUM(ADDRESS(ROW(),COLUMN(),1,1,"シート名"):ADDRESS(ROW(),COLUMN()+200,1,1,"シート名")と入力してもエラーが出てしまいうまくいきません。
しかも関数が長くなってしまうので、他にいい方法がないかと思い質問したんですが



550 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 19:11:53
>>549
なぜSUMの中にADDRESSを入れるのですか?
そもそも自分自身を含めた領域の合計をそこに表示できるわけ
ないじゃないですか。
SUM(A5:A105)などではなぜ駄目なのですか?

551 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 19:15:48
>>549
もしかして別のシートの合計を求めている?
それであっても =SUM( と入力してから他のシートの合計したい
領域をせんたくすると、自動的に領域が記載されるので、最後に
) を入れてEnterを押せばいいのではないですか?

552 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 19:18:03
>>551
例えば =SUM(シート名!C2:Z2)

553 :545:2005/04/17(日) 19:22:57
>>550-552
別シートの合計です。
=SUM(シート名!C2:Z2)だと行を挿入したり削除すると値が変わってしまうんですよね。


554 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 19:25:52
>>553
なるほど、ちょっとまって。

555 :545:2005/04/17(日) 19:30:29
>>554
はい。
並べ替えなどをしても大丈夫な感じにしたいんです。

556 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 19:37:54
=SUM(INDIRECT(ADDRESS(ROW(),COLUMN(),1,1,"シート名")&":"&ADDRESS(ROW(),COLUMN()+200,1,1)))

557 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 20:24:05
めし食ってる間に回答が出ていたか w

558 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 20:30:09
>>546
ありがとうございます!
やってみます。

559 :545:2005/04/17(日) 20:39:56
>>556
できました。ありがとうございます。
でも何で最初のADDRESS関数には"シート名"をつけて、後ろのADDRESS関数には"シート名"をつけないのでしょう?
ためしに後ろの関数に"シート名"をつけると#REF!になってしまいました。

560 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 20:53:27
>>559
ADDRESS関数の仕様を見ればわかります。

561 :556:2005/04/17(日) 21:02:56
>>559
別シートを範囲参照する場合は、>>552みたいに先頭にだけシート名を付けるでしょ。
>>556の式で両方に"シート名"を入れると、式の内容は「=SUM(シート名!C2:シート名!Z2)」のようになってしまう。

こういう式書くときは最初から仕上げに掛かるんじゃなくて、SUM関数の中にどういう式を入れたいかを考える。
たとえば式を入れるのがA1で、式の内容が=SUM(シート名!A1:GS1)なら
「シート名!A1」 = ADDRESS(ROW(),COLUMN(),1,1,"シート名")
「:」 = ":"
「GS1」 = ADDRESS(ROW(),COLUMN()+200,1,1)
これらを&で繋げて結果を確認

シート名!$A$1:$GS$1 =ADDRESS(ROW(),COLUMN(),1,1,"シート名")&":"&ADDRESS(ROW(),COLUMN()+200,1,1)

(絶対参照になってるけど)式の結果が文字列として正しく参照先を示してれば、
あとはINDIRECT関数で文字列を参照文字にしてSUMに渡してやるだけ。

慣れれば>>556の式くらい頭から書けるけど、慣れないうちに関数を多段で使う場合は
中の関数の返す値が正しいかどうかきちんと調べた方がいいよ。
そうすれば問題点を見つけやすいから。

562 :>>543:2005/04/17(日) 21:26:23
>>546だと一枚ずつ開くわけですよね。
日付ごとに変わる4枚のcsvファイル、
いっぺんにオープンは無理ですかね?

563 :545:2005/04/17(日) 21:41:13
>>561
そうでしたか。
ありがとうございます。

564 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 22:03:48
シート1のA1〜A10に数字が入ると、シート3のE1にその合計が入り、また、シート2のB1〜B2に数字が入るとその合計の数が同じくシート3のE1から引かれて、シート3のE1に残高が出るというのはどう関数を組み合わせて作るといいのでしょうか??

565 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 22:07:20
シートAのA1に何か文字を入れると、シートBのA1に同じ物が書き込まれる。
ってのがやりたいのですが、シートBのA1に =XXXXX  何と書けばいいのでしょうか?

>>561の式を見ても良くわからなかったので教えてくんなまし。

566 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 22:28:16
>>562
MultiSelect=True に書き換えると一度に複数ファイルを選択
できます。このとき myFileNameは配列としてブックを参照
しているから For each で回して同じ処理ができます。
ここから先は自分で勉強して、分からない部分をまた聞いてください。

567 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 22:32:06
>>564
関数だと循環参照になって無理
VBAを使うべし

>>565
=シートA!A1

568 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 22:34:12
>>564
1) シート3のE1を選択してツールバーのΣをおす。
2) すると自動的に=SUM() が出てきてカーソルが()の真ん中で
 点滅。
3) そのままシート1を選択してA1からA10を選択すると、
 =SUM(Sheet1!A1:A10) となるからEnterを押す。

これでだいたいやることはわかるんでは?

>565
1) シートBを選択して入力バーに = を入力。
2) そるままシートAを選択して更にA1を選択。
3) そしてシートBに戻ると =SheetA!A1 と書かれているからそのまま
 Enterを押す。

569 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 22:43:47
>>567VBAだとどう組めばいいですか?



570 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 22:51:16
>>569
え?
>同じくシート3のE1から引かれて、シート3のE1に残高
ってのは本気ですか?

だったらIfでやればVBAつかわなくてもできますが?
でも、失礼ながら、やめたほうがいいと思いますよ。
多分メンテできないんでないの、自分でも、、、

571 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 22:57:15
>>564
If(シート1!A1:A10<>0,If(SUM(シート2!B1:B2)<>0,SUM(シート1!A1:A10)-SUM(シート2!B1:B2),SUM(シート1!A1:A10)),"")

572 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 23:33:49
>>566

ありがとうございます。

573 :名無しさん@そうだ選挙にいこう:2005/04/17(日) 23:46:48
エクセルを覚えようと思います。
エクセルでは簡単な表計算くらいしかやった事ありません。
印刷物などはDTPの専用ソフトを使うので、その目的で使うつもりもありません。

ただし、社内でのデータ整合の兼ね合いから、どうしてもシェア的に無視できなくなり、覚えようと思う次第にございます。

業務で扱える物としては、C、Java、ECMA系(JavaScript,ActionScript)、Perl、PHP、HTML、CSS
なのですが、エクセルを使える!!!と言えるようになるまで、どの程度の期間を見ておくべきでしょうか。
上司に目安を報告しないといけませんで・・・。

ぶっちゃけた話、エクセルの初心者本を見ても、何が何やらさっぱりで・・・。
こんな難しい物を使いこなせるなぁ・・・とほとほと感心するしかありません。

と話は逸れましたが、初心者から中級〜上級レベルに行くまで、どの程度の期間を見るべきでしょうか。
アドバイスお願いします。

574 :567:2005/04/17(日) 23:52:16
>>564
難しく考えすぎていたorz

=SUM('シート1'!A1:A10)-SUM('シート2'!B1:B2)

これで出来ないか?

575 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 00:04:06
>>573
CだJavaだが分かっているなら一ヶ月で楽勝でしょ。
しかも充実したヘルプがあるし、何よりマクロの自動記録が
あるから、即日使えるようになりますよ。
ヘルプの関数一覧をまず見てどんな関数があるのかを
調べればいいのでは?

576 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 00:19:28
>>573
何をもって中級上級と判断するのかわからないが
シナリオ・ゴールシーク・ピボットあたりが中級なら一ヶ月じゃちょっと無理
Cが使いこなせてるようならVBは簡単なはず
VBAを上級とするなら中級が抜けた上級といった変なことになりそうだが・・

誰が見ても上級以上になるには半年はかかると思われる
使用頻度の少ない財務関数やエンジニアリング関数を理解するのは至難の業



577 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 00:27:26
>>576
ビボットは多少時間が掛かるにしてもシナリオ、ゴールシーク
はマンマだから一日でしょ。
意外にグラフは時間が掛かるけどね。
何ができて何ができないかを知るのに時間掛かる。

578 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 00:45:04
俺、ピポットテーブルとか一回も作った事ないけど

大抵の関数とVBA ADOあたりは使いこなせるんだが
こういうのも中級が抜けた上級という事になるのか・・・・

時間的に余裕がないと、いじり倒せないのが原因かな

579 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 00:52:42
>>571
どもです
最初そういう感じの関数が作りたかったんです

>>574
予想を裏切り超簡単にできちゃうんですね
目から鱗とはまさにこんなことか
明日会社でやって見ます。


580 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 05:09:08
>>533ですが
>>534さん、>>535さん、ありがとうございます!!
どちらとも知らない言葉なのですが‥とりあえずググってみます(`・ω・´)
ほんとにありがとうございました!!!

581 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 13:42:25
エクセルのVBAでセル内の文字列から小文字「ぁぃぅぇぉ」などを
検索するにはどのようにすればいいのでしょうか?
FIND関数を使用すれば検索はできるのですが、FIND関数は1文字のみの検索しかできず
小文字を検索すると数が多いため効率が良いとは思えません。

効率悪くてもFIND関数で1文字ずつ検索するしかないのでしょうか?

582 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 14:05:39
>>581
"ぁぃぅぇぉ"という文字列を探したいんじゃなくて、
"ぁ,ぃ,ぅ,ぇ,ぉ"のどれかを含むセルを探したいんなら
普通は1文字づつ処理するしか無いね。
でも配列とFor文使えばそんなに大変じゃないでしょ。
Dim Buf As Variant
Buf = Array("ぁ", "ぃ", "ぅ", "ぇ", "ぉ")
For i = 0 To 4
 Range.Find(Buf(i))
Next i
これは1つの条件を範囲に対して検索し、それを条件数分繰り返す方法。
逆に一つのセルに対して複数の条件を検索し、それを一定範囲繰り返すなら
Dim Buf As Variant, RngObj As Range
Buf = Array("ぁ", "ぃ", "ぅ", "ぇ", "ぉ")
For Each RngObj In Selection
 For i = 0 To 4
  If InStr(1, RngObj.Text, Buf(i)) > 0 Then 処理
 Next i
Next RngObj
なんて方法もあるけど、1文字ずつ検索した方が効率良かったりする。

どちらがいいかは最終的には君が決めるものだし、
検索した後何がしたいか解らなければアドバイスすらできないな。
あとはこの情報を元に自分で判断するもよし、要望をきちんと書いて皆の意見を聞くもよし。

583 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 14:29:12
>>582
回答ぁりがとうございます♪配列を使うのは考えてはいたのですが件数が多いのでどうしようかと思っていました。
やはり1文字ずつ検索かなとは思ってはいるのですが・・・

それと、自分がやりたいことですが具体的に、全銀フォーマットと言うTxtファイルで出力するときに
小文字「ァ,ィ,ゥ,ェ,ォ」などの小文字は使用できないのです。よって、エクセルからtxt形式に出力するときに小文字が混入されていると
エラーを返すようにしたいのです。

そこから小文字を大文字(ァ→ア)に修復する場合も考えていますが、検索さえわかればReplaceメソッドを使えば置き換えは分かるので
検索方法だけ聞きました。


これから自分でも>>582さんの下段の方法も参考に考えてみます。もし良い方法ありましたらょろしくぉねがいします><

584 :582:2005/04/18(月) 15:08:03
>>583
俺ならこんな感じにするかな。

Dim Buf1 As Variant, RngObj As Range, RngBuf As String, i As Byte
Buf1 = Array("ぁ", "ぃ", "ぅ", "ぇ", "ぉ") '検索対象
Buf2 = Array("あ", "い", "う", "え", "お") '置換文字
For i = 0 To 4 '検索条件の数-1
 With Range("A1:C3") '検索範囲
  Set RngObj = .Find(Buf1(i))
  If Not RngObj Is Nothing Then
   RngBuf = RngObj.Address
   Do
    Set RngObj = .FindNext(RngObj)
    RngObj.Value = Replace(RngObj.Text, Buf1(i), Buf2(i))
   Loop Until RngObj.Address = RngBuf
  End If
 End With
Next i

585 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 15:42:07
給料計算表を作成したいときに、時間の入力をテンキ−だけで
すませられないでしょうか?
たとえば8:30の「:」を「.」で入力しても「:」と表示され、
時間計算をきちんとしてくれないかを考えています。

やり方をご存じの方、よろしくお願いします。

586 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 15:48:42
質問させてください。
1日1440分の1分おきの状態のデータ、シフト1(=1),シフト2(=2)・・外出(=0)などがデータとしてあり、

*******************************
データ
分  0 1 2 3 4 ......1439 1440
3/1  1 1 1 0 0 ................ 2 2
3/2 3 3 3 3  .............0 0
*******************************
こんな感じのデータ

これを下図のように1日分の帯グラフにして色分け出来ますでしょうか?


   0時          12時         24時
   ----------------------------------
3/1 | シフト1 | 外出 | シフト2 |
   ----------------------------------
   ----------------------------------
3/2 | シフト3 | 外出       |
   ----------------------------------

ご存知の方がいらしたら教えてください。もし無理ならば、データ自体をを「何時何分 シフト2に変更」など
のデータにする事も可能です。

587 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 16:04:57
>>583
Dim RE
Dim strPattern As String
Dim r As Range

Set RE = CreateObject("VBScript.RegExp")
strPattern = "(ぁ|ぃ|ぅ|ぇ|ぉ)"
With RE
.Pattern = strPattern
.Global = True
For Each r In ActiveSheet.UsedRange
If .Test(r.Value) Then
r.Interior.ColorIndex = 6
End If
Next r
End With
Set RE = Nothing

588 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 16:29:53
またあそこのコピペか。

589 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 17:52:40
あそこって田中亨か?
まあ、有名どころだからな。

590 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 18:18:32
MSDNじゃないのか

591 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 18:33:03
Excelでたとえば
3030905→昭和03年09月05日とか
4070806→平成04年08月06日とか
修正する方法ありませんか?

592 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 18:41:17
>591
一桁目は元号か? 3→昭和 4→平成?
あと、見た目だけ「平成04年08月06日」になればいいのか、
計算で使えるようなきちんとした日付データに修正したいのか、どっち?

593 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 18:41:21
>>585
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Target.Value = Left(Target.Value, InStr(1, Target.Value, ".") - 1) & ":" & Left(Mid(Target.Value, InStr(1, Target.Value, ".") + 1) & "0", 2)
Application.EnableEvents = True
End Sub

範囲はそっちで勝手に指定して。
分の1桁目が0の場合以外なら
Target.Value = Replace(Target.Value, ".", ":")
だけで逝けるんだけどね。


>>591
ワークシート関数で? VBAで?
VBAなら、入力を置換? 別セルに結果を返す?

それと先頭が3なら昭和、4なら平成ってことでいいのかな?
ついでに文字列として返せばいいの? それとも計算に使えるように日付(シリアル)値+表示形式?

君は脳内で理解してるからいいけど、他人に聞くときは条件と要望をきちんと書いてね。
俺らエスパーじゃないんだから。

594 :591:2005/04/18(月) 18:41:24
年月日になれば、西暦でも構いません。

595 :591:2005/04/18(月) 18:44:51
>>592.593
早速の回答ありがとうございます。
お察しのとおり、最初数字は文字登録されており
それをそれぞれ一括で日時データーに直したいのです。
方法は、関数でもVBAでも構いません。

596 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 19:02:47
>>595
4070806は平成04年ではなく平成07年でいいのかな?
それなら
myDate = "4070806"
Buf = Array("昭和", "平成")
.Value = CDate(Buf(Left(myDate, 1) - 3) & Mid(myDate, 2, 2) & "年" & Mid(myDate, 4, 2) & "月" & Mid(myDate, 6, 2) & "日")
.NumberFormatLocal = "gggee年mm月dd日"

西暦にしたければ
.NumberFormatLocal = "yyyy年mm月dd日"

597 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 19:38:04
Sheet1 の A1 が ”foo" だった時、 Sheet2 の B2 にオートシェイプの楕円(座標でもOK)
Sheet2 の A1 が "bar" だった時、 Sheet2 の B3 にオートシェイプの楕円

を書く事がしたいです。

if(Sheet1.A1=="foo") { Sheet2.B3_daen._visible=false}
else if(Sheet1.A1=="bar") { Sheet2.B2.daen._visible=false}

みたいなイメージなのですが、エクセルではどのようにしたらよろしいでしょうか?
教えてくださいませ。よろしくお願いします。ペコリ

598 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 20:03:47
Cdate(1)だと返される日付は1899/12/31
セルのシリアル値の1は1900/1/1(Win版Excel2003)。
シリアル値38460は2005/4/18…で、Cdate(38460)も2005/4/18

ttp://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200503/05030091.txt
ここ読むとワークシート関数とVBAのDate型の仕様が違うって書いてあるけど
だったら何で現在の日付だと一致するのか俺アホすぎてわからんよ…教えてエロイ人。

599 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 21:01:17
エクスプローラ上でEXCELファイルを複数ダブルクリックした場合、EXCELのプロセスが一つだけ起動して複数のファイルを表示しますが、これをファイル毎に別のEXCELプロセスが起動されるようにできないでしょうか?


600 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 21:21:24
質問です。
エクセルを勉強しようと思って、先ほど本屋に行ったんですが、
あまりに種類が多すぎて何を買っていいかわからずに帰ってきました。
全くの初心者が、はじめに買えばいい本は何があるでしょうか?
関連サイトはいくつか行ったんですがどれも難しく、また電車内でも勉強したいので
おすすめの本があれば、教えていただけますか。

601 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 22:51:36
>>598
1900年2月29日のあるなしだから、1900年3月1日以降は
同じということだと思いましたが、、、

602 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 22:53:15
>>599
DDEの設定をいじる

603 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 23:10:37
>601
閏年か!確かにCDate(60)は1900/2/28を返しますね。なるほどthx!

604 :名無しさん@そうだ選挙にいこう:2005/04/18(月) 23:26:10
>>600
入門書ならどれも同じようなもの。
電車の中で読むならポケットサイズのでいいんじゃない?


605 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 00:00:41
ちょいと相談ってか質問

A1に-18.6
B1に19.5
C1に=A1+B1
D1に=IF(C1>=0,ROUNDDOWN(C1,1),(ROUNDUP(C1,1))

答えは0.9なのに0.8とでる

どこか間違えてますか?それともバグでしょうか?

606 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 00:10:36
>>605
はあ? 0 になりますが何か?

607 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 00:32:43
あにょー0はおかしいでしょ(C1,1)って書いてるし

D1=IF(C1>=0,ROUNDDOWN(C1,1),ROUNDUP(C1,1))

修正、さっきのはカッコがひとつじゃまだった


608 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 00:58:12
丸め誤差じゃないの?
[XL2003] 小数を使用した計算の誤差について
ttp://support.microsoft.com/default.aspx?scid=kb;ja;813530

609 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 01:03:20
ほんとだ、桁数を増やしたら(ry

ありがとさんでした

610 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 01:03:26
>585
ググってたらご希望の「.」じゃないけど、オートコレクトで「..」を修正後「:」に登録してやる方法があったよ。


611 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 01:34:03
http://www.tenki.jp/data/himawari/japan/sekigai/05041815.gif

みたいなページ最後の/05041815.gifの数字を操作して
たとえば+ボタンみたいのを用意して5041816 05041817というふう
に簡単に画像を取り込みたいのだけどどうすればいいのでしょうか。
Webクエリを使うといちいちアドレスをかえて取り込まないと
だめのようですが。



612 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 01:37:43
>>604
ありがとうございます。
明日もう一度行ってみます。

613 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 10:35:57
シート1の内容をシート2にそのまま複製したいのですが、
オールコピー&ペーストではセルの幅などがデフォルトのままになってしまいます。

行・列の幅なども含めて、そのままのレイアウトで全て複製する方法を教えてください。
よろしくお願いします。

614 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 10:48:44
>>613
・Ctrlを押しながらシートタブをD&D
・シートタブで右クリック→移動またはコピー→以下略
・メニュー→編集→シートの移動またはコピー→以下略

615 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 11:01:55
A列  B列 C列
sheet2 A1  sheet2のA1を表示する数式
sheet3 A1  sheet3のA1を表示する数式
sheet4 A1  sheet4のA1を表示する数式


こんな感じにしたいんだけど
出来ますか?

616 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 11:09:31
>>615

>>489-507を読め

617 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 11:50:42
デスクトップにあるショートカットからExcelを起動しようとするとインストーラーが起動して、Office XP PersonalのCD
を要求してきます。でも、C:\Program Files\Microsoft Office\Office10の中にあるEXCEl.exeから起動すると、同じよう
にCDを要求されるのですが、キャンセルし続けるとそのままExcelが使えるようになります。解決方法は無いでしょうか?
再インストールしたいのですが、実家にCDがあるため出来ません><
OSはXP SP2で、他のワードなどは問題なく使えます。エクセルもちょっと前までは普通に使えてました。


618 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 12:02:57
>>617
再インストールしてください。

というか、なんで実家にCD置いてあるの?
実家のPCと今使ってるPCの両方で同じExcelを使ってるのか?
不正使用者にはここでは回答付かないよ。
「たまたま忘れてきた」とか苦しい言い訳でもしてみるか?

619 : ◆a6upsHKAk2 :2005/04/19(火) 12:26:20
すいません、オートフィルについての質問です。
=B1
=B11
=B21・・・
という順にセルを参照していきたいんですが、この3列を下に伸ばすと
=B4
=B14
=B24
=B7
=B17・・・という形に伸びてしまい、うまくB1,B11.B21.B31という風になりません。

「参照先が10行づつ下に下がる」というのを次々コピーしていくには
どうすれば良いのでしょうか。わかる方、お願いします。


620 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 12:37:24
>>619

>>263

なんか今日は現行スレ内で既出の質問する奴が多いな。

621 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 12:39:52
>>620
うわー!すいません!ありがとうございました!

622 :617:2005/04/19(火) 12:54:52
>>618
大学で購入したPCで、通い始めは実家で使ってたのですが、最近一人暮らしを始めて、その時の引越しで
実家に置きっぱなしで来てしまったんです。

623 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 12:58:33
>>622
実家からCD送ってもらえ。(着払いで)
今の不都合による無駄な手間と
送料の数百円と、どちらが惜しいかは自分で判断しろ。

624 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 14:33:55
セルにカーソルを置いたとき
その行と列がわかりやすいように色をつけることできますか?

625 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 14:35:14
たとえばB10にカーソルおいたときに
Bの列と10の行のラインだけが色が変わるような。

626 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 14:44:56
>>624-625
Worksheet_SelectionChangeイベントを使えば出来るけど
既存の背景色設定があるとちょっと面倒だな。

既存の背景色設定が無いなら、シートの背景色を全消去したあと
Rows(Target.Row)とColumns(Target.Column)に好きな色を指定すればいい。

627 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 16:12:38
ちょっと質問なんですが、csv形式のファイルをダブルクリックしても開かないのです。
EXCELのファイル→開くでやると開くのですが、ちょっと面倒なもので・・・
OSはXPhomeでEXCEL2003です。

628 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 16:18:55
>>627
既定関連付けに設定しろ。
あ、関連付け方法はスレ違いだからね。

ちなみに俺はcsvはcsvエディタに関連づけてる。

629 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 16:22:32
>>627

CSVファイルのアイコンを[Alt]押しながら右クリック。

[アプリケーションを開く]をクリックして、
「このファイルを開くときは...」のチェックボックスをオンにする。

プログラムの一覧からExcelを選択して開けば、次回以降Excelで開けるようになります。

630 :629:2005/04/19(火) 16:24:56
ちなみに、WindowsXPの場合は、
[Alt]押しながらじゃなくても、アイコンを右クリックすれば、
[プログラムから開く]-[プログラムの選択]で、
関連付けを変更できます。

631 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 16:31:32
611はやはり無理でしょうか

632 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 16:34:33
Excel2003使用しています。
ボタン作るのってどうするのでしょうか?

633 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 16:44:53
オートシェイプの適当な図形にマクロを登録するとボタンになります

634 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 16:46:21
優先1  優先2  優先3     結果表示

商品A  商品B  商品C     商品A
     商品B  商品C     商品B
          商品C     商品C
このように、結果表示を左側セル入力分を結果表示したい場合は
どのようにしたら良いでしょう?

635 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 16:47:55
ズレちゃったからもう一回

優先1  優先2  優先3     結果表示

商品A  商品B  商品C     商品A
      商品B  商品C     商品B
            商品C     商品C
商品A        商品C     商品A
このように、結果表示を左側セル入力分を結果表示したい場合は
どのようにしたら良いでしょう?


636 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 16:52:59
>>634-635
Dim i As Byte
For i = 1 To 3
 If Cells(i, 1).Value <> "" Then
  Cells(4, 1).Value = Cells(i, 1).Value
  Exit For
 End If
Next i

あとは勝手に弄って。

637 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 16:55:47
>>636
ありがとう!

638 :632:2005/04/19(火) 16:56:36
>>633
早速の回答ありがとうございます!マクロから勉強します・・

639 :624:2005/04/19(火) 18:05:50
>>626
ありがとうございました!

640 :627です:2005/04/19(火) 18:40:01
>>628-630 ありがとうございました。

641 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 18:47:38
>>631
Sheet1にImageっていう名前で四角のオートシェイプを貼り付ける。
ファイル名(時間)の範囲がよくわからなかったのでそこのチェックはしてない。
Up,Downを適当にボタンでもシートのイベントでも登録。

Sub Up()
Dim s As String, h As String

If Not IsDate(Left(Sheets("Sheet1").Range("A1").Value, 6)) Then
h = "http://www.tenki.jp/data/himawari/japan/sekigai/"
s = Format(Now, "YYMMDD") + "01.gif"
End If
s = Sheets("Sheet1").Range("A1").Value
s = Left(s, 6) + Format(Mid(s, 7, 2) + 1, "00") + ".gif"
Sheets("Sheet1").Shapes("Image").Fill.UserPicture h + s
Sheets("Sheet1").Range("A1").Value = s
End Sub

Sub Down()
Dim s As String, h As String

If Not IsDate(Left(Sheets("Sheet1").Range("A1").Value, 6)) Then
h = "http://www.tenki.jp/data/himawari/japan/sekigai/"
s = Format(Now, "YYMMDD") + "01.gif"
End If
s = Sheets("Sheet1").Range("A1").Value
s = Left(s, 6) + Format(Mid(s, 7, 2) - 1, "00") + ".gif"
Sheets("Sheet1").Shapes("Image").Fill.UserPicture h + s
Sheets("Sheet1").Range("A1").Value = s
End Sub

642 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 19:27:21
質問なんですが、
関数の入ってるセルの値だけをコピーしたいときはどうすればいいのでしょうか?

例えばあるセルにSum(C1:C10)の関数が入ってて、値が10になっていたとき、
別のセルに右クリックでコピーすると10という値ではなく、関数そのものがコピーされてしまうのですが
10をいう値をコピーしたいときどうすればいいのか教えてください。

643 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 19:38:48
>>642
形式を指定して張り付け → 値

ツールボタンも用意されてるのでよく使うならツールバーに出しておけ。
逆にActiveCell.Textをコピーするショートカットキーを作ってもいいけど。

644 :642:2005/04/19(火) 21:37:44
>>643
ありがとうございます。

645 :名無しさん@そうだ選挙にいこう:2005/04/19(火) 23:19:07
2002使用、初心者です。
調べたのですが分からなかったので教えてください。

一つの項目の数値を、複数のセルで表示したいとき
=シート名!セル名
で参照できると思うのですが、それをショートカットでやるにはどうすればいいでしょうか?
たしか、目的のセルで何かと何かを押してから、おおもとのセルでenterだと思ったのですが、
うろ覚えで分からなくなりました…
お助けください

646 :631:2005/04/20(水) 00:40:37
>>641
ここまで書いていただいてありがとうございます
Sheet1にオートシェイプ基本図形で四角をつくって
マクロの登録にとりあえずupを入れてはみたのですが
肝心のImageと名前がどうやってつければいいかわからないのです。
教えていただけないでしょうか。


647 :名無しさん@そうだ選挙にいこう:2005/04/20(水) 00:51:18
ズバリ自動化Waha! Transformer Personal 
ttp://www.vector.co.jp/magazine/softnews/050212/n0502122.html
これの、簡易版、フリー版てないですかね?
CSVデータのデータをを自動的に抽出して一覧表にたいだけなのですが。



648 :631:2005/04/20(水) 01:38:42

fxの左の名前ボックスで名前がつけられました
一発目の画像は取り込めました。あとは検証してみます
どうもありがとうございます>641


649 :名無しさん@そうだ選挙にいこう:2005/04/20(水) 02:29:05
>>645
そのすべての操作をキーボードショートカットでやるのは無理がある
マウスも使っていいのなら

Ctrlキーを押しながら複数のセルをマウスで選択
キーボードの = を押す
参照したい(シートを選択し)セルを選択
F4キーを押す
Ctrlキーを押しながらEnterキーを押す

650 :名無しさん@そうだ選挙にいこう:2005/04/20(水) 08:28:57
オフィス2003エクセルなんですが、
棒グラフに、その値の標準偏差を加えたい(グラフに重ねて表示)したいです。
標準偏差はすでに出したのであとはそれをグラフに重ねたいのですが。。
何か方法はありませんか?
要は、棒グラフの「I」こんな感じで標準偏差の区間を入れたいんです
何か方法ありませんか
スレ違いかも、、そうなら誘導よろしくお願い思案す

651 :名無しさん@そうだ選挙にいこう:2005/04/20(水) 08:35:00
出来合いの機能である、Y誤差範囲の標準偏差を使うのでは駄目なのか?
系列の書式設定に同名の該当タブがあります。

652 : ◆y7XYmaFpQA :2005/04/20(水) 11:43:26
すいません、セルの指定に関しての質問なんですが
「A行の、上から2番目に表示しているセル」を
反映することは可能なのでしょうか。
具体的には
   A     B   C    
1      「第○期 報告書」
2 第1期
3 第1期
4 第2期
5 第2期
6 第3期
7 第3期
8 第4期
9 第4期

という表で、オートフィルタをかけて
第2期だけを表示すると
B1のセルも「第2期」になるようにしたいのです。
よろしくお願いします。

653 :名無しさん@そうだ選挙にいこう:2005/04/20(水) 12:16:02
>>652
B2に「=ROW()」と入力して
A列の末尾までコピーしてB列を非表示
C1に「="「"&INDIRECT(ADDRESS(SUBTOTAL(5,B:B),1))&" 報告書」"」

654 :650:2005/04/20(水) 12:19:42
>>651
レスありがとうございます。さらに不都合なことがおこったのですが
棒グラフの個々の棒に固有の標準偏差を入れたいんです。
普通にやると、すべての棒に、1なら1、2なら2と言う具合についてしまいます。
個々の棒に固有ではいれれないんでしょうか?

655 :名無しさん@そうだ選挙にいこう:2005/04/20(水) 12:26:10
グラフに、最大値、最小値をいれることはできないんでしょうか?

656 : ◆y7XYmaFpQA :2005/04/20(水) 12:57:13
>>653
す・・・すごい・・・本当にできました。
現状、その式の意味は全く理解できませんが
改良していきたいと思います。
ありがとうございましたー。

657 :名無しさん@そうだ選挙にいこう:2005/04/20(水) 18:43:48
>>654
その「標準偏差」の下に「指定」ってのがあるでしょ。
そこに出したいエラーバーのデータ範囲を指定。

例えば、棒グラフが3本あって、その標準偏差の値が
Sheet1のC3、D3、E3に入力されていたら、
「指定」の項に =Sheet1!$C$3:$E$3 と入力。

658 :654:2005/04/20(水) 22:09:46
>>657
ありがとうございます!解決しました!

659 :名無しさん@そうだ選挙にいこう:2005/04/20(水) 22:11:07
月ごとに毎日の売上高グラフを作るときに、
どうしても線グラフがギザギザしてしまっていて
いまいち収入が増えていっているのか減っていっているのか
わかりにくいです。
スムージングをかけてみたのですが、あんまり改善されませんでした。

前後三日間の売り上げの平均値でグラフを生成すれば
それなりに滑らかになると思うのですが、
そういう機能はexcelについていませんか?

660 :名無しさん@そうだ選挙にいこう:2005/04/20(水) 22:15:19
>>659
グラフの元になる値を前後三日の平均値にすればいいじゃん。

661 :名無しさん@そうだ選挙にいこう:2005/04/20(水) 22:16:36
>>659
グラフ作った後にグラフ線を右クリックして近似曲線の追加。

662 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 08:21:37

Excel2002 SP3で、
入力規則・リストのドロップダウンリストや
Alt+↓で出る入力候補のリストで、マウスホイールが全く利きません。

マウスは現在A4TechのRFWOP-49と専用ドライバを使っていますが、
MSの5ボタンマウスと標準ドライバでも同じ症状でした。
どうすればホイールでスクロール出来るようになりますか?



663 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 11:19:04
A B
1 2005/1/1 100
2 2005/1/2 500
3 2005/1/3 300
(中略)
364 2005/12/30 300
365 2005/12/31 400
366 (空行)
367 (空行)
368 1月      (1月の合計)
369 2月      (2月の合計)
370 3月      (3月の合計)
(中略)
378 11月     (11月の合計)
379 12月     (12月の合計)



A列に日付、B列に売上金額が入力されています。
これを月ごとに集計してB368からB379に表示したいのです。
それでこんな式を入れました。
SUMIF(A1:A365,"37987<38352",B1:B365)

「37987<38352」の書き方が全然まちがっているのだろう、ことまでは
わかったのですが、ではどうすればよいか、というのがわかりません。
どなたかお助けください。


664 :663:2005/04/21(木) 11:20:17
A1からA365に入っているのは2004年でした。
すいません。

665 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 11:32:30
質問させて下さい。

OS:Win2000
Excelバージョン:2000

保存されているxlsファイルをダブルクリックすると、エクセルは立ち上がるのですが、
ファイルが開いてくれません。ちなみにその際、特にエラーメッセージ等は表示されません。

マイクロソフトのFAQを参考にして、
@ツール→オプション→全般→ほかのアプリケーション・・・のチェックを確認しましたが、チェックは入っていませんでした。
Aファイルの関連付けも確認しましたが、関連付けされていました。
Bまた、過去のバージョンとの競合が発生し、開かない事があるとの記述がマイクロソフトにあったので、
レジストリを確認しましたが、問題ありません。

他にどのような原因が考えられるでしょうか?
どなたかお願いします。

666 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 11:53:58
>>663-664
A368に1と入れて、A379までフィルコピー(A379が12になる)
A368:A379の表示形式を「0"月"」に変更
B368に
=SUM(IF(MONTH(A$1:A$365)=A368,B$1:B$365))
を入れてShift + Ctrl + Enterで確定(数式が{ }で囲われる)
B368をB379までフィルコピー
以上

667 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 11:58:28
>>665
1. Excelを立ち上げてExcelの」ウインドウにxlsファイルをD&D
2. 「ファイル > 開く」からxlsファイルを開く
3. Excelの実行ファイル(C:\Program Files\Microsoft Office\Office10\EXCEL.EXE)に
  xlsファイルをD&D

この3つを試して報告してくれ。
ちなみに3つとも正常にファイルが開けたら、Excelの問題ではなく
関連付けかシステムの問題なのでスレ違い。

668 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 12:05:49
>>666

日付から月の部分を認識させられるのですね…
ありがとうございました

669 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 12:27:35
>>667
ありがd。3つとも正常に起動できるので、スレ違いみたいです。


670 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 13:18:59
Excel2003使用しています。

入力規則でリストから選択して入力していますが、
リストを入力済みの別シートを参照にできますでしょうか?
元の値で別シートを参照しようとするとエラー音が出ます。


671 :670:2005/04/21(木) 13:24:18

すみません。自己解決しました。

672 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 18:51:41
A  B      
---------------------------
1 0   
2 0
3 0
4 Aの名前 フリガナ
5 Bの名前 フリガナ
6 Cの名前 フリガナ
7  0
8 0
9 0

Aセルに名前、Bセルにそのフリガナが、ある場所から連続に入力されてて
それ以外は0が入ってて
Range("A4:B6").Select
   ↑ ↑
   ここを決めたい場合はどうすればいいでしょうか


673 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 18:56:08
すいませんこれでお願いします
Aセル____Bセル      
0   
0
0
Aの名前 フリガナ
Bの名前 フリガナ
Cの名前 フリガナ
0
0
0


674 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 19:10:46
>>672
意味がよくわからん。
0以外の値が入る位置が可変で、VBAでその範囲を取得したいってことか?
それならこんな感じで逝けると思うが。
Range(Cells(Cells(1, 2).End(xlDown).Row, 1), Cells(Cells(10, 2).End(xlUp).Row, 2)).Select

違うなら日本語できちんと要望と条件を書いてくれ。

675 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 19:15:36
VLOOKUP関数で検索範囲を複数シートの同一場所のセルにしたいのですが
出来ますか?
VLOOKUPじゃなくても同じような事が出来れば教えてくださいお願いします。

676 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 19:19:14
>>675
> 出来ますか?
出来ない

> VLOOKUPじゃなくても
VBAで出来るだろうけど、具体的に何がしたいのか書かないと
具体的なアドバイスは何も出来ない。

677 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 19:23:50
>>676
ありがとうございます
できませんか残念です。
今、物品出納の帳簿を作っているのですが。
複数のシートにそれぞれの商品の出納帳簿を作り
その複数の帳簿の現在庫を一枚のシートで表示させたい
のです。

678 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 19:43:18
コメントありがとうございます!>>674
名前とフリガナだけを選択したいということなのです。
Aだけで言いますと0または名前が入ってるのは40行目までで
ある一箇所に連続して名前 Bのセルにフリガナが入っていて
0  ←一行目
0
0
名前  ←初めて名前が入った ここを選択の頭としてこれ以降連続に入っている
名前
名前  
0   ←名前の次に0があるということはその上までAとBのセルを選択したい
0
0
…40行目まで0が続く
ということなのです。




679 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 20:31:50
>677
各シートごとに現在庫を計算して、その計算してる現在庫セルを希望のシートにリンク貼り付けじゃダメなのか?
各商品ごとにシートがあるんじゃシートの数が凄いことになってそうだけど

680 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 20:37:47
うちは一枚のシートに全商品の入荷数、出荷数を入れて
別シートでSUMIF使って現在庫出してる。

681 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 20:53:05
(A1の選択肢)
関東
中部
関西

(A2の選択肢)
・A1で関東を選んだ場合→東京 神奈川 千葉
・A1で中部を選んだ場合→名古屋 三重
・A1で関西を選んだ場合→大阪 京都 奈良

と、A1の結果によって、A2の選択リストを変化させたいのですが
こういうのは不可能でしょうか?
選んだ項目は両方とも別シートに反映させたいのですが・・・

682 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 21:06:44
>681 データ-入力規則-入力値の種類-リスト 使えば?



683 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 21:17:03
>>682
ありがとうございます
A1では入力規則でリスト設定してるのですが
A1で選択した種類によってA2のリストを変えたいんです
それをどうやるのかがわからなくて・・・

684 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 21:25:40
EXCEL2003を会社で初めて使いました
今まで2000を使っていたので気になる点がいくつかあります。

・新規で開くと右側に自動的にツール画面らしきものが開きます
 不要なので開かないようにしたいです。

・計算式を入れると自動的にコメントが付いてきます
 処理が重くなるだけなので付かないようにしたいのです。

オプション等を見てもあまりピンと来ませんでした、ご教示頂ければ助かります。


685 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 21:32:46
>>683
INDIRECTと名前定義を使うのが定法。
言葉で説明するのがマンドクサイので、こちらをどうぞ。
http://www.google.co.jp/search?q=EXCEL%E3%80%80%E3%83%AA%E3%82%B9%E3%83%88%E3%80%80%E9%80%A3%E5%8B%95&hl=ja&c2coff=1&rls=GGLD%2CGGLD%3A2004-40%2CGGLD%3Aja

686 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 21:59:06
>>685
うわーーーこれですこれ!
こんなこともできるんですね、ありがとうございました!!!!

687 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 22:10:16
>>667
エクセルの画面が最大化されていない状態でウインドウの
完全に外に位置しているとそうなるよ。
そのファイルを開いた後で新規のページを作成、最大化した上で
ツールバーのウインドウにそのファイルが表示されていませんか?
それを選べば大丈夫と思われ。

688 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 22:29:30
A6を年の下2桁の数として5
B6を月の数として4が入っています。
yyに年、mmに月の数値を取り込んで
yymmに"0504"という形式の文字列をつくるには
これ以降をどう書けばよいのでしょうか。

Dim yy As Integer, mm As Integer
Dim yymm As string
yy = Sheets("sheet1").Range("A6").Value  年の数値
mm = Sheets("sheet1").Range("b6").Value  月の数値


689 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 22:51:40
XPを使っています。2chの『書き込む』といったような形のボタンを押すと指定した複数のセル
が未入力になるというプログラム?を組み込みたいのですがどうすればいいでしょうか?
ボタンが無理ならショートカットキーでも構いません。(できればボタンがいいですが)
お願いします。

690 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 22:57:01
>>689
オートシェイプにボタンに近いものがある。
それにマクロ登録する。
range("範囲").Clearcontents

691 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 22:58:54
>>688
yymm=format(yy*100+mm,0000)
とかかな?

692 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 23:00:24
>>691
"で囲うのが抜けてた。

693 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 23:03:31
>>689
1.「ツール」→「マクロ」→「新しいマクロの記録」→「OK」

2.実際に消したいセルを全て選択し、Deleteキーをおす。

3.「記録終了ボタン(勝手に画面に現れるツールバーの『■』)」をおす。

4.「フォーム」ツールバーを表示し、「ボタン」をクリック。適当な位置でシート上にボタンを作成。

5.「ボタンの登録」ダイアログが開くので、「Macro1」を選択し、「マクロの保存先」は「作業中のブック」に。

以上。

あえてコード書かずに、マクロの初歩の初歩を紹介。



694 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 23:03:48
セルを選択すると、Ctrl+↓で表示できるのと同等のボックス(中身は今日の日付のみ)が
現れるようにできませんか

それとデータ>入力規制>リストを使い、セルをクリックした際、セル右に矢印がついて
リストデータを扱いやすくするという機能がありますが、セルをクリックしただけで
リストデータの入ったリストボックスが現れるようにできませんか。動作が減り、楽になりそう
だと思うのですが。

お願いします

695 :名無しさん@そうだ選挙にいこう:2005/04/21(木) 23:55:05
>>691
そういうのがやりたかったのです。
ありがとうございます。

696 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 03:16:22
Windows2000でExcel2000を使用しております。
色々試したり調べたりはしたのですが、解決法見つからずここへ・・・質問です。

下記のようなセルを

あいうえお

CSV出力した際に"あいうえお"とする方法ってありますでしょうか?


697 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 03:17:12
すみません言葉足らずだったかも。
半角ダブルクォーテーションで括りたいという意味です。

698 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 08:51:21
Win2000、Exel2000です

P=*** という数値がまずあって
次にA〜Eの選択肢があって

例えば
選択肢がAまたはCで、P=***<1000の場合
X=1
選択肢がAまたはCで、P=***≧1000の場合
X=2
選択肢がBまたはDまたはEで、P=***<2000の場合
X=3
選択肢がBまたはDまたはEで、P=***≧2000の場合
X=4
という式を作りたいのですが
どの関数またはコマンドを使えばいいのか教えてください。


699 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 09:24:32
>>698
IF関数、AND関数、OR関数
ひとつの式にするなら長くなるけど基本はそれ。

700 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 09:25:52
>>698
普通にIFとAND・ORだけで出来るでしょ。
というか君が「選択肢がAまたはCで、P=***<1000の場合、X=1」と書いた条件を
そのまま数式にしてやればいいだけじゃん。

数値がA1、選択肢がB1なら
=IF(OR(B1="A",B1="C"),IF(A1<1000,1,2),IF(OR(B1="B",B1="D",B1="E"),IF(A1<2000,3,4),"選択肢が不正です"))

それと***が数値だとしても「P=***」は文字列だ。
「P=***」という文字列から数値部分を抽出したいならLENとRIGHTかMIDの関数が必要になる。
結果も1,2,3,4という数値ではなくX=1,X=2,X=3,X=4,という文字列にしたいなら勝手に弄って。

701 :698:2005/04/22(金) 10:09:33
>>698>>700

ありがとうございました。がんばってみます。

702 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 12:53:52
先ほど、会社の先輩がEXCELで見積書作ってたんだけど
「数字の入力がおかしくなったから見てくれ」と言われたんだけど
数字を入力すると、勝手に小数点付で表示されてるんです。
例)
12345→123.45
123456789→123456.78
んで、セルの書式設定→表示形式→「数値」になってたので
「標準」とか「文字列」に変更したりしたんだけど、症状治らず。
しかも勝手に「数値」に逆戻りしちゃってるんです。
「もしかして、マクロウィルス?」って思って、エクセルを起動し直してみたら
ファイル名が「PERSONAL.XLS」だったんで、マクロを見てみると
変なモジュールがあったんで、解放して(エクスポートはなし)から
上書きしてみたんですけど、結局治ってないんですよ。
XLSTARTフォルダには何も入ってないし・・・
どなたかわかる人、教えていただけませんか?
長文失礼しました。

703 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 13:15:10
>>702
ツール=>オプション=>小数点位置を固定するにチェックが入ってたりしないだろうな?

704 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 13:23:59
>>703
うっはー、恥ずかしい!!
おっしゃる通り、チェックが入ってました。
ありがとうございました。
お騒がせしました。

705 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 13:30:45
WinXP、Exel2000です

あるセルに*********の数字が入ってます。
その数字の左からN番目を抽出する方法を教えてください。

※数字1〜999999999のどれかが入ります。


706 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 13:43:27
>>705
=MID(セル,N番目,1)

707 :705:2005/04/22(金) 13:58:38
>>706
数字の桁数がランダムなのでそれだとダメなんですよ。


708 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 14:05:55
>>707
桁数に応じてN番を指定するんじゃないの?
たとえば123に対して5番目を指定したら3が返ればいいとか?

そういう式も可能だけど、条件はきちんと書いてくれ。
「数字の左からN番目を抽出する方法」という条件だけなら
>>706ので間違ってないはずだ。

709 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 14:07:27
>>707
意味がわからん

710 :705:2005/04/22(金) 14:13:54
説明へたですみません。なんとか自己解決できました。
みなさんありがとうございました。

711 :698:2005/04/22(金) 14:38:43
あの〜、先程の>>698ですけど、追加質問いいですか?

実は選択肢(A〜E)って、本当は20個以上あるんですよ。
さっき教えてもらった式で作ってみたんですけど
一つの式で
Aで<の時はX1、≧の時はX2
Bで<の時はX3、≧の時はX4
        ・
        ・
        ・
って作っていったんですけど
条件式って一つの式の中に7つまでなんですか?
ヘルプを見たら

『関数のネスト 関数内には、7 レベルまで関数をネストして指定できます』

ってあったのですが、この文章ってそういう意味であってます?ネストって何よ。

上のように条件が沢山ある場合、どうすればいいんですか。教えてください。


712 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 14:48:02
>>711
ユーザー定義関数(VBA)を使う。
選択肢を表にしてVLOOKUPや配列式で拾う。

どちらにしても、条件を出し惜しみせずきちんと書いてくれなければ
具体的なやり方は教えようがない。
晒したくないなら、ヘルプでも読みながらガンガレ。
アドバイス欲しいなら全ての条件を書け。

713 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 15:56:24
>>694
フォーム→コンボボックス→セルと同じ大きさにして、セルに重ねる


714 :698:2005/04/22(金) 16:03:05
>>712
出し惜しみしてる訳じゃなくて、
スレ汚しにならないよう簡素化してるだけなんですが…

それではお願いします。

P=***,***という値がまずあって、次に種類がA〜Uまであって。

選択肢がA〜G、K、Q、T〜Uで***,***<600万の時
A=α×***,***、B=β×***,***、C=γ×***,***、……
選択肢がA〜G、K、Q、T〜Uで600万≦***,***<10億の時
A=δ×***,***、B=ε×***,***、C=ζ×***,***、……
選択肢がA〜G、K、Q、T〜Uで10億≦***,***の時
A=η×***,***、B=θ×***,***、C=ι×***,***、……

選択肢がL〜Mで***,***<600万の時
L=κ×***,***、M=λ×***,***
選択肢がL〜Mで600万≦***,***<1億の時
L=μ×***,***、M=ν×***,***
選択肢がL〜Mで1億≦***,***の時
L=ξ×***,***、M=ο×***,***

と、続いていきます。

本当は表になってるんだけど、文字ズレがあるといけないので式で書きました。
宜しくお願いします。


715 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 16:59:17
>>714 こんな感じで。式は「=hoge(『P=*のセル』,『A〜U』のセル)」
簡素化するなら、自分で必要な情報の判断や条件の書き換えが出来るようになってからにしな。
Function hoge(buf1 As String, buf2 As String)
Dim buf3 As Variant: buf3 = Mid(buf1, 3)
Select Case buf2
Case "A"
 Select Case buf3
 Case Is < 6000000: hoge = "α×" & buf3
 Case Is < 1000000000: hoge = "δ×" & buf3
 Case Is >= 1000000000: hoge = "η×" & buf3
 End Select
Case "B"
 Select Case buf3
 Case Is < 6000000: hoge = "β×" & buf3
 Case Is < 1000000000: hoge = "ε×" & buf3
 Case Is >= 1000000000: hoge = "ζ×" & buf3
 End Select
'略
Case "L"
 Select Case buf3
 Case Is < 6000000: hoge = "κ×" & buf3
 Case Is < 100000000: hoge = "μ×" & buf3
 Case Is >= 100000000: hoge = "ξ×" & buf3
 End Select
Case "M"
 Select Case buf3
 Case Is < 6000000: hoge = "λ×" & buf3
 Case Is < 100000000: hoge = "ν×" & buf3
 Case Is >= 100000000: hoge = "ο×" & buf3
 End Select
End Select
End Function

716 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 18:48:01
Excel2000です

ファイルを開くと
「●.xlsはマクロを含んでいます 〜」というメッセージが出るのですが、
マクロを有効にして当該ファイルを開いて、
メニュー→ツール→マクロ を開いて一覧を見てもなにも表示されません。
このファイルを開いてもアラートが出ないようにする方法はありませんでしょうか?


717 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 19:12:15
>716 モジュールを消し忘れてるんじゃないか?>4

718 :716:2005/04/22(金) 19:23:33
>>717
汗;
失礼しました

719 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 21:24:00
EXCEL2002、OSはWINXPSP2です。
たとえば成績の順位を求めたいのです。
a=95=1位
b=85=2位
c=75=3位
d=65=4位
てな具合です。
点数に応じて、順位を求めます。
至って普通だと思うのですが、関数の式がなぜか
うまくいきません。
よろしくお願い致します。

720 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 21:31:53
>>662
Alt+↓でリストを開いたとき、マウスカーソルがリストの外に居ると
ホイール操作がシートのスクロールに働いて
リストが閉じたうえに勝手に画面が動いちゃって面食らった経験がある。
マウスカーソルをリスト上に動かしてからホイール使ったら、リストがスクロールしたよ。

見当違いのことだったらごめんね。

721 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 21:51:52
>>719
a・b・c・d、それぞれどうゆう関数が入ってて、どう表示されるんだ?

722 :719:2005/04/22(金) 22:10:45
>>721
スマソ。
自己解決しました。
お手数をおかけしました。

723 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 23:52:59
質問させてください。

長方形のオブジェクトを2つ作り、
1つは「/」のような模様、一方は「\」の模様を設定します。
下記のように長方形のオブジェクトを2つ重ねた時に
重なった部分の模様が両方みえる様にしたいのですが可能でしょうか。
どちらかを背面にすると一方の模様が隠れてしまう為、
前面のオブジェクトを半透明にすれば解決すると思いますので
そういう機能があれば教えていただけないでしょうか。


    −−
   |\\|
   |\\|
 −−−−−−−−
|//|XX|//|
 −−−−−−−−
   |\\|
   |\\|
    −−

説明が下手でわかり辛いかもしれませんがよろしくお願いします。



724 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 23:53:50
    −−
   |\\|
   |\\|
 −−−−−−−−
|//|XX|//|
 −−−−−−−−
   |\\|
   |\\|
    −−


725 :名無しさん@そうだ選挙にいこう:2005/04/22(金) 23:55:55
間違えて書き込んでしまいました。。。すみません。

726 :名無しさん@そうだ選挙にいこう:2005/04/23(土) 00:57:37
「オートシェイプの書式設定」で「透明」の部分を加減する

727 :名無しさん@そうだ選挙にいこう:2005/04/23(土) 01:00:50
質問です。宜しくお願いします。
なぜか顧客別データをwordで作ったんです。
一つ一つexcelに打ち直すのは大変です。簡単な方法はないもんでしょうか?

728 :名無しさん@そうだ選挙にいこう:2005/04/23(土) 01:09:55
>>727
そのままコピペしたら?

729 :名無しさん@そうだ選挙にいこう:2005/04/23(土) 05:34:34
>>727
wordのデータがどんな形になってるか書いたほうがレスつきやすいですよん

730 :名無しさん@そうだ選挙にいこう:2005/04/23(土) 07:25:40
>>727
例えばWordで表になっている(罫線で枠を作っている)なら、
表全体をコピー。
Excelの一番左上のセルを選択してから、右クリック→形式を
選択して貼り付
形式を「テキスト」にしてそのままOKとすれば同じ表の形で
各セルにデータがコピーされますよ。

表になっていなくても、データがTAB若しくは空白で区切ってあれば、
上と全く同じやり方でできます。

731 :名無しさん@そうだ選挙にいこう:2005/04/23(土) 08:13:03
レス感謝してます。
>>728そのままコピぺ
>>729wordのデータがどんな形か?

顧客別データは1000件あり、1件1ファイルです
いくつかの項目とその個々の内容で構成されてますが罫線で区切ってます。
この罫線をさかぃに各要素が別セルに散らばってくれればとりあえず十分なのです。一つ一つコピぺでは手間になります。
ファイル丸ごとそのままコピぺ試しにやってみます。

732 :名無しさん@そうだ選挙にいこう:2005/04/23(土) 09:05:43
727です。
レス感謝感謝です。

>>730
これで問題が解決しました。ありがとうございます。

733 :名無しさん@そうだ選挙にいこう:2005/04/23(土) 09:49:58
次スレのテンプレに以下を追加希望!

情報の小出しはヤメレ
自己解決したと書いた人へ
 このスレに書き込みした・情報の共有という意味からその解決した方法を書いてくれ。他の人間
 してみたらそれを知りたいということもあるんだよ。




734 :名無しさん@そうだ選挙にいこう:2005/04/23(土) 09:53:11
WinMe,Excel2kです。
勤務時間表を作成しています。

「=IF(出勤時間<>"",勤務時間-設定標準勤務時間,"")」という数式なのですが、

勤務時間が設定標準勤務時間より短い場合、結果欄が#######になってしまい、
正常に表示できません。結果をマイナス○時間や赤色表示なりで表示させることは可能ですか?


735 :名無しさん@そうだ選挙にいこう:2005/04/23(土) 09:57:20
>>734
Excelで扱ってるのは"時間"ではなく"時刻"なので、マイナス値という要素はありません。
どうしてもマイナス表示したければ、条件分岐を使って文字列としてマイナス記号を付加するとか、
表示形式を「h:mm;;[赤]@」などとしてください。

736 :名無しさん@そうだ選挙にいこう:2005/04/23(土) 09:58:06
訂正
×「h:mm;;[赤]@」
●「h:mm;;;[赤]@」

737 :名無しさん@そうだ選挙にいこう:2005/04/23(土) 10:11:46
>>735

書式が正しくありませんと出て設定出来ないんですが?

738 :名無しさん@そうだ選挙にいこう:2005/04/23(土) 10:23:02
>>737
こちらの環境では>>736の「h:mm;;;[赤]@」で設定できてるので(>>735のでもエラーは出ない)
あなたの使い方が間違ってるだけですが?

739 :名無しさん@そうだ選挙にいこう:2005/04/23(土) 10:31:08
>>738
ごめんなさい。
ダブルコーテーションとセミコロン間違えていました
(通常文字サイズ最小だったため判別できず文字サイズ中にして気が付きました)
申し訳ありませんでした。
頑張ってみます

740 :名無しさん@そうだ選挙にいこう:2005/04/23(土) 18:11:59
質問します。
win98、excel2002を使っています。

最初にデータ範囲=Sheet1!$A$1:$B$10のグラフを作ってあります。

A1,B1に最新データを挿入し、元のデータは下方向にシフトさせます。
このときそのままだとグラフは自動的に
範囲=Sheet1!$A$2:$B$11に変えてもとのグラフを保とうとしますが、
行を挿入しても常にデータ範囲=Sheet1!$A$1:$B$10に
なるようにすることはできないでしょうか。




741 :名無しさん@そうだ選挙にいこう:2005/04/23(土) 18:37:25
>>740
出来ます。
詳しくはこのスレをよく読め。

742 :名無しさん@そうだ選挙にいこう:2005/04/23(土) 18:58:35
質問します
OS名:WIN Xp
ソフト名:excel2000

エクセルを初回に起動したときだけ、フォントサイズ変更もしくは文字色変更の
ツールアイコンを押すときだけ暫く時間がかかるんです。
エクセル自体を閉じなければ、2回目以降はどちらを押してもすぐに反応します。
一度エクセルを閉じて、また立ち上げるとやっぱり時間がかかります。(10秒ほど)
ちなみに、他のツールアイコンやワードのツールアイコンではすぐ反応してます。


743 :名無しさん@そうだ選挙にいこう:2005/04/23(土) 19:08:25
症状報告だけですか?

744 :名無しさん@そうだ選挙にいこう:2005/04/23(土) 19:34:20
>>742
フォントをしこたま入れすぎていない?

745 :名無しさん@そうだ選挙にいこう:2005/04/24(日) 00:26:58
WinXP SP2
Excel 2003

隣り合う2つのセルの合計値をCOUNTする方法が知りたいです。
例えば、

   A B
1  3 4
2  1 5
3  2 5
4  0 7
5  2 4

とあった時、隣り合う2つのセルの合計が7になるセルがいくつあるか、を数えたいのです。
この場合だと合計が7になるセルは3つ、また6になるセルが2つ、というようにです。

なにか方法があれば、どうかよろしくお願いいたします。

746 :名無しさん@そうだ選挙にいこう:2005/04/24(日) 00:51:59
>>745
C列にA+Bの値を入れてからSUMIF使う。

747 :745:2005/04/24(日) 01:16:36
>>746
やはり合計値を別のセルに出してからでないと使えませんか。
出来れば合計値を別のセルにださないままで数えたいのですが。

748 :名無しさん@そうだ選挙にいこう:2005/04/24(日) 01:39:48
>>747
=SUM(IF(A1:A5+B1:B5=7,1,0))
=SUM(IF(A1:A5+B1:B5=6,1,0))

配列数式だから、式を入力したらShift+Ctrl+Enter(3つ同時押し)

749 :745:2005/04/24(日) 02:26:47
>>748
出来ました!!
思いつきもしなかった方法でした。どうもありがとうございます。

750 :名無しさん@そうだ選挙にいこう:2005/04/24(日) 02:27:40
マイクロソフトの外部ツールで組織図を作るものがありましが、これはどうやれば起動できるのでしょうか?
インストールはしているのですが、MicrosoftOfficeツールのメニューには表示されないです。

751 :名無しさん@そうだ選挙にいこう:2005/04/24(日) 02:34:45
>>750
Wordの挿入から図→組織図

752 :名無しさん@そうだ選挙にいこう:2005/04/24(日) 08:59:43
>>746
ありがとうございます
フォント消してみます。

753 :名無しさん@そうだ選挙にいこう:2005/04/24(日) 11:27:17
シート1内に
コントロールツールボックスから、ボタンを4つ追加したのですが、
それぞれに、マクロ動作させたくて、
  ファイル1開く ファイル2開く ファイル3開く ファイル4開く 
というふうに、
  
Dim myFileName
myFileName = Application.GetOpenFilename(FileFilter:="データ (*.csv;*.xls), *.csv;*.xls,全てのファイル (*.*),*.*", _
Title:="csvデータを選択してください", MultiSelect:=False)

一つボタン押すと動作しても、2個目から動作しませんのは、なぜですか?
他のコントロールをクリックすると
Excel のコマンドの一部が使用できなくなる
師匠!!

754 :名無しさん@そうだ選挙にいこう:2005/04/24(日) 11:40:33
>>753
質問は情報を省略せずに日本語で書きましょう

755 :名無しさん@そうだ選挙にいこう:2005/04/24(日) 11:56:02
>>753
まず、マクロをきちんと書け。
そもそもボタンにきちんとマクロを登録したのか?

756 :名無しさん@そうだ選挙にいこう:2005/04/24(日) 12:00:45
自己解決しますた!
スマソ

757 :名無しさん@そうだ選挙にいこう:2005/04/24(日) 12:06:32
>>756
>>733

758 :名無しさん@そうだ選挙にいこう :2005/04/24(日) 19:57:56
こんにちは。
マウスカーソルでセルをクリックする度に、
空白・マ・×・△・0.5・1R・TOPと順に内容が切り替わるマクロ
は、どういったプログラムにしたら、一番良いでしょうか?
お願い致します。

759 :名無しさん@そうだ選挙にいこう:2005/04/24(日) 20:15:14
>>758
Dim hoge As Variant
hoge = Array("", "マ", "×", "△", 0.5, "1R", "TOP")
For i = 0 To 6
 If Target.Value = hoge(i) Then
  Application.EnableEvents = False
  Target.Value = hoge((i + 1) Mod 7)
  Application.EnableEvents = True
  Exit For
 End If
Next i

こんな感じ?
連続で切り替えることもあるなら
Application.EnableEventsを外して
Worksheet_BeforeRightClickで使った方がいいかも。

760 :名無しさん@そうだ選挙にいこう:2005/04/24(日) 20:21:45
>>759
なるほど…
有り難うございました。

761 :名無しさん@そうだ選挙にいこう:2005/04/24(日) 20:44:51
>>759
すみません。
>>758を指定のセルのみで実行するには、どうしたら良いでしょうか?
例としてG4から32R×31Cまでの場合。


762 :名無しさん@そうだ選挙にいこう:2005/04/24(日) 20:50:14
>>761
そんな超初歩的なことくらい自分で調べろよ。

というかその程度のことも解らないなら、他人の書いたコードなんて安易に実行するな。
そんなレベルじゃ、悪意のあるコードにも気付かないだろうから。

763 :名無しさん@そうだ選挙にいこう:2005/04/24(日) 21:24:23
毎日ファイル名の変わるCSVファイルを、ダイアログボックスで指定し開き、
連続するセルの値だけをコピペしたいのですが、

過去ログを参考に、下記のように組んだのですが
うまくいきません。どなたかご教示お願いします。
Private Sub CommandButton1_Click()

Dim myBookname As String
Dim ReturnBook As Workbook, TargetBook As Workbook

Set ReturnBook = ActiveWorkbook
Application.ScreenUpdating = False

myBookname = Application.GetOpenFilename("(*.csv),*.csv")
If myBookname <> "False" Then
Workbooks.Open myBookname
End If

Set TargetBook = ActiveWorkbook
Application.ScreenUpdating = True

TargetBook.Worksheets(2).Range("A1:G60").Copy
ReturnBook.Worksheets(2).Range("E1").PasteSpecial Paste:=xlValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub

TargetBook.Worksheets(2).Range("A1:G60").Copy
が、インデックスが有効範囲にありません。


764 :名無しさん@そうだ選挙にいこう:2005/04/24(日) 21:48:49
>>763
君もコードの意味を理解せずに実行してるんじゃないの?
とりあえず「連続するセルの値だけをコピペ」の意味が不明だが
TargetBook.Worksheets(1).Range("A1:G60").Copy
にしてみろ。
(マルチページじゃない)csvを開いたのに、
第2シートを参照すればエラーが出るのは当然。

というか、別にcsvをブックとして開かなくても
シーケンシャルモードで開いて、指定位置に代入すればいいだけだと思うんだが。

765 :名無しさん@そうだ選挙にいこう:2005/04/24(日) 21:58:48
>>764
(コードの意味を理解せずに実行)
ズバリです、、、、
有り難うございました。

766 :名無しさん@そうだ選挙にいこう:2005/04/24(日) 22:09:17
OS:me Excel:2000
マクロでの記述の仕方でわからないのですが。
たとえば
selection.autofilter field:=1,criteria1:=">=1",operator:=xland,
criteria1:="<5"
のcriteria1:=">=1"にある1を変数にしたい場合、criteria1:=">=hensuu"
では駄目でした。どのように書けばよろしいんでしょうか?
よろしくおながします。

767 :名無しさん@そうだ選挙にいこう:2005/04/24(日) 22:15:39
">=hensuu"
   ↓
">=" & hensuu

768 :名無しさん@そうだ選挙にいこう:2005/04/24(日) 22:34:13
<<767さん ありがとうございます。
できました。いろいろポチポチしててもできなかったんですよ。
助かりましたぁ。

769 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 00:18:25
月の計算がしたいのですが、たとえば
A1に2005.4.1が入力されていて、A2に数値が入力されたとき
B1に2005.5.1を出したい場合どうすればいいのですか?

770 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 01:52:21
少し教えていただきたいことがあります。
OSはXPでExcelは2003です。

職場の業績の実績表を作っているのですが、セルに入力した
各部門の実績の数値の内、一番数値の低いところを自動的に赤色で
表示したいと思っているのですが、具体的にはどうすればいいのでしょうか。

771 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 03:06:23
夜な夜な質問してすみません。ExcelとAccessについて質問があるのですが、Excelのほうで質問させていただきます。

現在、Excelで競艇の予想と結果の過去のデータを集計したり統計をとったりして検証しています。
データは手作業で入力しているのですが、競艇は1日に1場で12Rあり、全国で20場近く開催されているので年間のデータは膨大でとても手作業では対応しきれません。

データは「予想」と「結果」があります。1日分の「予想ファイル(CSV)」と「結果ファイル(TEXT)」があり、これが1年分あるのでファイル数は数千あります。

これらの膨大なファイルをExcelやAccessに取り込むというのは自動でできるのでしょうか?
私は現在はTEXTやCSVをコピー&ペーストなどで手作業で入力しているので非常にたいへんなのです。
Accessは使用したことがなく、このようなことが可能なのかもわかりません。

毎日増えていく予想・結果データをExcelかAccessに取り込んで集計データが更新されるようにしたいと思いますが、このようなことはExcelやAccessで可能でしょうか?
また、できるとしたらExcelとAccessのどちらが合っているのでしょうか?

Windows2000とExcel2000:Access2000を持っています。

772 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 05:39:18
>>769
=DATE(YEAR(A1),MONTH(A1)+1,DAY(A1))

>>770
たとえばA1:A5の範囲で、一番値が小さいところに色を付けるなら、
A1:A5を範囲選択して、条件付き書式で
数式が =A1=MIN($A$1:$A$5)
と入れて、好きな書式を設定

>>771
特定フォルダ直下の全ファイルを取得するにはDir()をDo Loopで回せばいいし
あとはシーケンシャルモードで適当な位置に値を入れていけばいい
ExcelとAccessどちらが良いかは、読み込んだ後どのような処理をするかによっても変わるが、
たとえばExcelだと、20行のcsvが5000個あると、行数制限で全ての内容を
1シートに納められなくなる。まあ、VBAを駆使すれば複数シートにまたがる集計も可能だけど
やはり集計の類は1シート内でやった方が見やすく効率的なので、ファイル数が多いなら
処理内容に関係なくAccessの方がいいかもな。
ファイルの読み込み方は、具体的な条件が書かれてないので
具体的なコードは教えようが無いからヘルプでも読んで自分で書いて。

773 :769:2005/04/25(月) 06:31:35
>>772さんありがとうございました。

774 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 09:14:43
演算子で ”等しい” は == になるのでしょうか・・・。
例えば、A1:A100 の範囲に数字が羅列されているとして、その範囲内で10の数をカウントしたいとします。
書式がいまいち理解できてないので非常に難しいのですが、

if(○○=="10"){ count() } みたいな・・・。どういったシンタックスにすればいいのでしょうか。教えてください。


それともうひとつ、 $A$1 のようなパス指定を見るのですが、この$はどの様な意味でしょうか。教えてください。

775 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 09:28:02
>>774
> 演算子で ”等しい” は == になるのでしょうか・・・。
VBA、ワークシート関数共に"等しい"は =

> 例えば、A1:A100 の範囲に数字が羅列されているとして、その範囲内で10の数をカウントしたいとします。
普通はワークシート関数で
 =COUNTIF(A1:A100,10)

VBAなら
 Dim RngObj As Range, i As Byte
 For Each RngObj In Range("A1:A100")
  If RngObj.Value = 10 Then i = i + 1
 Next RngObj
 MsgBox "値が10のセルは " & i & " 個です"
とか、VBAからワークシート関数を使って
 WorksheetFunction.CountIf(Range("A1:A10"), 10)
とか。

> それともうひとつ、 $A$1 のようなパス指定を見るのですが、この$はどの様な意味でしょうか。教えてください。
$は絶対参照の記号。絶対参照の意味が解らなければググるかヘルプ見ろ。

776 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 10:35:51
質問がございます。

項目をズラーっと並べて、その左にそれぞれチェックボックスかラジオボタンのような物を置き、
チェックされた場合、
他のシートのリンクしたセルの背景色を変える。もしくは、チェックされなかった場合に斜線や網掛けをする。

と言う書類を作成したいのですが、エクセルの基本機能のみで作る事は可能でしょうか?
よろしくお願いします。

777 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 10:42:26
>>776
Excelの基本機能であるVBAで可能です。
具体的な条件が書かれてないので具体的な方法はご自分で調べてください。

778 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 10:52:38
VBAですか・・・。

すいません。VBAは自分の中で基本機能では無いと認識しておりました。
VBAが必要となると敷居が高そうですね。

例えば10項目あったとして、必要な項目と不必要な項目を分けるのですが、
不必要な項目を完全に非表示にさせるのも問題がある為、斜線や背景色で暗くする。等を考えていました。
で、データ入力フォーム用のシートで、HTMLで用いられるタイプのチェックボックスを項目の左に付け、
チェックされた時のフラグで、本データの項目の欄に斜線を引くなどの方法を考えていました。

条件書式やエクセルのビルドイン関数を利用すれば行けるかと思って質問させてもらった次第にございます。

小出しになってすいません。
どうもありがとうございました。

779 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 11:07:58
教えてください。

C言語で書くと・・・
if( (A1="○" || B1="○" || C1="○") && (D1 = "○") )
{
・・・・
}
Excelの関数(マクロ?)で出来ますか?

780 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 11:17:13
>>779
おい。
Cの比較演算子は == じゃねぇのか?おい。



781 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 11:27:38
>>780
違うだろ。A1に○を代入して、D1に○を代入して、その&&を取るってことだろ。
これと似たようなことが俺もできないものかと思い悩んだことがあるよ。


782 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 11:28:31
>>778
VBA無しでフォームオブジェクトと条件付き書式で出来なくもないけど
「他のシートのリンクしたセル」という意味が不明瞭すぎ。
これの意味合いによってはVBA無しでは無理かもしれない。
君自身は、自分の要望を脳内補完できるからいいけど
俺らはエスパーじゃないんだから、曖昧な条件だけ聞いてアドバイスをする事なんて出来ない。
「例えば10項目あったとして」←何がどこに?
「斜線や背景色で暗くする」←何を?
「本データの」←本データって何?
最後の「どうもありがとうございました。」ってのが「あとは自分でなんとかします」ってことならどうでもいいけど
アドバイスが欲しいなら、要望は具体的かつ明瞭に説明しましょう。

>>779
出来ます。
詳しくはヘルプ参照。

783 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 11:31:12

なんで論理演算子でANDとORが入ってるんだよ。 &&  ||  
&&を取るって何だそれ。
条件演算子の条件内に代入演算子だぜ?

784 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 11:34:38
>>782

if(flag_001 == true) {
Sheet2!A1._visible = false}

こんな感じでやりたかったです。
コンポーネントでチェックボックスと変数参照が可能であれば楽なんですが、
やはりエクセルは煩雑で難しいですね。

785 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 11:39:09
>>784
やればいいじゃん

786 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 11:43:38
>>783
トリッキーだけど、条件式の中で代入文を使いたくなる場面はあるだろ。


787 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 12:10:42
IFで、TRUEだった時にはそのまま、FALSEだった時にはセルを塗りつぶすなんて事は可能ですか?


788 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 12:14:15
可能です

789 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 12:28:49
そうですか。
どうやればいいか教えてください。

790 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 12:43:09
>>787
IFというより条件付き書式でOK

791 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 12:52:10
>>789
If 否定条件式 Then Range().Interior.ColorIndex = カラーインデックス番号
否定条件式は「Not 条件」とか「条件 <> 結果」とか「条件 = False」とか場合によっていろいろ。

ちなみに、知ってるだろうけどワークシート関数ではIF関数に限らずセルの背景色の指定は無理。
条件付き書式なら「=NOT(条件式)」

792 :771:2005/04/25(月) 13:13:01
>>772
どうもでした。
読み込んだ後の処理は確立やExcelで統計などの計算をしてグラフなどにしています。
同じことがAccessでも可能でしょうか?

793 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 13:26:09
さあ?
確率計算や統計処理ならAccessでも出来るけど
グラフはどういうものが作りたいかに因るな。
まあ、大抵のグラフはExcelでもAccessでも作れるだろうけど
どんなグラフを作りたいかも書かずに「可能ですか?」とだけ聞かれてもねぇ
それにAccessのことはスレ違いだし。

794 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 13:37:09
師匠 教えてください!

1年7ヶ月 + 2年7ヶ月 という期間を足して
4年2ヶ月と答えを出すにはどのような関数又は計算式を使用すれば
良いのでしょうか?(DATEDIFなど使用してもうまくいきませんでした)

よろしくお願いします。


795 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 13:38:26
条件つき書式について質問があります。

B1に条件付書式を記述したいです。
条件として、A1の値が○○の時。と言うように、自分以外のセルを参照したいのですが可能でしょうか?
もし可能でしたらやり方を教えてplz。よろしくです。

796 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 13:57:35
>>794
セルに「1年7ヶ月」とか文字列で入れてあるんか?

797 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 14:00:41
>>795
左側のリストボックスを「数式が」にする。

798 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 14:07:21
>>796
ほとんど文字列扱いです。

799 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 14:10:55
>>796
言い方を変えると
例えば 2001/01/01〜2002/6/30間の期間(a)と
     2002/7/20〜2005/4/20間での期間(b)を足したいのです

     a+b=○年○ヶ月


800 :771:2005/04/25(月) 14:43:08
>>793
グラフは簡単なものです。棒グラフや折れ線グラフなのでできると思っておきます。
データ量の多さからAcceessのほうが良さそうですね。

801 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 14:58:02
>>799
その4つの日付がシリアル値で入力されてるなら
あとは単純に足し算引き算の計算して、表示形式を指定するだけでしょ。


802 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 14:59:37
>>798
Public Function aaa(ByVal a As Range, ByVal b As Range) As String
Dim ya As Integer,ma As Integer
Dim yb As Integer,mb As Integer
Dim mm As Integer,s As String

If InStr(a.Value, "年") > 0 Then
ya = Left(a.Value, InStr(a.Value, "年") - 1)
If InStr(a.Value, "ヶ月") > 0 Then
ma = Mid(a.Value, InStr(a.Value, "年") + 1, InStr(a.Value, "ヶ月") - InStr(a.Value, "年") - 1)
Else
ma = 0
End If
Else
ya = 0
ma = Left(a.Value, InStr(a.Value, "ヶ月") - 1)
End If


803 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 15:00:06
----------------------つ づ き--------------------------
If InStr(b.Value, "年") > 0 Then
yb = Left(b.Value, InStr(b.Value, "年") - 1)
If InStr(b.Value, "ヶ月") > 0 Then
mb = Mid(b.Value, InStr(b.Value, "年") + 1, InStr(b.Value, "ヶ月") - InStr(b.Value, "年") - 1)
Else
mb = 0
End If
Else
yb = 0
mb = Left(b.Value, InStr(b.Value, "ヶ月") - 1)
End If

mm = (ya + yb) * 12 + ma + mb
If (mm \ 12) > 0 Then
s = (mm \ 12) & "年"
End If
If (mm Mod 12) > 0 Then
s = s & (mm Mod 12) & "ヶ月"
End If
aaa = s
End Function


804 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 15:18:21
行の削除や挿入で1分近くかかります。
200×2000セルぐらいしか使用していません。
なんでこんなにも遅いのでしょうか?

805 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 15:18:39
何故にわざわざユーザー定義関数?

806 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 15:37:14
>>804
OS、Excelのバージョン
CPU、メモリの種別
最初からその症状があったか

を書け


807 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 15:44:45
>>805
ワークシート関数だとむずかった

808 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 16:09:54
>>807
>>799を見てもまだそう言えるのか?

809 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 16:17:39
>>808
再読込してなかったから。
799に対する解答は任せた。

810 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 16:37:53
Excel2003使用しています。

入力フォームで入力してデータシートに転記のマクロを本を見ながら作成しているのですが、
●の部分がエラーとなってしまいます。
本のとおりに組んだので、サッパリ意味がわかりません・・・
ちなみに本の書いてあるままのマクロですが、
シートの中身は自分で作成したものです。

Sub 新規レコード転記()
Dim motoSht As Worksheet, sakiSht As Worksheet, sakiRng As Range, i As Long
Dim motoHani()
Set motoSht = Worksheets("入力フォーム")
Set motoSht = Worksheets("データシート")
motoHani = Array("C4", "C5", "C6", "F4", "F5", "F6")

●Set sakiRng = sakiSht.Range("B" & Rows.Count).End(xlUp).Offset(1)
For i = 0 To UBound(motoHani)
sakiRng.Offset(0, i).Value = motoSht.Range(motoHani(i)).Value
Next
MsgBox "入力しまちた"

End Sub

811 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 16:46:39
>>810
Set sakiSht = 〜〜〜
をしてないからとか?

812 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 16:49:30
> Set motoSht = Worksheets("入力フォーム")
> Set motoSht = Worksheets("データシート")

下はSet sakiShtじゃねーの?

813 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 16:55:32
マンセー

814 :810:2005/04/25(月) 17:23:37
>>811-812
わー!!!
本当でした!

入力フォーム行をコピーしてデータシート行を作成してたため、
気付きませんでした・・・

早速回答ありがとうございます!
入力しまちたでまちた!!!!

815 :高校生K:2005/04/25(月) 18:24:41
エクセル2000で質問です。
A〜Bという表示はどのようにすればいいんですか?
ちなみに、A・Bは自分で打ち込むものではありません。

816 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 18:28:45
>>815
日本語で質問しましょう

817 :高校生K:2005/04/25(月) 18:37:42
和式〜和式と表示させたいんです。「〜」でつなぐ方法を教えてください


818 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 18:50:16
>>817
理解できんが、トイレの話か?
&とかConcatenateを使うとかいうこと?

819 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 19:07:38
>>817
A1 と A2 に「和式」が入ってるとしたら、表示させたいセルに
=A1&"〜"&A2
初歩の初歩だと思うが、違う話なんかな?

820 :Q:2005/04/25(月) 20:25:45
質問です。(Excel 2000,Win2000NT
Sheet1にテキストファイルを貼り付けるとSheet2で参照して表にする
雛型を作ったのですが、別のテキストファイルを読み込ませると
Sheet2の途中から参照がおかしくなって#REFや500行ずれたりします。

Sheet2の
データ更新前 データ更新後
+---- +----
|=Sheet1!A279 |=Sheet1!A279
|=Sheet1!A280 |=Sheet1!#REF
|=Sheet1!A281 |=Sheet1!#REF
|=Sheet1!A282 |=Sheet1!#REF
......... ............
|=Sheet1!A320 |=Sheet1!A280
|=Sheet1!A321 |=Sheet1!A281

こんな感じです・・・(´・ω・`)

対処法ご存知の方教えてください_| ̄|○




821 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 20:49:32
A4の縦横ピクセル数を教えてください。

というよりも、規定のピクセル数でデータを作った際に、必ず入るマージンなどがあればそれが知りたいです。


822 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 20:56:03
>>821
よくわからんが、A4に350dpiと200dpiでは印刷できる大きさが
変わってくると思うけど。

823 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 20:57:28
うーん、A4とピクセルは全く関連がない

824 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 21:05:54
>>821
http://www.grapac.co.jp/bureau/dc_tips/tips_dpi.html
に算出方法かいてある。

EX.2 350dpiでA4サイズのピクセル数算出の方法
長辺29.7cm×短辺21.0cm

(29.7cm÷2.54cm)×(21.0cm÷2.54cm)

=11.694inch×8.269inch


(11.694inch×350dpi)×(8.269inch×350dpi)

=4,093pixel×2,894pixel


 A4定型のサイズは29.7cm×21.0cmです。まず、各辺を2.54で割ることによって単位をインチに変えることができます。(1インチ≒2.54cm)


825 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 21:08:25
>>821-824
dpiといってもディスプレイじゃなくてプリンターのdpi?


826 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 21:10:54
>>820

テキストファイルは純粋にテキストのみのファイルか?
Sheet2の雛形は関数のみかマクロかどっち?
別のテキストファイルを読ますときは元のテキストファイルに上書きしてるか?

827 :820:2005/04/25(月) 21:17:09
>テキストファイルは純粋にテキストのみのファイルか?
テキストのみです。

>Sheet2の雛形は関数のみかマクロかどっち?
別のところに関数は使ってますが、変になる所は”=Sheet1!○○”の記述のみです。

>別のテキストファイルを読ますときは元のテキストファイルに上書きしてるか?
一度エクスポートして(クエリはそのまま)インポートしなおしても同じ結果でした。


828 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 21:35:12
>>825
聞きたいことが理解できん・・・

829 :826:2005/04/25(月) 21:44:50
>>82
シート1にテキストファイルを貼り付けるだけなのに
どうしてシート2の内容が書き換えられるのだ?

=Sheet1!A279
=Sheet1!#REF

こりゃどう見ても本来あったA280がなくなってるぞ

シート1に別のテキストファイルを貼り付けるとき挿入してないか?

830 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 21:52:36
>>829
では、なぜその下の方にA280だ存在するのか?
なぞー

831 :820:2005/04/25(月) 21:53:08
「データ」の「データ更新」を使っているので挿入はしていませんね・・・

A280は#REFの下にずれています。

Sheet2のA列に通し番号をいれるために
=SUBTOTAL(3,Sheet1!$A$10:A○○)
という関数が影響してる気がしてきました。


832 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 22:41:24
Excel2002です(WinXP)
フォームのオプションって○なんですが、これをチェックボックス
と同じく□でチェック印にできるでしょうか。
チェックボックスでオプションのように、グループの中で一つしか
印が付かないようにできればそれでもいいのですが、VBA以外で
できないでしょうか。
※ VBAだと起動ごとにダイアログが出るので使いたくありません。

833 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 22:42:49
ある時刻からある時刻までの経過時間を、「分」で表現する方法で悩んでいます。

経過時間が23:59以内であれば
 =HOUR(XX)*60+MINUTE(XX) (XX:経過時間の入ったセル番号)
で求まりますが、
24:00を越えると HOUR関数の値が0を与えることから正しい結果を得られません。

よろしくお願いいたします m(_ _)m

834 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 22:51:33
>>833
xx*1440とかは?

835 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 23:09:55
>>831
おかしいと思ったらそこを削除してみる
当然だがファイルのコピーでテストする

あと、何度も書かれているが、情報の小出しはしない・・かな

836 :名無しさん@そうだ選挙にいこう:2005/04/25(月) 23:22:35
>>834
そんな簡単な方法があったんですね… orz

ありがとうございました〜 ノシ

837 :770:2005/04/25(月) 23:47:06
>>772さん、教えていただいたとおりにやったらうまくいきました。
遅くなりましたがありがとうございました。

838 :名無しさん@そうだ選挙にいこう:2005/04/26(火) 00:10:01
外部のテキストファイルがあってそのデータの一部をエクセルに取り込みたいんですが、
たとえばテキストファイルの1〜15行目の左から20文字目をセルに並べるという
ことはできますか?
ヒントだけでもいいです…orz

839 :名無しさん@そうだ選挙にいこう:2005/04/26(火) 00:24:35
>>838
A列にはデータを行ごと取り込んで、B列に=Mid(A1,20,1)とか
すればとりあえずできる。
何度もするならマクロで。

840 :名無しさん@そうだ選挙にいこう:2005/04/26(火) 00:37:04
おお〜できるのですね!マクロは勉強しないとわからんですががんばってやります。


841 :名無しさん@そうだ選挙にいこう:2005/04/26(火) 00:59:58

Excel2002、VBAの質問です。

文字列を格納した配列から、特定文字列を含む
"位置"を返すにはどうすれば良いでしょうか?
特定文字列を含む"要素"を返すには

結果 = Filter(配列,検索文字列)

で出来ますが、位置を返す方法が解らず、

For i = 0 To UBound(配列)
 If InStr(1, 配列, 検索文字列) > 0 Then
  ReDim Preserve 結果(j)
  結果(j) = i
  j = j + 1
 End If
Next i

などという面倒な処理をしています。
検索対象となる配列の要素数が40万を越えるので、
なるべく速く簡潔に処理したいのですが、どうすれば良いでしょうか?


842 :名無しさん@そうだ選挙にいこう:2005/04/26(火) 09:24:27
フォームのオプションボタンについて教えてください。

<やりたい事>
Q1、〜〜〜〜〜
○有り
○無し
Q2,〜〜〜〜〜〜
○有り
○無し

で、チェックをしていく感じの物を作っています。
所が、Q1でチェックをした後に、Q2でチェックをするとQ1でチェックした物も消えてしまいます。

Q1にある二つのうちから一つ、Q2にある二つのうちから一つ・・・。
と選べるようにしたいのですが、どのようにしたらよろしいか教えてください。よろしくお願いします。

843 : >>841もよろしくお願いします:2005/04/26(火) 10:16:13
>>842
フレームを使う
┌Q1、〜.──┐
│○有り.   │
│○無し.   │
└─────┘
┌Q2、〜.──┐
│○有り.   │
│○無し.   │
└─────┘

でも、有無の2項目なら、チェックボックスの方が良くないか?

844 :名無しさん@そうだ選挙にいこう:2005/04/26(火) 10:28:33
原価      ○○円
支出割合   △△% を入力するとその値により係数が下記に分類され


   原価  500万円以下 500万円〜   30億円〜
割合               30億円以下
0%〜5%    15.09%    16.98%      7.58%
5%〜15%   14.95%    16.82%      7.50%
15%〜25%  14.81%    16.66%      7.43%
25%〜35%  14.52%    16.33%      7.29%
35%〜40%  14.38%    16.17%      7.22%

よって   管理費 = 原価 × 係数 =       □□円

と、管理費が一発で出るようにするにはどんな計算式ですか?





845 :名無しさん@そうだ選挙にいこう:2005/04/26(火) 10:47:01
>>843
レスありがとうございます。
有無の2項目なのですが、両方にチェックを付けるミスが発生した時に困るのでラジオボタンを考えました。

なるほど、フレームで切るのですか。
エクセルでフレームとヘルプ検索しても分からなかったのですが、グループボックスでフレームを分けてしまうのですね。
ありがとうございました。


846 :名無しさん@そうだ選挙にいこう:2005/04/26(火) 10:50:44
1つのシート上に、書類データと、リストデータがあります。
シートを印刷したとき、書類データのみ印刷でリストデータは印刷されないようにしたいのですが、
どのように設定すればいいでしょうか?教えてください。

847 :>>841もよろしくお願いします:2005/04/26(火) 11:00:32
>>844
原価がC1、割合がC2なら、

    A     B      C          D          E
4|   原価       500万円以下  500万円〜      30億円〜
5|割合                     30億円以下
6|                    0     5000000   3000000000
7|                    2         3          4
8|0%〜5%   0       15.09%      16.98%       7.58%
9|5%〜15%   5       14.95%      16.82%       7.50%

という表を作って、B列及び6,7行を非表示にして
=C1*VLOOKUP(C2,B8:E12,HLOOKUP(C1,C6:E7,2))
わかってると思うけど、係数は文字列ではなく数値入力してね。

>>846
条件が曖昧過ぎてよくわかりませんが、
範囲指定印刷や、表示非表示を切り替えて印刷すれば良いのでは?

848 :名無しさん@そうだ選挙にいこう:2005/04/26(火) 11:27:54
すいません。
リストの中に見出し(リストとして選択出来ない区分分け用)を設定したいのですが、やり方がわかりません。
可能ならばやり方を教えてください。

849 :名無しさん@そうだ選挙にいこう:2005/04/26(火) 11:40:45





 要 望 、質 問 内 容 は 具 体 的 に ・ ・ ・







850 :848:2005/04/26(火) 12:00:41



シアン
イエロー
マゼンタ
ブラック
と言うリストがあるとして、この状態で一覧になっているとします。これを
--RGB-- (見出し。表示はされても選べない)



--CYMK-- (見出し。表示はされても選べない)
シアン
イエロー
マゼンタ
ブラック
このようにしたく思います。説明下手で申し訳ありません。よろしくお願いします。

851 :名無しさん@そうだ選挙にいこう:2005/04/26(火) 12:06:00
>>850
選択したくないセルのみロック
シートの保護で「ロックされたセル範囲の選択」のチェックを外す。

852 :844:2005/04/26(火) 14:20:37
>>847さん、ありがとう。
VLOOKUP、HLOOKUPを使用するのはわかりました。

だけどちょっと質問に御説明いただけますか。
いまいち完璧に理解できてない…。

・非表示にした部分の意味
・不等号が見当たりませんが

他の方でも結構です。宜しくお願いします。

853 :>>841もよろしくお願いします:2005/04/26(火) 14:53:25
>>852
VLOOKUP、HLOOKUPは
「完全一致する値」と「検索値未満で最も大きい値」の
2種類の検索条件が指定できる。
今回使ったのは後者の条件。(検索の型を指定しなかった場合はコレになる)

たとえば0,5,15,25,35という項目があり、検索値が20なら
検索値未満で:0,5,15
最も大きい値:15
ということになる。つまり項目値に範囲を指定したい場合は、その範囲の最小値を項目に指定すれば良い。
これで6行の0,5000000,3000000000とB列の0,5(,15,25,35)の意味は分かるよね。

で、先ずHLOOKUPで6行を検索して7行の値を返す。(これが列位置
そしてVLOOKUPでB列を検索し一致した行の、↑で返った列にある値を原価に掛けただけ。
なので、非表示にした6行、B列は検索用インデックス、7行は列位置を表す値、
不等号が不要な理由は上記のようにVLOOKUP、HLOOKUPの仕様によるもの。
INDEX関数を使う方法もあるんだけど、自分はこっちの方が好きなので。

854 :>>841もよろしくお願いします:2005/04/26(火) 15:06:19
あ、一応INDEX関数を使う方法も式だけ書いておく
=C1*INDEX(C8:E12,MATCH(C2,B8:B12),MATCH(C1,C6:E6))
こっちの場合は7行は不要。世間的にはこっちの方が正統な方法みたいだな。

855 :名無しさん@そうだ選挙にいこう:2005/04/26(火) 15:11:15
Excel2002で質問です

シートがNo1〜31まであって、それとは別に
「集計」シートを作りました。

集計シートの各セルには、
='No1'!A1
='No2'!A1

='No31'!A1

と、各シートの値を参照する式が入っています。

ただし、シートは1日に1ずつ追加されるので、例えば
26日の時点ではNo1〜No26のシートしかありません。

当然、No27のシートを参照すると、#REF! エラーになるのですが、
あとからNo27のシートを作成しても、エラーのままです。
エラーになっているセルを一旦入力状態にしてEnterで更新すると
正しく参照されるのですが、これを自動あるいは半自動的にやる
方法はないでしょうか?

とりあえずApplication.Calculateなどを使ってみてもダメでした。
マクロの自動記録を使っても、新たに式を書き込んでいるように
なってしまうので、ダメでした。

どなたかよろしくおねがいします。



856 :>>841もよろしくお願いします:2005/04/26(火) 16:11:43
>>855
=IF(ERROR.TYPE(INDIRECT("No"&ROW(A1)&"!A1")=NA())=7,INDIRECT("No"&ROW(A1)&"!A1"),"")
を集計シートのNo1シートの値を参照させたいセルに入れて、下方へオートフィルコピーでどうでしょうか?
シートが存在しなければ空白、シートを作れば値を即反映するはず。
参照セルを変更したい場合は2カ所ある「"!A1"」の部分だけを変更して「ROW(A1)」の部分は変更しないように。

857 :855:2005/04/26(火) 17:34:40
>>856
ありがとうございます。おかげさまで解決しました。

最初、ROW(A1)の意味が不明でしたが、INDIRECT内でオートフィルが効かない(?)為の
対処策だという事が解りました。

ほか、今まで使ったことのないINDIRECT関数を覚えましたので、色々活用できそうです。

858 :名無しさん@そうだ選挙にいこう:2005/04/26(火) 22:03:19
OS:me,Excel2000
マクロについて質問ですが、
一つのPrivate Subで配列を使って
hairetu(5,5)に格納された数値を、他のPrivate Subで
使うことができますか?あったら教えてください。よろしくお願いします。


859 :名無しさん@そうだ選挙にいこう:2005/04/26(火) 22:43:06
>>858
変数をGlobalにすればいいじゃん。
Subの外でDim hairetsu() と宣言しておく。

860 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 00:57:37
同じシート内の離れた位置に改ページを挿入するにはどうしたらよいのでしょう?

861 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 01:21:36
>>860
印刷時の改ページのことか?
Excel 改ページ
でググれ。

862 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 01:47:38
>>861
ググってみたのですが、回答はみつかりませんでした
がっ、、
イルカが教えてくれました(;´Д`A ```

印刷範囲に隣接しないセルを追加するには、
そのセルを選択してからマウスの右ボタンでクリックし、
ショートカット メニューの [印刷範囲に追加] をクリックします。

とのことでした。


863 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 06:00:03
PCをクリーンインストールするためにバックアップを取ったファイルが、
「このファイルの形式を認識できません」となり、ファイルを開けません。

なんとか元にしたいのですが、ファイルを復元することは可能ですか?
ソフトとか会社とかあったら、教えてください。

864 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 06:24:31
>>863
ファイルってxlsファイルだよね?
で、そのファイルってどこにあるの?

ちなみにHDDからファイルを消してしまった場合に復元するソフトはあるが、
データ的に破損してるなら復元は難しい。
光学メディアやフラッシュメモリなら尚更・・・



865 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 06:49:48
>>864
ありがとうございます。
xlsファイルです。フラッシュメモリに保存しました。
クリーンインストール前から引っぱり出すことは無理ですよね?

866 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 07:18:51
>>865
場合による。
OSインストールで、元々xlsファイルが有ったセクタに
データが上書きされていなければ復元出来る可能性もある。

とりあえず↓で検索してみて出てこなければHDDからの復元は無理だな
ttp://www.vector.co.jp/soft/win95/util/se192983.html
↑で検索には出てくるけど、復元に失敗するってなら、
もう少し高機能(高額)な復元ソフトで復元できる可能性もある。

ついでに一応フラッシュメモリ対応のデータ修復ツールも紹介しておく
ttp://www.vector.co.jp/soft/win95/util/se297185.html
ただしこっちは有料で、金払わないと復元は出来ないし、
「復元完了」と出てもデータは破損のままということも多い。

あとはダメ元で、その開けないファイルをExcel互換ソフトにぶち込んでみな。
OOoとかLotus123とか三四郎とか…etc
何も持ってないとしても、OOoは落としてくればいいだけだし、
他のは会社や知人にでも当たればいい。
第三者に見られても構わないデータなら、アップすれば俺は三四郎で試してみてやるし
他にもこの板には複数の表計算ソフト所有してる奴も多いから試してくれる人は居るかも。
他人に見せられない物ならあとは自分でガンガレ。

867 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 08:04:26
>>866
ありがとうございます。
兄の会社のものをやってしまったので、ここでファイル公開していいか
聞いて、大丈夫ならお願いします。
まずは、HDDからフラッシュメモリへ調べてみます。
ontrackという会社のEasyRecoveryという無料ソフトを使ったら、
復活しそうなファイルも出てきました。

868 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 08:23:43
>>863
excelのファイルを開く→ファイルを開いて修復する
では無理か?

うちはデータが壊れた場合は
ファイナルデータOfficeプレミアムで救出することしばしば
ただ、破損がひどくてどうしようもないことの方が多いがな

絶対に復元しなければいけない場合は、変にさわらないで
業者に頼むのが賢い選択(かなり高額だがorz)

869 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 08:33:22
>>868
ファイルを開いて修復するでは無理なのがありました。
ファイナルデータというのは復元ソフトの中で信頼できる部類のソフトですか?

870 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 09:43:34
すいません
LINUXファイルサーバ(ワークグループ)で小規模LANを組んで
フォルダを共有しているのですが、 以下の症状が出て困っています。

<クライアントOS>
Windows XP Pro SP1
<状況>
ログオン直後は、共有フォルダにすんなり入れる
エクセルを使った後やエクセル使用中暫くするとに非常に遅くなる。
エクセルを使わないと遅く感じない
(共有フォルダのへアクセスするだけで、数十秒かかる)
しかしTCPは正常に動作している?のかその間Web等のアクセスも問題なく使える。

単純に再起動すると回復する ログオフしただけでは駄目。

わかる方、よろしくお願いします。


871 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 10:18:14
OS:98
エクセルのセルってA列、B列、C列ってなっていますが、
A列の3行目だけをさらに分割することってできますか?

872 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 10:39:09
>>871
出来ません。
A列の3行目ってことはA3を分割したいんですよね?
縦分割にしたいのか横分割にしたいのかわかりませんが
逆に分割したい部分以外を結合することで代用しましょう。

873 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 11:12:22
どうにもテーブルと似ているから、テーブル内テーブルが可能かと錯覚を起こしてしまいますよね。

先生!質問です!!
オートシェイプの楕円を貼り付けました。
条件によってその楕円を表示/非表示と切り替えたいのですが、
VBAはわからないので、IF分岐で可能であればやり方を教えていただきたいです。

提出用書類で、オートシェイプの円で囲むと言う仕様になっていて、仕様変更は少し難しいので、出来ればと。

具体的に言いますと、
Sheet1にチェックボックスがあり、チェックによってSheet2のA1がTRUE/FALSEトグル。
Sheet2のA2に配置してあるオートシェイプの楕円がA1の正偽によって表示/非表示。
としたいのです。
条件つき書体とも違うと思ったので質問した次第でございます。
どうかよろしくお願いします。

874 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 11:25:25
>>873
ワークシート関数で図形の操作は出来ません。
VBAのIF分岐でなら出来ますけど。

875 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 11:42:08
>>874
レスありがとうございます。
無理ぽいですかー。残念><

イメージとして、上レイヤー(もしくは独立したセル)に楕円を配置しておいて、
条件分岐で、楕円を配置したセルの可視/不可視によって図形も連動されるかなーと思ってました。

となるとVBAかー・・・。
VBAって英語みたいでどうにも難しく見えてしまうのですが、配置した楕円がプロパティを持っていて、
その可視切り替えなども可能と言う事なのでしょうか?

VBAも使えたら便利そうですね。
どうもでした。

876 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 12:07:46
>>875
多分、思っておられるほどVBAは難しくないですよ。
今回の内容ぐらいなら、少し勉強すればすぐ書けるようになると思います。

必要になった時がおぼえ時ですよ。

877 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 12:17:10
>>876
そうなんですかー。
マークアップ言語ではHTML、XML、CSS
スクリプト含めた言語ではJavaScript,ActionScript、Perl、PHP、Java、
は出来るのですが、前にVBを少し見て、言語体系が大きく違う印象を受けて、
無理ぽいと挫折していました。

文法と出来る事を覚えるのが重要だとは思うのですが、簡単と聞くと少し手を出してみたくも・・・w

ただ、今回の業務は4週間ほどで形にしないといけないので、今から覚えて・・・となると難しいかもしれないっす。
けど頭の片隅にVBAでは出来ると言う事を叩き込んでおきます。

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

878 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 12:37:57
>>877
それだけの言語扱える奴なら、今回の操作は
3時間もVBA関連の本眺めればすぐ出来るだろ。
スクリプトなど未経験者で5日、PC操作未経験者でも1週間ってところか
4週間も期間があるなら、1日30分しか時間を当てられないとしても余裕だな。

879 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 15:12:06
質問しに北のに解凍するばかりで
全くレスもらえない>841が川獺だから
そろそろ誰か堪えてやれよ
というか奴レベルの奴が判らない琴だと
ここでは解凍出来る奴は以内のか?
まあ漏れの場合質問辞退が珍分感奮だが

880 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 15:54:58
すいません、バージョン2003で、SUM関数を入れたいセルに数字が対象のセルにない場合0と表示されますが、0を表示させない場合IF関数でやるしかないんでしょうか?

881 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 15:58:43
>>880
表示形式でやることも出来ますが。
0;-0;;@
とか。(詳しくはヘルプ参照)
但しSUM関数の結果が0だった場合も0表示されなくなる。
まあ、SUM関数の対象数値有りで結果が0ということはほとんど無いだろうが。

882 :名無しさん@Linuxザウルス:2005/04/27(水) 16:00:58
一つのワークシートに別のワークシートを張り付けたいんです。
どうすればいいんでしょうか?

883 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 16:08:16
>>881さんありがとうございます
雛形の書類を作って欲しいと頼まれ、0が表示されると駄目!と言われたんで
助かりました!

884 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 16:18:14
>>882
カメラ

885 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 16:25:31
それじゃ
>>841
40万件の文字列検索をVBAだけでやるのは速度的に難しい。
外部データベースと連携するのが正攻法。
どうしてもVBAだけでやるなら、ハッシュテーブルを作るとか。
もっと簡単な方法だと、先頭の1〜2文字で配列を分けるとか。
細かい条件がわからないので、それ以上は言及できない。

結果を格納する配列の要素はあらかじめ一定数確保しておき、不足したら
まとめて増やすのが昔ながらの小技で、メモリ上の再配置回数を減らせる。
今のPCスペックでどれだけ効果があるか確かめてないけど。

886 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 17:29:21
チンチンみせちやった
http://ex10.2ch.net/test/read.cgi/news4vip/1114580646/

ニュー速VIPに、公園で幼女にちんこをしごいて見せる画像を公開した>>1が登場www
さすがのVIPPERもこれにはどん引きwww


887 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 18:17:25
>881-882
SUMの結果のゼロも非表示で構わないなら
オプションのゼロ値非表示の方が楽でないか?

888 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 18:28:53
>>887
それは全体が対象になるでしょ。
今回の件も全体が対象でもいいのかもしれないけど
質問内容では対象は「SUM関数を入れたいセル」ね。

889 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 21:57:00
>>859さん、できました。ありがとうございます。
も一つ質問なんですが、フォームからフォームに格納した配列の数値を渡したいときは、
どこにどんな宣言をすればいいんでしょうか?


890 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 22:18:14
はじめまして質問です
Excel2000なのですが(OSは98です)エクセルで現金出納帳を作ったのですが
日付順に入れていき入れ忘れがあったので途中の行を1段下げるにはどうすればいいでしょうか?
またばらばらの日付になってしまった場合日付順に並べ替える事はできるでしょうか?


891 :名無しさん@そうだ選挙にいこう:2005/04/27(水) 23:24:27
>>889
私は859ではないですが、具体的なことがよくわからない。
フォームのどこに格納してるの?何に渡すの?
どのタイミングで?
それらがわからないと答えようがない。

>>890
行の挿入。
ソート。
どちらも基本。ヘルプ読むか、入門書買いな。

892 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 00:15:08
同じフォルダに入力.xlsと出力.xlsがあって
出力.xlsのSEET1のセルに[入力.xls]SEET1!A1と設定してるとき
出力.xlsだけを開くと
このブックはほかのデータソースへのリンクが設定されています
と警告がでますがこれを出力.xlsだけ開いたときでも
警告を出さずにリンクも成立するように入力.xlsをなるべく意識
しなくてもいいようにするにはどうすればいいでしょうか

893 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 00:22:37
>>891さん、遅れて申し訳ありません。
知りたかった方法以外のやり方で、解決しました。
先ほどの質問ですが、UserForm1のtextboxに数値を入力し、
そこに作ったボタンを押したら、配列に数値を格納しUserForm2を表示。
そしてUserForm2に作ったボタンを押したら、
配列に格納された数値を読み出して処理をする。と、こんな感じです。(かなり大雑把ですみません。)



894 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 00:35:36
>>869
ファイル復元ソフトとしては
ファイナルデータ、スーパーファイル復活、救出ファイル復元、完全復元、等が有名どころです

ファイナルデータOfficeプレミアムは特にワード&エクセルファイルの復元に力が入っていますが
ファイル破損度が30%以上になると一気に復元が厳しくなります

どのソフトでも復元不可能なほど壊れたファイルはどうしようもありませんよ

895 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 06:09:29
ウィンドウズXP、エクセル2002使っています。
既にあるグラフにy=2のグラフを追加したいのですが
シートに2だけが入った列を作らずに
系列を追加する方法があれば教えてください。



896 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 08:36:38
>>895
グラフの種類によって違うような気がするので、既にあるグラフとだけ
言われてもねえ・・・。

グラフエリアの右クリックから「元のデータ」を選び、「系列」タブの「追加」
ボタンでなんとかなるかも。
XとYのところに適当な値の組(たとえばXに「-10,10」,Yに「2,2」とか)
を入れれば、その数字だけでグラフ上に新しい系列ができるから。

897 :841:2005/04/28(木) 10:39:21
>>885
レスありがとうございます。

> 40万件の文字列検索をVBAだけでやるのは速度的に難しい。
そんなこと無いですよ。現にFilter関数での検索では、実用レベルの速度が出ています。
まあ、件数が多いのでFilter関数でもそれなりの時間は掛かりますが、
Filter関数と同程度の処理時間で要素ではなく位置を返せれば文句無しです。

> 外部データベースと連携するのが正攻法。
最終的には単一環境で使う物ではないので無理です。
最初に書いたとおりVBAで処理する方法を探しています。

> どうしてもVBAだけでやるなら、ハッシュテーブルを作るとか。
> もっと簡単な方法だと、先頭の1〜2文字で配列を分けるとか。
「特定文字列に完全一致する」ものではなく「特定文字列を含む」ものなので
ハッシュテーブルも先頭文字での配列分配も使えないと思うのですが。

> 結果を格納する配列の要素はあらかじめ一定数確保しておき 〜
検索用配列に値を格納する部分では、5万単位で配列の要素数を増やしてますが、
結果格納の方では回数が少ないので割愛していました。
しかし現段階では結果は返さず使い捨てしてるので、結果格納に配列を使わず
変数を使ってみましたが(もちろんReDim削除)速度はほとんど変わりませんでした。
結果格納部分での配列要素数変更回数はそれほど速度に影響してないようです。

ということで、失礼ながら処理速度向上に繋がる物は有りませんでした。


898 :841:2005/04/28(木) 10:40:24
> 細かい条件がわからないので、それ以上は言及できない。
あと何を書けばいいかわかりませんが、とりあえず思いつくものを書くと
約40万件のデータはテキストファイル(4要素のcsv)から読み込んでいて、
検索用配列に格納する第1要素は文字種(英数、カナ、漢字、記号)も文字数(数文字〜数十文字)も不定であり件数も可変です。
検索する文字列はExcelのシート上にあり、こちらも内容は不定で件数も数十〜数千まで可変です。
処理的には先ずテキストの内容を変数に格納して、それに対してシート上の文字列を上から順に検索し
結果を同行別列に返します。現在約40万件になる値を変数に格納すること自体は数秒なのですが
検索の方が時間が掛かりすぎてます(Filter関数での検索なら実用速度)。
現在使ってるExcelは2003なのですが、2002でも使う予定があり、
テキストファイルとExcelワークブックファイルのみを用意して、Excel上で処理出来るものが必要なので
最初に書いたようにExcel2002のVBAで処理する方法を探してます。
最低でもForステートメントでInStr関数で総当たりを掛けた方法(>>841)の
半分の処理時間で出来る物を望みます。(Filter関数での検索は↑の半分より更に短い時間で処理出来る)

引き続き情報をお待ちしております。

899 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 11:24:44
OpenOffice.org1.1.4使っています
<Excelのブック(拡張子がxlsのファイル)は、そのままCalcで開くことができます

とあるのにProgramが見つかりませんとなり開けません
これいかに

900 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 11:31:54
Exce入れてない環境でxlsファイルダブルクリックとかしてるんじゃないの?
関連付けするなりOOoからファイルを指定して開くなりしないと開けないのは当然

901 :899:2005/04/28(木) 11:53:51
関連づけで開けました

902 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 13:41:52
すいません。基本的な質問なんですが・・・・
生年月日が1981/7/1と表示されているものを19810701と一括して変換するには
どうしたらいいんですか?

903 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 13:45:43
>>902
シリアル値で入力されてるなら表示形式を
yyyymmdd

文字列として入力されてるなら、VBAで。

904 :902:2005/04/28(木) 15:26:51
>903
できました!ありがとうございます。

905 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 15:58:54
エクセルの初心者サイトでお勧めのサイトとかありませんか?
テンプレでどこか本の紹介とかない?

906 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 16:04:30
>>905
エクセルのヘルプがオススメ

907 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 16:08:23
>>905
ぐぐれ。良さげなサイトはすぐ見つかる。はず。

908 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 16:37:56
>>905
初心者と一口に言っても実際には非常に幅広い。
だから本でもサイトでも、誰かに最適なものがあなたにも最適とは限らない。

結論:自分で探すのが一番。それぐらいの手間はかけても罰は当たらん。

909 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 18:15:33
1つも教えないじゃ可哀相なんで、1つだけ。

初心者の頃、かなり見てたサイト。今でも見ることもある。
ttp://www.asahi-net.or.jp/~ef2o-inue/

先頭の「h」抜いてるから足してね。

910 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 18:55:43
A1に=RANDBETWEEN(1,9)を返したとき
A2にA1以外の=RANDBETWEEN(1,9)を返す方法を教えていただきたい。

911 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 19:13:35
「教えていただきたい」って何かうちの社長みたいだな

912 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 19:53:05
Excelで処理しているデータに関してなのですが
今例えばA列にAAAA、その隣のB列にそのシート内でAAAAというデータが入っている
セルの数を入力する列、また別の列にBBBB、その隣の列にBBBBというデータが入っている列・・・
という形になっています
データの並びとしては 
データ名・データの入っているセルの数・データ名・データの入っているセルの数・データ名・(以下繰り返し)
という流れになっており、データ名の入っている列にはデータ名しか入りません。データ名の隣の列も同様です

AAAAとデータを入力したらシート内でAAAAと入っているデータの数を自動的に
入れてくれる関数というものはありませんでしょうか
・あくまでもシート内のデータの数で、シートにまたがるデータはありません
・データの入っている列はバラバラです 
 例えばA列にしかAAAAというデータが入っていない、ということはありません

もしかしたらVBAの部分かな、とも思うのですが
うまくつたわっているのかどうか自信がないのですがよろしくお願いいたします

913 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 20:11:26
>>898
自分がよく使ってるのは元のデータに位置情報を付加してしまう方法。
ネットでは見たことないので、ほかにいい方法があるかもしれないけど。
配列(i) = 文字列 & vbTab & i


914 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 21:44:51
>>912
いまいち意味がわからないけど…

countifでできそうなことだと思う。

試しに例を出すと、セルB1に =countif(A2:IV65536,"AAAA")って入れれば
セルB1には "AAAA" の存在するセルの数が出るよ。
例はcountifの検索範囲にB1を含められないから、A2:IV65536にしてるだけ。

こういうこと?

915 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 22:09:37
>>910
どこかのセルに=RANDBETWEEN(1,8)を出して、
それがA1より小さいときはそのまま、同じか大きいときは1を加えたもの
をA2に。

916 :初心者:2005/04/28(木) 22:57:11
教えてください。
友達の話なので、Excelのバージョンはわからないので、申し訳ないのですが、
Excelを立ち上げたときに、前に作成したデータ(表)が出てくるそうです。
要するに、新規作成ボタンを押しても、前回作成したデータが立ち上がってくる
というのですが、どうすればクリアにできるのでしょうか。
ご存知のかた、よろしくお願いします。

917 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 23:13:14
>>892
openメソッドの引数にUpdatelinksを設定。
「UpdateLInks:=3」あたりでググッてみ?
イベントプロシージャにコードを書けばファイルを開くと自動で更新されるはず。

918 :名無しさん@そうだ選挙にいこう:2005/04/28(木) 23:28:40
>>915
僕みたいなバカには思いもよらぬ方法です。IFとはそうやって使うものなのですね。
親切に教えていただき、ありがとうございます。

919 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 00:10:10
みなさんの高いレベルに及ばない質問ですが、どうか答えてやってください

学習用にExcelの表を作っているのですが、赤い下敷き越しに見ると
文字が消える色はExcelだとどの色に当たるでしょうか?

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

920 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 00:50:29
>>916
XLStartというフォルダを検索して下さい。
そこに入っているデータを削除する。



921 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 01:12:38
>>919
赤い下敷き越しで見えないのは「赤」じゃない?

規定の赤でうまく消えない場合(プリンターの違いもある)は
ツール→オプション→色→変更→ユーザー設定、で
RGBを220、30、30とかいろいろ試してみてもらわないと
下敷きの赤が、どんな赤かもわからない

922 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 01:16:47
ちょい至急っス

たとえばA1セルに、シート名を表示させるにはどうすればよいでしょうか?
シート名が「アボーン」で、そのシート内のA1セルには アボーン と表示してある・・・

簡単そうで難しいっス

923 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 01:17:00
>>919
プリンタやディスプレイによる

924 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 01:29:43
「シート名 セルに表示 Excel」でググればいくつも解説サイトが出てくる。

925 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 01:30:56
>>922
A1以外のセルに

=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,100)

926 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 01:46:19
>925
最後の100は31でいいんじゃないの?と技道場の解説を見た俺が言う。

>922
A1に表示したいなら>924の数式のA1部分を表示したいシートの適当なセル(A2なりなんなり)に
書き換えてA1にその数式入れるといいよ。

927 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 01:46:36
以下のマクロで実行した時、ファイルが見つかりませんというエラーが出てしまい、その原因がわかりませんので教えてください。
パス、ファイル名ともに間違いありません。また、book1を開き、手動でファイル→開くからファイル100.xlsを選択して一度開いて閉じた後、マクロを実行すると正常処理されます。
初めにマクロを実行するとエラーとなり、当該ファイルを予め開いて閉じておくと正常処理されるためプログラム上どこに問題があるかわからず行き詰まっています。
どなたか恐れ入りますがよろしくお願い致します。

Sub Path()
afile = "100.xls"
Windows("book1").Activate
Sheets("Sheet1").Select
ChDir Range("C3")
Workbooks.OpenText Filename:=afile
End Sub

928 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 01:48:36
922っス
ありがとうございます
出来ました
感動しました

929 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 05:59:15
>>927
book1のSheet1のC3に100.xlsのパスが書いてあると仮定したら、
当方ではうまく動いたけど?

当然book1は開いてる状態でマクロ実行してるよね?

930 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 06:44:40
あるコードを実行すると、正常に実行されたりエラーになったりします。
コードは
Cells(Target.Row, Range("1:1").Find(Date).Column).Select
というもので、イベントで動かし対象行の今日の日付列に選択を移すものですが
普段は正常に実行されてるのに、いつの間にか
> 実行時エラー '91':


> オブジェクト変数または With ブロック変数が設定されていません。
というエラーが出るようになります。
一度こうなると再起動させるまで何回やっても同じえらーが出ます。
再起動させれば正常に戻りますが、また使ってるうちにエラーが出るようになるという症状が
数十回と再現してます。
どうすればこの現象を回避出来るようになりますか?
Excel2002、WindowsXPです。

931 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 07:13:34
>>930
1行目には必ず検索する日付が存在するの?
Findは目的の文字が存在しない場合Nothingを返します。
そのときは
オブジェクト変数または With ブロック変数が設定されていません。
っていうエラーが出るよ。

932 :930:2005/04/29(金) 08:51:16
>>931
はい、間違いなく存在します。
条件付き書式で「=セル=TODAY()」でその日の日付セルに背景色指定してるけど
エラーが出たときも、毎回ちゃんと色付けされてるセルがあったので
年月日ともにPCの日付(VBAのDate)と一致するセルは間違いなく存在しました。

そこで、ご指摘の件を確認しようと思い
Set hoge = Range("1:1").Find(Date)
を実行してみたところ、戻り値はNothingでした。
しかし今日の日付のシリアル値を持つセルは間違いなく存在し、
MsgBox Range("AE1").Value = Date
ではTrueが返ります。

何故 = Date でTrueが返るセルをFind(Date)で検索出来ないのでしょうか?
とりあえず代用として
Dim i As Byte
Do: i = i + 1
Loop Until Cells(1, i).Value = Date Or i = 35
If i < 35 Then Cells(Target.Row, i).Select

For i = 3 To 35
 If Cells(1, i).Value = Date Then Cells(Target.Row, i).Select: Exit For
Next i
こんなのを書いてみましたが、これはDoもForもきちんと動作してます。
今回はこの代用処理でもそれほど不都合はありませんが、
Findが使えないと今後困るので原因と解決法をご存じの方、どうかお助けください。

933 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 09:17:12
>>932
おかしくなる前に「検索と置換」でコメントを検索したりしていませんか?
FindメソッドはLookIn、LookAt、SearchOrder、MatchByteの引数を
実行するたびに保存します。
Findする際はLookInなど明示的に書いておいたほうがよいですよ。

934 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 09:55:28
>>927
パスまで書かないとそりゃだめですよ。
一度ファイルを開くとそのパスがデフォルトになるから、
以降はファイルが開ける。
マクロを記載したたとえばA.xlsと同じフォルダーに100.xls
があるのなら、まずはA.xlsのパスをVBAで取得して、
そのパスをつけて100.xlsを開くようにする。

ちなみに、A.xls以外にある場合、パスをつけてファイルを
開くようなマクロを作った場合、そのPCではパスがあっていても
他のPCではパスが変わるから開けなくなる。
従い、A.xlsにファイルがない場合は、ユーザーにファイルを
選択させるようにマクロを書かないとあとで困ります。

935 :930:2005/04/29(金) 10:13:22
>>933
コメントの検索はしていませんが、値の検索をしていました。
そこで、Find(Date, , xlFormulas) としたところ上手くいきました。

今まで知らなかったのですが、FindメソッドでDateを検索する場合、
対象セルの表示形式がyyyy/m/dの場合はxlValuesでもxlFormulasでも検索できるけど
それ以外の表示形式の場合はxlFormulasじゃないと検索出来ないようです。(もしかして常識?)
通常の条件式では、
「当日日付セル.Value = Date」 → True
「当日日付セル.Formula = Date」 → False
なので、FindメソッドでもxlValuesでいいものだとばかり思っていました。

>>931さん、>>933さん、どうもありがとうございました。

936 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 10:13:54
>>932
=today()ではシリアル値になっているからFindでは検索できません
セルの表示上2005/4/29であっても、実際は38471という日付
シリアルなので、Find("2005/4/29")では検索できないからです。
シリアルでも検索して、どちらかマッチした方とするマクロを組むべきです。

937 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 10:20:42
>>936
あ、回答が出てしまってますな w
ただ、xlValue(文字列として記入されている場合)とxlFormula
(シリアル値の場合)と両方検索しておくのが無難と思いますが。
自分だけで使うなら別にいいでしょうけどね。

938 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 10:24:12
>935みたいに解決したときは
解決方法や不都合が起きてた理由をちゃんと書く奴は好感もてるね
どうやら>936も知らなかったみたいだし、漏れもxlFormulas使うなんて知らなかった。
漏れの場合、Cells(Target.Row, Day(Date) + n)とかで飛んでたから
FindでDateの検索自体したこと無かったけど。

939 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 11:27:47
ユーザーフォームで連番のコントロールを操作するとき
Controls("TextBox" & i)みたいに出来ますよね
これと同じことを変数や配列でやるにはどうすればいいですか
変数 > 配列使え、配列 > 配列の次元を増やせ
とか言われそうだけど、連番の奇数と偶数で違った型を指定したかったりすることもあるし
1次元配列にしかできない操作とかもある
なので、どうやれば連番変数や連番配列をControls("TextBox" & i)みたいな
感じで操作できるのか教えてくださいまし

940 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 12:22:09
>>939
普通にhensuu(i)でいいじゃん。

941 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 12:32:55
>940
それhensuuじゃなくてhairetu

942 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 12:49:35
>>940
941さんの言うように、それは配列ですね
>>939でも書いた「変数 > 配列使え」に当たります
何故配列にしたり配列の次元を増やしたりじゃダメなのかは>>393で書いた通りです
Variant型は全ての値を格納出来るとはいえ、型を指定した変数に格納することで
データ変換的なことをする場合もあるし、Variant型は一番メモリを食います
配列操作のJoinなんかも一次元配列じゃないと使えません
まぁ代用策はいくらでもありますが、>>939が出来ればかなり簡素化できるので

単純に値の受け渡しだけなら
変数 > 配列使え、配列 > 配列の次元を増やせ
で問題ないんですけどね

943 :912:2005/04/29(金) 12:59:39
>>914
やりたいことはそういうことです
どうもありがとうございます

944 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 13:02:12
>>939
たしか可能だったと思うけど、やり方忘れた。
思い出したらまた来る。(その前に回答付くかな

945 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 13:09:25
>>942
型がテキストだったら連想配列(Dictionaryオブジェクト)だが、、、

946 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 13:09:57

Microsoft Office2000をインストールしたのですが、
Excelを使おうとしたら表示が英語でした。

langageを探したのですが見つからず、日本語にできません。
ちなみにWordもです。どうすればいいのでしょうか?



947 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 13:18:47
>>946
そもそもOSは日本語版ですか?
そもそもOfficeも日本語版ですか?
であれば、Office XPだったらスタート→Microsoft Officeツール
のなかに言語設定というのがあるから、それに近いものが
2000でもあるかもしれない。

あと、コントロールパネルの地域が日本になっていますか

948 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 13:28:52
>>947
OSは日本語版です。オフィスはわかりません。
そのツールの中にlangage Setting というものがあるのですが
英語で書かれててよくわからないし、おk−したらエラー1716?と出ます。
コントロールパネルは日本となっています。



949 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 13:31:33
>>946
PCQAとマルチポスト

950 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 13:33:34
>>949
すいません。Wordの方にも当てはまったため書き込んでしまいました。

951 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 15:51:18
>>939,942
これは参考になるのかな?
ttp://www.moug.net/skillup/opm/opm08-06.htm

VBAでVBのコントロール配列を無理矢理(?)使う方法。

952 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 16:32:47
939がやりたいのはコントロール配列じゃなくて、配列の配列だと思う。
多次元配列ではなく、多段階配列のほう。

953 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 17:28:58
>952
知ってるなら教えてやれば?

954 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 18:14:11
>>953
知ってるわけじゃない。
たぶんVBAでは無理だと思う。VB.NETなら出来るんだけど。

955 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 19:28:58
次スレ建てる方へ

次スレのテンプレに以下を追加希望!

情報の小出しはヤメレ

自己解決したと書いた人へ
 このスレに書き込みした・情報の共有という意味からその解決した方法を書いてくれ。他の人間
 してみたらそれを知りたいということもあるんだよ。



956 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 20:12:26
>>926
ありゃりゃ、技道場も同じ式で解説してるよ

シート名の最大数が31だとは知らんかったorz

957 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 21:09:42
どなたかPreviousSelectionsについてご存知の方、おしえて下さい。

どこかのセルを選択してから、
Sub hoge()
Dim v As Variant
v = Application.PreviousSelections
End Sub

を実行すれば、エラーにはならないはずなんだが、なぜか
v = Application.PreviousSelections
でエラーになります。

何で???



958 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 21:53:02
>>957
Dim v As Range
On Error Resume Next
Set v = Application.PreviousSelections(1)


959 :957:2005/04/29(金) 22:09:14
>>958
もうしわけないけど分かりません。

だいたいヘルプの

On Error GoTo noSelections
For i = LBound(Application.PreviousSelections) To _
UBound(Application.PreviousSelections)
MsgBox Application.PreviousSelections(i).Address
Next i
Exit Sub
On Error GoTo 0

noSelections:
MsgBox "選択した記録がありません。"

でも必ず「選択した記録がありません」になる。
選択してるのに何で???

A1,A3,A5,A7の順にセルを選択すれば
$A$7,$A$5,$A$3,$A$1の順にMsgboxで表示されるんじゃないのか?
何か勘ちがいしてるんだろうか?

960 :957:2005/04/29(金) 22:25:22
ちなみに>>957でやりたかったことは正確にはこういうことです。
Sub hoge()
Dim v As Variant
Dim i As Long
On Error GoTo noSelections
v = Application.PreviousSelections
For i = LBound(v) To UBound(v)
MsgBox v(i).Address
Next i
Exit Sub
On Error GoTo 0
noSelections:
MsgBox "選択した記録がありません。"
End Sub
ヘルプの使用例はへぼすぎるよね。

961 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 22:33:05
>>960
> ヘルプの使用例はへぼすぎるよね。
ちゃんと読んだ人が言う言葉だ。

ヘルプより引用
[名前の定義] ボックスを使ってセルまたはセル範囲にジャンプしたり、
[編集] メニューの [ジャンプ] をクリックしたり、マクロが Goto メソッドを
呼び出したりすると、セル範囲が配列の 1 番目の要素として挿入されます。
配列の他の要素は、1 つずつ後ろに送られます。

クリックしただけじゃ記録されない。

962 :957:2005/04/29(金) 22:42:29
そうかクリックしただけじゃ記録されないのか。
勘ちがいでした。
でもヘルプがヘボなのは確か。


963 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 22:51:08
>>962
For Nextもヘボだろ?

964 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 23:12:17
ヘボい奴が見るとヘルプがヘボく見える。
それはヘボ故にきちんと理解できてないから。

965 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 23:26:47
On Error GoTo 0 の位置が間違ってる件について。

966 :名無しさん@そうだ選挙にいこう:2005/04/29(金) 23:35:03
>>957
せめて下くらい書けないと人にヘボとはいえないよ。

Sub hoge()
  Dim v As Variant
  Dim i As Long
  On Error Resume Next
  v = Application.PreviousSelections
  On Error GoTo 0
  If IsEmpty(v) Then
    MsgBox "選択した記録がありません。"
  Else
    For i = LBound(v) To UBound(v)
      MsgBox v(i).Address
    Next
  End If
End Sub

漏れも>>963同様For Eachの方がいいとは思うが。

967 :Win2000+EXCEL2000:2005/04/30(土) 14:59:03
@ リストボックスのフォントを大きくすることはできますか?
A メールを送信したいのですが、うまくできません。
どこかおかしいところあるでしょうか?
Dim vntADDRESS As Variant
Dim strNAME As String
With ThisWorkbook
With .Worksheets("Sheet2")
vntADDRESS = .Range("C5:C" & .Cells(Rows.Count, "C").End(xlUp).Row)
End With
strNAME = Left(.Name, Len(.Name) - 4) _
& "_" & Format(ActiveSheet.Range("A1").Value, "yyyymm")
On Error Resume Next
Kill .Path & "\" & strNAME & ".xls"
On Error GoTo 0
.Save
End With
ActiveSheet.Copy
With ActiveWorkbook
.SaveAs Filename:=ThisWorkbook.Path & "\" & strNAME
On Error Resume Next
.SendMail Recipients:=vntADDRESS, Subject:=strNAME
On Error GoTo 0
.Close SaveChanges:=False
End With
Kill ThisWorkbook.Path & "\" & strNAME & ".xls"
End Sub


968 :名無しさん@そうだ選挙にいこう:2005/04/30(土) 15:15:46
>>967
ttp://park11.wakwak.com/~miko/Excel_Note/99-04_sonota.htm#99-04-69
のコピペかよ

いくら初心者でも「どこがおかしいか」までは自分で調べるべきだよ。
その上で解決方法がわからなければここで聞けばいい。

ちなみに@は「フォーム」のリストボックスなら出来ません。
「コントロール」及び「ユーザーフォーム」のリストボックスならプロパティで変更可。

969 :Win2000+EXCEL2000:2005/04/30(土) 15:48:49
@ありがとう。 わかりました。
 「フォーム」の方が作成が簡単なので妥協します。
 「ユーザーフォーム」はセル1つに設定できるものでしょうか?
 
Aもう少し調べてみます。

970 :名無しさん@そうだ選挙にいこう:2005/04/30(土) 17:31:38
>>969
フォームはセルとは無関係

971 :Win2000+EXCEL2000:2005/04/30(土) 20:24:25
だとすると、セルみたいに、
ポンポンセル単位でコピーできないってことですね。
謝謝!

972 :名無しさん@そうだ選挙にいこう:2005/04/30(土) 20:45:42
すみません教えて下さい。
excel2000です。

ユーザーフォームで作ったテキストボックスに、
「貼り付け」でも入力できるようにするにはどうしたら良いのでしょうか。

973 :名無しさん@そうだ選挙にいこう:2005/04/30(土) 20:48:38
>>972
普通に張り付ければいいじゃん。
それとも「張り付け」ボタンとか作って、
そのボタンをクリックしたらテキストボックスに張り付けしたいとか?

974 :名無しさん@そうだ選挙にいこう:2005/04/30(土) 20:53:37
セルに設定されている入力規制と実際に入力されている値を比べてエラーだとセル番号を返す方法はないでしょうか?
できればFor Next使って行単位で調べたいんですが

975 :名無しさん@そうだ選挙にいこう:2005/04/30(土) 21:15:09
>>974
Validation.Formula1を取得。
直接値が書かれてるならカンマでSplitに書けて配列に格納、
セル参照なら、参照範囲の値を配列に格納。
配列から一致する物があるかどうかを検索、
一致がなければ、エラーとしてセル番号(セルアドレス)を返す。
をForで回す。以上。



次スレから質問テンプレ化提案

【    O S の 種 類    .】Windows***
【 E x c e l の バ ー ジ ョ ン 】Excel***
【  V B A が 使 え る か  】(はい・いいえ)
【Googleでの検索キーワード】
【ヘルプでの検索キーワード】
【スレのFAQとログを読んだ.】(はい・いいえ)
〜〜〜質問内容〜〜〜

最低限このくらいは書かせようぜ。
「Excelのバージョン、OSのバージョンも書くとレスが付きやすい。」とかじゃ生ぬるいし
書いてないと答えようのないものや、回答内容が変わるものもあるから。


976 :名無しさん@そうだ選挙にいこう:2005/04/30(土) 21:56:39
>>973
レスありがとうございます。
テキストボックス上で、右クリックが効かなくて
普通のペーストの操作ができないのです・・・。(編集→貼り付けも×)

何かおおもとの設定が変なのかな・・・。

977 :名無しさん@そうだ選挙にいこう:2005/04/30(土) 22:40:57
ctrl+c ctrl+vならいけるんじゃないの?

978 :名無しさん@そうだ選挙にいこう:2005/04/30(土) 22:45:46
>>977
できました・・・が、できればマウスでできるようにしたいんです。無理なんでしょうか・・・。

979 :名無しさん@そうだ選挙にいこう:2005/04/30(土) 23:18:26
シート開くときにいつの間にかウィルススキャンをするようになり
データ無しのシートを開くのさえ10秒くらい掛かるんですが
直せますか?



980 :名無しさん@そうだ選挙にいこう:2005/04/30(土) 23:51:52
>978
ショートカットが面倒か…慣れればそっちのが早いと思うけどねえ。どうしてもってなら
クリップボードの中身を取得して、それをTextBoxにペーストするマクロ組めば?
で、>973のいうようにボタン作って割り当てればマウスだけペーストでできる。

981 :名無しさん@そうだ選挙にいこう:2005/05/01(日) 00:52:29
>>980

なんかテキストボックス上では右クリック無効みたいっす。
ふだん慣れてるコピペ操作が使えれば、事務所のオサーン達にも直感的に使ってもらえるフォームが
できるかと思ったんです・・・。
ショートカット教えた方が早いですねw
ありがとうございました。

982 :   次スレテンプレ (前スレURL修正済み)   :2005/05/01(日) 04:34:48
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼

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

     /)_/)    ( ・質問する人は可能な限り具体的に書いてね。
    < ゚ _・゚> .。oO( ・情報は小出しにせず、きちんと書いてね。
  ノ) /   |    ( ・回答がなくてもキレないで。
  \(_,,,_,,,)   ( ・分かる人はできるだけ回答して下さいませ。

前スレ
http://pc8.2ch.net/test/read.cgi/bsoft/1112190520/


★質問するときは下記1〜6のテンプレを全て埋めること★
★自分で出来ることは自分でやろう(ヘルプ・Googleの検索など)★
【1     O S の 種 類    】 Windows***
【2 E x c e l の バ ー ジ ョ ン .】 Excel***
【3   V B A が 使 え る か  】 はい・いいえ
【4 Googleでの検索キーワード】
【5 ヘルプでの検索キーワード】
【6 スレのFAQとログを読んだ.】 はい・いいえ
〜〜〜質問内容〜〜〜


過去スレは>>2
FAQ(よくある質問と答え)は>>3-10くらい。

▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
   次スレテンプレ (前スレURL修正済み)


983 :名無しさん@そうだ選挙にいこう:2005/05/01(日) 08:04:28
追加のテンプレができたのか。中途半端にスペース入れた均等割り付け風味じゃなく
シンプルに左寄せ↓でいいんじゃないかねえ。

【1 OSの種類】 Windows***
【2 Excelのバージョン】 Excel***
【3 VBAが使えるか】 はい・いいえ
【4 Googleでの検索キーワード】
【5 ヘルプでの検索キーワード】
【6 スレのFAQとログを読んだ】 はい・いいえ


984 :名無しさん@そうだ選挙にいこう:2005/05/01(日) 08:23:44
どっちでもいいよ。
まあ、前々から質問テンプレは有った方がいいと思ってたけど

985 :名無しさん@そうだ選挙にいこう:2005/05/01(日) 10:06:31
追加!


     /)_/)    ( ・質問する人は可能な限り具体的に書いてね。
    < ゚ _・゚> .。oO( ・情報は小出しにせず、きちんと書いてね。
  ノ) /   |    ( ・回答がなくてもキレないで。
  \(_,,,_,,,)   ( ・分かる人はできるだけ回答して下さいませ。
            ( ・自己解決したって人はその解決手段を他の人の参考の為に書いてね。


986 :   次スレテンプレ (前スレURL修正済み)   :2005/05/01(日) 10:10:44

▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼

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

     /)_/)    ( ・質問する人は可能な限り具体的に書いてね。
    < ゚ _・゚> .。oO( ・情報は小出しにせず、きちんと書いてね。
  ノ) /   |    ( ・回答がなくてもキレないで。
  \(_,,,_,,,)   ( ・分かる人はできるだけ回答して下さいませ。
            ( ・自己解決したって人はその解決手段を他の人の参考の為に書いてね。

前スレ
http://pc8.2ch.net/test/read.cgi/bsoft/1112190520/

★質問するときは下記1〜6のテンプレを全て埋めること★
★自分で出来ることは自分でやろう(ヘルプ・Googleの検索など)★
【1 OSの種類】 Windows***
【2 Excelのバージョン】 Excel***
【3 VBAが使えるか】 はい・いいえ
【4 Googleでの検索キーワード】
【5 ヘルプでの検索キーワード】
【6 スレのFAQとログを読んだ】 はい・いいえ
〜〜〜質問内容〜〜〜


過去スレは>>2
FAQ(よくある質問と答え)は>>3-10くらい。

▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
   次スレテンプレ (前スレURL修正済み)


987 :名無しさん@そうだ選挙にいこう:2005/05/01(日) 12:57:40
早速テンプレ使って質問させていただきます。

【1 OSの種類】 WindowsXP
【2 Excelのバージョン】 Excel2002
【3 VBAが使えるか】 はい(まだまだヘボですが)
【4 Googleでの検索キーワード】 Excel VBA If 対象範囲
【5 ヘルプでの検索キーワード】 「If...Then...Else ステートメントの使い方」と関連項目
【6 スレのFAQとログを読んだ】 はい

VBAのTargetがあるイベントで、特定の範囲だけを対象にするにはどうすれば良いのでしょうか?
たとえば、C3:E5だけを対象にしたい場合、思いつく方法としては、
With Target
If .Row >= 3 And .Row <= 5 And .Column >= 3 And .Column <= 5 Then
End If
End With
とかいうように条件4つをズラズラと並べたり
Dim Rng As Range
For Each Rng In Range("C3:E5")
If Rng.Address = Target.Address Then
Exit For: End If
Next Rng
みたいなループ処理させる方法しか思いつかないのですが、
こういった範囲指定がたくさんあると、コードが複雑で見辛くなるのでもっとスマートに
Ifの1条件だけで「TargetがC3:E5の範囲に含まれているか」を判断するにはどうすれば良いのでしょうか?
よろしくお願いします。


988 :名無しさん@そうだ選挙にいこう:2005/05/01(日) 13:31:12
>>987
こんな感じ

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect(Target, [C3:E5]) Is Nothing Then
    Target.Value = "このセルはC3:E5の範囲内"
  End If
End Sub


989 :987:2005/05/01(日) 13:43:02
>>988
ありがとうございます。
[C3:E5]はRange("C3:E5")と同義ですよね。
これでコードがスッキリします。

990 :名無しさん@そうだ選挙にいこう:2005/05/01(日) 16:12:51
Excel2003つかってまつ。
セルの上にマウスを乗せると入力する情報をポップアップさせること出来ますか?
例)表○○のセル○○を参照して入力してください
みたいな。。


991 :名無しさん@そうだ選挙にいこう:2005/05/01(日) 16:30:51
>>990
右クリック→コメントの挿入

992 :名無しさん@そうだ選挙にいこう:2005/05/01(日) 16:51:51
>991

ありがとうござい待つ


993 :名無しさん@そうだ選挙にいこう:2005/05/01(日) 19:52:06
テンプレ長すぎてうっとおしいな
もうちょっと省略するか、いっそなしにするか

994 :名無しさん@そうだ選挙にいこう:2005/05/01(日) 23:58:00
あるエクセルのWEBサイトで、下のようにセルに入力すると、勝手にリンクが張られ、
そのリンクをクリックしただけで、自動的にメールが作成できると書かれてました。
しかし、クリックすると日本語部分が文字化けします。
どうすればいいですか?相手への嫌がらせで、文字化けのままメール送っていいですか?

mailto:kato@abc.co.jp;yamada@abc.co.jp?cc=suzuki@abc.co.jp&bcc=sato@xyz.co.jp&
subject=ありがとうございます&body=当メールサービスをご利用いただきありがとうございます

995 :名無しさん@そうだ選挙にいこう:2005/05/02(月) 01:54:38
>993
長すぎるってたった6項目じゃん。
それも最低限必要な情報と
最低限やるべきことの確認だけ。

996 :名無しさん@そうだ選挙にいこう:2005/05/02(月) 08:39:31
それすらも出来ないんだったらExcelを使うの、止めた方が良いよ。

997 :名無しさん@そうだ選挙にいこう:2005/05/02(月) 09:05:00
列によって、入力方式を変えたいのですが、可能でしょうか?
可能な場合、どのように設定すればよろしいのでしょうか?

希望する使い方:
A列に英単語を、B列にその日本語を入力したいので、
カーソルがA列にあるときは、半角英数字モードで
B列にあるときはローマ字入力モードに自動的になる。


998 :名無しさん@そうだ選挙にいこう:2005/05/02(月) 09:08:54
テンプレートに入れました。

【1 OSの種類】 Windows xp
【2 Excelのバージョン】 Excel 2002 SP-2
【3 VBAが使えるか】 はい
【4 Googleでの検索キーワード】 Excel 入力 自動  他いろいろ
【5 ヘルプでの検索キーワード】 入力 漢字  他いろいろ
【6 スレのFAQとログを読んだ】 はい

〜〜〜質問内容〜〜〜
列によって、入力方式を変えたいのですが、可能でしょうか?
可能な場合、どのように設定すればよろしいのでしょうか?

希望する使い方:
A列に英単語を、B列にその日本語を入力したいので、
カーソルがA列にあるときは、半角英数字モードで
B列にあるときはローマ字入力モードに自動的になる。


999 :名無しさん@そうだ選挙にいこう:2005/05/02(月) 09:45:51
>>998
1. 列ごとに入力規則の日本語入力を設定する。

2. VBAのWorksheet_SelectionChangeイベントで、
  IfやSelect CaseとTarget.Columnで条件分岐しIMEModeを操作する。



スレ立て可能な方、>>986のテンプレで次スレよろしく。

1000 :名無しさん@そうだ選挙にいこう:2005/05/02(月) 09:57:48
>>999
ありがとうございます。
入力規制、気が付きませんでした。
おかげさまで、作業が格段とはかどります。

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

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

363 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)