1 :
名無しさん@そうだ選挙にいこう :
2005/06/28(火) 00:27:59 Excelに関する質問は、ここで!
/)_/) (・質問する人は可能な限り具体的に書いてね。
< ゚ _・゚> .。oO(・情報は小出しにせず、きちんと書いてね。
ノ) / | (・分かる人はできるだけ回答して下さいませ。
\(_,,,_,,,) (・自己解決したって人はその解決手段を他の人の参考の為に書いてね。
■下記の質問用テンプレ使うと回答者がわかりやすい
---------------------------------------
【1 OSの種類とExcelのバージョン】
【2 Googleやヘルプでの検索キーワード】
【3 VBAが使えるか / VBAでの回答の可否】
---------------------------------------
1.質問は具体的に。「なにがわからないか」をできるだけ詳しく。
2.手元にある情報(シートの内容やソースなど)は可能で妥当な内容を提示。
(図を書く場合、TABや連続する半角スペースは無視されるので注意。
★回答者はマタ〜リで。答えたくなければスルーで処理。
・前スレ
Excel総合相談所 34
http://pc8.2ch.net/test/read.cgi/bsoft/1117721050/
= FAQ: 列の表示について = Q:列名がA,B,C,D,Eではなく、1,2,3,4,5になってしまいました。 アルファベットに戻すにはどうしたらいいですか? A:ツールメニュー:「オプション」 -「全般」タグで 『R1C1 参照形式を使用する(C)』のチェックを外せば直ります。 Q:列を256個(IV列)よりたくさん広げることはできませんか? A:エクセルのシートは65536行×256列が仕様上の上限です。 シートを分けるとか、行と列を入れ替えるとか、データの方をまとめるとか、 列数を増やさない方向で工夫するしかありません。 Q:ひとつのブックにシートは何枚作成出来ますか? A:物理メモリ容量やシートの内容に依存します。 = FAQ: 印刷プレビュー = Q:印刷プレビューではセル内に収まっていた文字が 実際に印刷してみるとはみ出してしまうのですが、 何とかなりませんか? A:「印刷プレビューと印刷結果が一致しない」のは 昔からのExcelの弱点で、どうにもなりません。 セルの幅や高さに余裕を持たせるか、 書式設定で「縮小して全体を表示する」にチェックを入れましょう。 = FAQ: マクロの”削除” = Q:マクロを削除したのに、ファイルを開くたびにセキュリティの確認が出ます。 A:モジュールの解放が必要。 【モジュールの解放方法】Alt+F11→Ctrl+R→Module1を右クリック→解放
= FAQ: 条件によって表示を変更するには? = Q:セルの内容を判断して、表示を変えたい A: IF関数を使います。 =if(条件,条件が成立した場合,成立しなかった場合) 例1:基本 セルA1が1の場合○、それ以外の場合×を表示 =IF(A1=1,"○","×") 例2:if文の中にif文 A1が、1の場合○、2の場合△、それ以外×。 =IF(A1=1,"○",IF(A1=2,"△","×")) 例3:ANDやOR活用 A1が、4〜6の場合は、普通と表示 =IF(AND(A1>3,A1<7),"普通","少ないか多い") 例4:計算も出来る A1が10までなら、A1を10倍して表示、それ以外なら2を引く。 =IF(A1<11,A1*10,A1-2) 例5:対象が空欄なら表示も空欄にする A1が空欄なら結果は何も表示しない、それ以外ならA1から2を引く。 =IF(A1="","",A1-2) =IF(ISBLANK(A1),"",A1-2) 詳しくはヘルプを参照しましょう。
= FAQ: グラフについて = Q1:データの空白部分があって、そこで折れ線が切れてしまいます。 繋げたいのですが如何したらいいでしょうか? A1:グラフを選択>ツール>オプション>グラフ>空白セルのプロット「補間してプロットする」にチェック Q2:棒グラフに重ねて、折れ線グラフを表示するにはどうしたらいいのでしょうか? A2:最初、すべてのデータを棒グラフで作成。 次に、折れ線で表わしたいデータ系列のどこかを、グラフ上で右クリック サブメニュー>グラフの種類>折れ線>OK Q3:ある系列だけ、縦軸を別にしたいです。 A3:その系列のどこかを、グラフ上で右クリック データ系列の書式設定>軸>使用する軸「第2軸」にチェック>OK = FAQ: 入力した値が変わる? = Q:セルに入力した値が勝手に変わってしまうのですが 入力したままの形で表示させるにはどうしたらいいですか? A:数字でよくあるケース(先頭のゼロが消えてしまう、日付として解釈されてしまう) 入力する時、先頭にアポストロフィ(')をつけるか、 該当するセルで右クリック−「セルの書式設定」−「表示形式」で「文字列」を選択。 文字列ではなく数値として扱いたいときは 「セルの書式設定」−「表示形式」で「ユーザー定義」を選択し、工夫する。 A:文字でよくあるケース(i⇒I、teh⇒the、cna→can など) ツール→オートコレクト→入力中にオートコレクト の該当する箇所を削除。
= FAQ: 行列の入れ替え = Q:エクセルで作った表が横方向に多くなってきたので 行と列を入れ替えたいのですが。 A:コピーして、適当なセルで右クリック。 形式を選択して貼り付け→行列を入れ替える。 = FAQ: 参照するセルをセルの値で指定する = Q:A1に「5」とか「6」とか指定する値を変えたら B1の関数で「C5」とか「C6」とか参照先が変わるようにできませんか? A:INDIRECT関数を使ってみましょう。 詳しくはヘルプで「INDIRECT」を検索 = FAQ: ブラウザの変更 = Q:Excelでアドレスをクリックした時に開くブラウザをIEからSleipnirなどに変更したい。 A:スレ違いです。 開きたいブラウザの設定画面でそのブラウザを通常使うブラウザに指定してください。 (ブラウザからの設定だけではきちんと設定出来ない場合もあります) = FAQ: セル内での改行 = Q:セル内で改行したいんですがどうすればいいでしょうか A:改行したい位置でAltを押しながらEnterを押せばセル内改行できます。
= FAQ:時刻の入力 = Q:時刻をテンキーで入力するとき:を入力するのが面倒なのですが、 なにか良い方法はありませんか? A:「 ..」や「.」を「:」に置き換える方法をお試しください 1) オートコレクトで..を:に置き換える →自動で置換されるので手間は少ないが..を使う他の入力にも影響する 2) 「時..分」で入力しておいて、後から「編集 > 置換」で範囲指定で一括置換する →置換に一手間掛かるが、他への影響は無い (「時.分」だと分の1桁目が0の場合狂ってしまう) 3) VBAのWorksheet_Changeイベントで置換する →置換する範囲を指定すれば他への影響もなく置換も自動、入力も.ひとつでOK 参考コード(入力は「時.分」) Private Sub Worksheet_Change(ByVal Target As Range) Dim buf As Variant Application.EnableEvents = False buf = Split(Target.Value, ".") Target.Value = buf(0) & ":" & Left(buf(1) & "0", 2) Application.EnableEvents = True End Sub
8 :
age :2005/06/28(火) 01:11:19
= FAQ:シート名やブック名の書きだし = Q:シート名(ブック名)をセルに書き出したいのですが、どうすればよいですか? A:シート名 =MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,31) ブック名 =MID(CELL("filename",A1),FIND("[",CELL("filename",A1))+1,FIND("]",CELL("filename",A1))-FIND("[",CELL("filename",A1))-1)
9 :
age :2005/06/28(火) 01:11:43
早漏で前スレのテンプレ追加案も拾えない
>>1 の為にテンプレ補完
ついでに
★質問テンプレは必須ではありませんが、環境や条件などの情報は必須です。
情報をきちんと書ける人はテンプレを使う必要はありませんが、
きちんと書けない人はテンプレを埋めましょう。
13 :
名無しさん@そうだ選挙にいこう :2005/06/28(火) 05:35:20
>>1 よ、
>>2 以降のテンプレは前スレのをコピペすればいいものだと思ってないか?
そういう浅はかな奴は、こういう歴代スレのスレ立てなんてするな。
14 :
名無しさん@そうだ選挙にいこう :2005/06/28(火) 06:03:15
なにこのオナニー全開のFAQwwww
15 :
名無しさん@そうだ選挙にいこう :2005/06/28(火) 06:19:14
>>1 ってきっと会社でも「オレオレが」と先走り汁ダラダラでウザがられてるんだろうな。
んで上司からも「あいつはやる気があるのはいいが、抜けばかりで正直使えない」なんて烙印押されてると。
>>9 誰も賛成してないだろうが。
自分の意見が通らないとキレるゆとり教育世代か?
19 :
名無しさん@そうだ選挙にいこう :2005/06/28(火) 07:41:50
>>15 >きっと会社でも「オレオレが」と先走り汁ダラダラでウザがられてるんだろうな。
ウマイこと言うなーww
ウチはそんなんばっかだから、これ採用!
【1 OSの種類とExcelのバージョン】2000/2000 【2 Googleやヘルプでの検索キーワード】Excel リンク 【3 VBAが使えるか / VBAでの回答の可否】簡単なものなら/可 お世話になります。 01.xls A1 10 02.xls A1 '[01.xls]'!A1 03.xls A1 '[02.xls]'!A1 04.xls A1 '[03.xls]'!A1 05.xls A1 '[04.xls]'!A1 という風にどんどん作っていきまして、05.xlsを開く時にリンクの更新をするかと 聞かれると思いますが、この場合01.xlsから全てを見に行っての更新になってしま うのでしょうか?もしそうだとしたら、純粋に04.xlsだけを見るようにはできます でしょうか?
回答じゃなくて申し訳ないんですが、 01.xlsのsheet(1)のA1に「10」と入っていて、 02〜05.xlsは全て一つ前の数字のブックの sheet(1)のA1を参照してるってことですか? そうだとしたら、全てのブックの参照先は 01.xlsのA1なんだから、どのブックも01.xlsを 参照するようにすればいいのではないのですか? 04.xlsを指定する事の意味合いが無いように思えて・・・。 状況によって更新しないとかですか?
23 :
名無しさん@そうだ選挙にいこう :2005/06/29(水) 10:10:01
【1 OSの種類とExcelのバージョン】office2000 【2 Googleやヘルプでの検索キーワード】Excel 計算 シート 【3 VBAが使えるか / VBAでの回答の可否】不可 初歩的な質問なんですが、 例えば sheet1のA1〜A10までのセルの合計金額と sheet2のA11〜A20までのセルの合計金額の合計をsheet2のA21のセルに表示させたい場合 どういった数式を入力すればいいのでしょうか? ※それぞれのシートの合計金額は表示させないで、一発で両シートの合計を表示させたい。 よろしくお願いします。
>>23 =SUM(Sheet1!A1:A10)+SUM(Sheet2!A11:A20)
ちなみに、その条件なら "Sheet2!" は省略してもおk
テンプレはウザイから書くなよ。 書きたければ文中にそれとなく書けば良い。 だいたいバージョンが関係あることは滅多にない。 あってもエクセルlのバージョンくらいだ。
エクセルのバージョンはけっこう関係するがな。 細かいところではけっこう違いもあるし。
特に(3)のVBAでの回答の可否はテンプレがあった方が回答者にとって有用だと思う。
質問者にとって無用な回答しても仕方がない。
(1)のExcelのバージョンについては
>>26 に同意。
(2)は必要、かな…? あんまり前スレで役に立ってたとは思えないんだが。
それより
>★回答者はマタ〜リで。答えたくなければスルーで処理。
ここをもっとはっきりした表現にした方がよいと思う。
回答者の中にヤヴァいのが時々いたりするからな。
しかしナップザック問題がFAQかい? あまりそんな質問見たことないのだが。 自分のサイトの宣伝で書いてるんじゃないのかい?
自治気取りとテンプレ強要しなけりゃ便利な人なんだからいいんじゃね? 目くじら立てなくても、便利なマクロっつーかパシリっつーか、それくらに考えときゃいいじゃん。
>>29 自分に 乙 とか言うなよw(否定するだろうけど)
33 :
23 :2005/06/29(水) 13:32:55
>>24 ありがとうございます!
できました!
自分でやってみた時には
=SUM(Sheet1!A1:A10)+(A11:A20)
でやってました。(恥)
ありがとうございました。
34 :
21 :2005/06/29(水) 13:43:06
>>22 遅くなりすいません。
実際はA1に別のセルの数値を足したりして加工してます。
A1+B1みたいな感じで累計値を出してます。
解り難くてすいません。
>>27 > それより
> >★回答者はマタ〜リで。答えたくなければスルーで処理。
> ここをもっとはっきりした表現にした方がよいと思う。
> 回答者の中にヤヴァいのが時々いたりするからな。
質問者にもテンプレを強制しない、回答者にも回答の仕方を強制しない。
情報不備のまま書き込むのも自由だし、それを罵倒するのも自由。
回答者に対するルールを作って守らせたいなら、それ以前に質問者にテンプレ使うかどうかは別として
環境や条件などの情報をきちんと書くというルールを守らせれば、
回答者に対するルールを作るまでもなく、少なくとも情報不備による罵倒はする必要すら無くなる。
大抵罵倒されるのは情報不備の場合だし。
質問者にルール強制したくないなら、回答の仕方も情報不備の質問者に罵声浴びせるのも自由。
議論専用のスレ立てたほうが良くない?
議論するのも自由w
質問時のルール取り払おうとしたり、 回答者にルールおしつけようとしたり、 議論を排除しようとしたりしてるのって 皆質問者側の人間だろ。 自分の糞な質問に対してきれいに回答だけが 返ってくるスレにしたいんだろうけど あまりにも身勝手というか都合主義というか…
>>38 違うよ。漏れは専ら回答者だが、テンプレは不要と何度も書いてる。
仕切り屋が嫌いなんだよ。
「回答者だ」と 言 う だ け は簡単
セルの結合が一発で出来るボタンってあるのでしょうか? ひょっとして自分で作るのかな…
>>38 質問する奴がいないとはじまらないスレだからな
回答側は答えられたら答える、嫌ならスルーすればいいと思う
で、テンプレは質問側にも回答側にも有用な気がする
ただ、質問者に「テンプレがねーぞ、
>>1 嫁、ゴルァ」を言いたいだけの馬鹿が激しくウザい
回答者なら
「Excelのバージョン」と「【3 」が重要なのは否定しないだろう。
VBA使えない超初心者回答者なら「【3 」は関係ないし
最近Excel使い始めた超初心者回答者は、バージョンごとの違いなんて知らないから
「Excelのバージョン」も関係ないかもしれんがw
まあ、俺は情報不要の質問なら情報無しでも答えるけど、
環境などの情報が必要かどうかの判断が出来ない質問者の方が多いから
テンプレとして一括して書いて貰った方がありがたいな。
>>41 表示 > ツールバー > ユーザー設定 > コマンド > 書式
の真ん中あたり
>>9 や
>>13 みたいな頭のおかしな奴が住み着いてからおかしくなってる
>>41 表示→ツールバー→書式設定にあるけど?それとは違う?
>>44 =
>>1 IDでなくてもはっきり解る自演てのも面白いね。
まあ、違うと言うだろうけど。
47 :
名無しさん@そうだ選挙にいこう :2005/06/29(水) 15:35:14
Windows me のエクセルについて質問です。 200,689 と言う数字を 百円単位で切り捨て 200,000 と言うように自動でするにはどうしたらいいですか?
>>47 切り捨てた値を別のセルに自動で表示するならROUNDDOWN関数、
入力したセルの値を切り捨てたものに置き換えたいならVBA
こういうの、ちゃんと何がしたいのか書いて、後者ならテンプレの3番も書いてくれないと困るんだよね。
49 :
47 :2005/06/29(水) 15:48:27
現在A3に 200,689(=A1+A2)と言う計算式が入っています。 って数字が入ってるのですが 百円単位で切り捨てで 200,000 と表示させたいのです。 (同じセル内で)
>>49 最初からそう書けよ
つ =ROUNDDOWN(A1+A2,-3)
51 :
47 :2005/06/29(水) 16:00:21
>> できました! ありがとうございました。
52 :
名無しさん@そうだ選挙にいこう :2005/06/29(水) 16:27:43
ちょっと教えてください。 行の高さは0.25きざみでしか設定できないんですか? 例えば、13.10とかにする事は可能なんでしょうか? excel2003を使用しています。
53 :
名無しさん@そうだ選挙にいこう :2005/06/29(水) 16:34:06
ここの住人は、暑さで湧いて出たウジ虫しかいねーな 脳みそはゾーリ虫なみ ま、リストラされて淘汰されて死んじゃってくれw
>>52 0.25刻みです。
それ以外は指定しても丸められますから。
55 :
名無しさん@そうだ選挙にいこう :2005/06/29(水) 16:59:23
>>53 はテンプレ必須の文字が
>>1 になくなって活躍の場を失ったVBA厨
58 :
名無しさん@そうだ選挙にいこう :2005/06/29(水) 17:48:56
--------------------------------------- 【1 WinsowsXP SP2 / Excel2003】 【2 2つおき 合計】 【3 VBAは使えません】 --------------------------------------- 2つおきのセルの値のタテ計を求めたいと思っています。 A 4 年度 (例)H17 5 金額 (例)100,000 6 累計金額 (例)250,000 これを1セットとして、200セット縦に並んでいます(603行目まで)。 この状態で、「金額」の欄だけを合計したいと思っています。 Googleで調べて以下のような式を入れたのですが、 算出された合計値が手作業での合計値と微妙にずれてしまいました。 入れた式 =SUM(IF(MOD(ROW(A3:A603),3),0,A3:A603)) ※A4(年度の行)から範囲選択すると、A6(累計)が合計されたので、 その1行上のA3から範囲選択をしました。 件数が件数なので手作業で全てやるわけにもいかず、件数が増えた際にも対応できるよう 数式で計算させたいと思いますので、よい方法を教えてください。
>>58 それ、配列式だと思うんだけど
ちゃんとCtrl+Shift+Enterで確定しましたか?
60 :
58 :2005/06/29(水) 18:12:28
>>59 それはしました。
また、金額は全て百の位を四捨五入した値(○千円)なのに、
この式で計算させると302とか107のような百円以下の位が表示されます。
>>60 配列式の結果が予想取通りにならないときは
配列の状態を書き出してみるといいよ。
とりあえずB3:B603を選択して
=IF(MOD(ROW(A3:A603),3),0,A3:A603)
を入れてCtrl+Shift+Enterで確定してみな。
>>58 の式はこれで書き出された数値を合計したものだから。
それとA3:A603じゃなくてA4:A603じゃないかな?
A3に何か関係ない数値が入ってれば当然狂ってくるけど。
62 :
名無しさん@そうだ選挙にいこう :2005/06/29(水) 19:02:10
>>58 =SUMIF(A:A,"金額",B:B)
でいいんじゃないの?
>>62 A列に"金額"なんてセルは無いでしょ
式の内容をよく見てみな。式を見れば
A B
4 年度 H17
5 金額 100,000
6 累計金額 250,000
ではなく
A
4 H17
5 100,000
6 250,000
であることが解る
"金額"などのラベルを入れれば解決する問題だけど
最初から配列数式使うあたりからして、余計なセルは使いたくないんでしょ
64 :
58 :2005/06/29(水) 19:16:18
なんとか自己解決しました。
hoge ◆hoge//WRxY さん、ありがとうございました。
検索して出てきた数式を、関数の意味も分からず使っていたのですが、
>>61 を見て配列の状態を書き出しながらチェックしてみて
関数の意味を理解したところで、入力している行をずらしてみたら出来ました。
この式だと、行番号が3で割り切れるところに目的の数字を入れなければならなかったのですね。
色々とヒントとなるアドバイスをいただき、ありがとうございました。
>>62 各行に「金額」などの項目名は入力していませんでした。
一番上の3行に上記の項目名3つを入れ、その下に数字だけを並べていったのです。
SUMIFは使ったことがなかった関数なので、頭に入れておこうと思います。
ありがとうございました。
セルの色情報を参照することはできるのでしょうか? 一列(A)に並んだ数値で一部のセルには色がついています。 その色のついたセルの数値だけを隣のセル(B)にコピーしたいのです。
67 :
名無しさん@そうだ選挙にいこう :2005/06/29(水) 22:38:33
ctrl + ; を押すと日付が挿入されるのだけど この書式を yyyy/mm/dd に変更する方法をご教授していただけないでしょうか?
68 :
名無しさん@そうだ選挙にいこう :2005/06/29(水) 22:51:59
excel2000です。配列数式を勉強中です。=A1*B1+A2*B2+A3*B3を計算したく A B 1 4 2 5 3 6 {=SUM(A1:A3*B1:B3)} って =A1*B1+A2*B2+A3*B3 と同義じゃないですか? なぜか #valueになるんですがどっか計算式違いますか?
69 :
名無しさん@そうだ選挙にいこう :2005/06/29(水) 22:55:10
>>67 セル上で右クリック
セルの書式設定
分類を「ユーザー定義」
yyyy/m/d のところを 上のところで直接入力「yyyy/mm/dd」する。
これでどう?
70 :
68 :2005/06/29(水) 22:56:21
>>68 小さいと出来ました。
もしかして行列が大きいと配列って使えません?
71 :
68 :2005/06/29(水) 22:58:05
解決しましたありがとうございました。
72 :
名無しさん@そうだ選挙にいこう :2005/06/29(水) 23:01:34
すいません、次は質問させてください。 【1 OSの種類とExcelのバージョン】→OS windows のどれかです。 Excel2000 【2 Googleやヘルプでの検索キーワード】 ? 【3 VBAが使えるか / VBAでの回答の可否】 言葉の意味すらわかりません。 質問お願いします。 ふたつの大量データがあって(仮に1と2とします) このデータには会員番号と名前が5000人ずつ縦に入っています。 (A縦に会員番号、B縦に対応する会員の名前です) それで2つのデータは1が昨年末時点で会員だった人、 2が今日現在の会員さんです。 この2つのデータを合わせて退会した人をピックアップしたいのですが、 エクセルでできるのでしょうか? キーワードを教えていただければ自分でヘルプ等みてみますので ご存知の方おしえてくださいませんか? よろしくお願いします。
73 :
名無しさん@そうだ選挙にいこう :2005/06/29(水) 23:06:25
>>69 ありがとうございます。
できれば、ctrl+;を押したときに
前もって設定した書式(この場合ではyyyy/mm/dd)
になる方法ってないんでしょうか?
>>71 どのように解決したのかを教えてもらえませんか?
75 :
68 :2005/06/29(水) 23:10:40
>>74 >>68 の式であってました。
なぜvalueがでたかっていうと途中で数値が入ってないところがありました。
76 :
68 :2005/06/29(水) 23:16:15
>>73 CTL+1で最初から設定しておけばなるやん。
>>72 なんかよくわからない
A縦ってのはA列のことですか?
A | B
1| 0001 会員の名前
2| 0002 会員の名前
3| 0003 会員の名前
だとして、1と2ってのはどこに入ってるんですか?
とりあえずIFとオートフィルタで出来そうだけど、
どういう表なのか把握出来ないので、これで出来るとは言い切れない。
>>73 標準機能の書式を変更する方法は分からないけど、(出来ないような気がする)
マクロを使ってctrl+;で
「アクティブセルに今日の日付をyyyy/mm/dd形式で入力する」
方法なら教えられる。マクロがイヤなら他の回答者を待ってください。
78 :
72 :2005/06/29(水) 23:35:39
>>73 ありがとうございます。
おっしゃる通りA列とB列にそのように入力されています。
データ1と2は別々のエクセルのシートに入っております。
エクセルシートに1月分、2月分などと毎月入っているのです。
それの2つの月のデータを比べて辞めた人を発見する方法をしりたいのです。
よろしくお願いします。
79 :
名無しさん@そうだ選挙にいこう :2005/06/29(水) 23:48:42
エクセルで書き込みを出来なくするには、どのファイルを削除すればいいのですか?
80 :
72 :2005/06/29(水) 23:50:32
>>78 「別々のエクセルのシートに入っております」と言われても、
別々のエクセルのシートの何処にどのように入ってるのかわからないと
アドバイスのしようが無いのですが。
データの状態を文で説明出来ないなら、会員名などを伏せたそのブックをアップするか、
アップが無理ならそれぞれのシートの状態を
>>77 のような図で表してみてください。
>>79 削除?
セルをロックしてシートを保護するだけで、書き込み書き換えは出来なくなりますけど。
82 :
72 :2005/06/30(木) 00:09:19
>>81 すいません。
今までのことは全て忘れて下さい。
やりたい事は、シートが2枚あって、それぞれのシートは
A列会員番号、B列氏名が並んでいます。
>>77 の図のようにならんでいます。
その2つのシートの一致している行のみを他のシートに抽出したいのです。
精一杯頑張って書きました。
>>81 さん、よろしくお願いします。
>>82 書き出すシートのA1:B1を選択して
=IF(Sheet1!A5&Sheet1!B5=Sheet2!A5&Sheet2!B5,Sheet1!A5:B5,"")
を入力しCtrl+Shift+Enter、必要な行までオートフィルでコピー
シート名は環境に合わせて書き換えてね。
これでSheet1とSheet2でA:B列が一致する行はその内容、
一致しない行は空欄になる。
空欄を詰めたければ「コピー → 値の張り付け → ソート」で。
但し「2つのシートの一致している行のみ」という表現だと
Sheet1 Sheet2
A | B A | B
1| 0001 aaa 1| 0001 aaa
2| 0002 bbb 2| 0003 ccc
3| 0003 ccc .. 3| 0004 ddd
4| 0004 ddd 4| 0005 eee
5| 0005 eee .. 5| 0006 fff
こういう表の場合、一致は「0001 aaa」のみになるけど。
行単位の一致ではなく、「両方に含まれてるもの」となると話は変わってくる。
84 :
72 :2005/06/30(木) 01:07:36
>>83 さん
ありがとうございました!
私は「両方に含まれる物」がしりたかったのですが、
>>83 さんのヒントでできました。
本当にありがとうございます。
質問でつ。 スクロールしてもタイトル部分(例えば1行目のみ)はそのまま表示させておく方法を教えてください。 A B C 1 1 1 2 2 2 ・ ・ ・ ・ ・ ・ をスクロールしても A B C 5 5 5 6 6 6 ・ ・ ・ ・ ・ ・ と、ABCのタイトル部分は常に表示されている奴です。よろしくお願いします。
1の行をクリックしてウィンドウ→ウィンドウ枠の固定をクリック
87 :
27 :2005/06/30(木) 12:44:28
申し訳ありません、もともとエクセル自体の、数字や文字を入力できなくするにはどのファイルを、 削除すればいいのですか? パソコンを、みんなで共有してるのですが、エクセルは存在させといて、入力はできないようにしたいのですが? 誰か教えてください。
>>87 Excelで入力出来なくするにはExcel自体を消すしかないよ。
入力機能はプラグインとかで行ってるんじゃなくて
Excelそのものに組み込まれている機能だから。
まあ、閲覧だけのExcelViewerってのもあるけど、
シートの閲覧は出来るが、マクロを含む一部の機能は動作しなかったりする。
Excelの入力以外の全機能を使いたいなら全てのシートを保護するしかない。
シートの閲覧だけでいいならExcelViewer使えばいい。
90 :
663 :2005/06/30(木) 13:05:43
>>87 コテハンの数字、間違えてませんか?
>>27 さんはおそらくVBAもある程度理解してる人でしょうから、
質問ももう少しわかりやすくされると思いますので。
あなたは
>>79 さんではないのですか?
でしたら
>>81 さんが回答されてると思いますが、
それではだめなのでしょうか?
ご要望と若干違うかもしれませんが、
保存したブックのファイル自体を右クリックして、
「プロパティ」→「読み取り専用」にチェックを
入れるのもひとつの方法かと。
この場合、入力は出来てしまいますが、保存が出
来ない為、再度開けば元の形は保てます。
>どのファイルを、削除すればいいのですか?
↑これはどこで得られた知識ですか?
「あるファイルを削除すれば入力不可となる」という
のは初めて聞きましたので、後学のために逆に教
えてください。煽りでもなんでもなく。
91 :
90 :2005/06/30(木) 13:10:04
あ、自分自身が固定を消してなかったorz 前スレで質問した時の数字が残ってましたorzorz
93 :
名無しさん@そうだ選挙にいこう :2005/06/30(木) 16:48:49
フォームを作成するために参考となる本を探しています 「Excel フォーム」で検索しても実用フォーム集など出来合いのものしか見つかりません おすすめの本やサイトはありませんか?
>>93 フォームって何?
ユーザーフォームのこと?
データフォームのこと?
入力フォームのこと?
ユーザーフォームならVB6勉強するのが一番早いよ。
つーかユーザーフォームに参考も糞も無いだろ。
プロパティの概要とVB構文がわかってるなら、あとはプログラム以前の
人としての発想力が有るか無いかだ。
これが無い奴はどんな本読んだって用例の組み合わせのようなものしか作れないし
発想が豊かなら参考にする物なんて無くても自分でなんでも作れる。
プロパティの概要なんて必要なときに調べればいくらでも出てくるし。
95 :
名無しさん@そうだ選挙にいこう :2005/06/30(木) 17:43:15
【1 OSの種類とExcelのバージョン】XP / 2002 【2 Googleやヘルプでの検索キーワード】 種類数 カウント 【3 VBAが使えるか / VBAでの回答の可否】 はい / 否 前スレでも出ていた、ある範囲にあるデータの種類を数える方法なのですが、 前スレで作業セルを使う方法は出ていたのですが、作業セルやユーザー定義関数を使わずに 結果を出す方法は無いのでしょうか? ご存じでしたらたとえばA1からA100までの範囲に対する式をお教え願います。
>>95 {=SUM((COUNTIF(OFFSET($A$1,0,0,ROW(A1:A100),1),A1:A100)=1)*1)}
でどうでしょうか?
配列数式もダメと言われたら、私はお手上げですが。
それとこの式では範囲内に0という数値が1つだけある場合は結果が狂ってきます。
対応させることは出来ますが、問題なければこのままお使いください。
なんか前スレ1000逝く前にこっちが100逝きそうなふいんき。 前代未聞だよこりゃ。
今回のスレ立てはかなり早漏だったからねぇ 挿入前どころかまだ服も脱いでないってうちに暴発みたいな 1は普段から先走り汁ダラダラなんじゃなくて 普段から精液ドピュドピュでパンツはガビガビなんじゃねーのかな? 早漏で不備のあるスレ立てに対する批判も多かったし 質問者の心境としても前スレよりは新スレで質問したいだろうから こっちに流れてくるし 責任もって1に前スレ埋めて貰おうぜ
>>97 =98=テンプレ厨?
ウダウダ言う前にお前が質問者を前スレに誘導するくらいのことは汁
無理に埋める必要無いのでは? 向こうはこちらに誘導して、レス付けなきゃいい。 運営側によると無理な埋め立ては荒らしと同じらしいから。 昔は「スレを使い切る」と言う事は考えず、新スレ立ったら普通に移行した気が。 俺今携帯だから、誰か誘導レスたのんます。
101 :
名無しさん@そうだ選挙にいこう :2005/06/30(木) 21:57:06
>>92 の貼ってる過去ログ見ると、たしかに1000逝かずに
終了してるスレもあるな。
ってことは前代未聞じゃないぞ?www
>>97 まあそれは冗談として、向こうに誘導レス貼ってくる。
って、既に貼ってる人がいたのね・・・orz
>>1 よ、自分に対してフォロー入れるのって
やってて虚しくないか?
何でもかんでも自演と思い込む精神病患者がいるスレはここですか?
どうやら違うようです
106 :
95 :2005/06/30(木) 23:23:59
>>96 ばっちりでした。
自分でも配列数式いろいろ組んでみたのですが、
なかなかうまくいかずでして。
どうもありがとうぞざいました。
107 :
名無しさん@そうだ選挙にいこう :2005/06/30(木) 23:40:58
ListBoxの項目(文字)に色をつけるにはどうしたらよいですか?出来るのですか?
>>107 ForeColorプロパティで文字色の設定は可能ですが、
ListBoxコントロールには任意の項目のみ色を変えるプロパティは確か用意されていません。
全ての項目に色を付けるなら
ListBox1.ForeColor = vbRed
という感じで文字色が赤になると思います。
ブックを開かないでセルのデータを読み込みたくて ExecuteExcel4Macro("'c:\[Book1.xls]Sheet1'!R1C1") で値取得までは出来たのですが、ブランクの場合0が返ってきてしまいます。 値0とブランクを区別したいのですが、何か方法はありますか?
空欄で0を返すのが仕様 区別出来ないのが仕様 だったはず
この板は落ちにくいから、前スレ適当に保守していけば 前スレより先にこっちが1000逝くかもな
113 :
名無しさん@そうだ選挙にいこう :2005/07/01(金) 08:07:51
1083ありがとうございました!昨日ずっと悩んでいたので、助かりました!ちなみに日曜〜土曜まで何かのコントロールで表示させて日曜と土曜を赤と青にしたいのですが、何か良い方法はないでしょうか?お願いします。
>>113 の心の声
(俺のために働けよ、愚民供)
519 名前:デフォルトの名無しさん[] 投稿日:2005/07/01(金) 08:19:31
5113ありがとうございました!項目ごとにはダメなんですね。ちなみに日曜〜土曜を何かのコントロールで表示させて日曜と土曜を赤と青にしたいのですが、何か良い方法はないでしょうか?よろしくお願いします!
115 :
名無しさん@そうだ選挙にいこう :2005/07/01(金) 10:13:40
客先から、CSV形式でファイルが送られてきたのですが、 ブック内を見るとシートが複数存在していました。 CSV形式って、複数のシートを書き出しできないはずなのですが、 プログラミングしないで、ブック内に複数のシートを作成することは可能ですか?
>>112 基地GUYはスルーしとけ。
一人で粘着する以外生き甲斐の無い哀れな生き物に釣られても時間の浪費だよ。
自分にフォロー入れてて虚しくないか? (否定するだろうけど)
119 :
117 :2005/07/01(金) 11:17:47
すまん。言ってる俺自身が基地の相手してる罠。 いっそのことコテ名乗ってくれたらNG登録出来るんだが。
脳内あぼーん出来ない子は大変だね
121 :
名無しさん@そうだ選挙にいこう :2005/07/01(金) 11:25:24
>>115 一般ユーザーがエクセルの標準機能(名前を付けて保存→CSV形式)で
やろうとしても絶対ムリポ。
122 :
名無しさん@そうだ選挙にいこう :2005/07/01(金) 11:57:36
Excel2003の使い方を教えてください。 1、グラフの表示開始位置をセルで指定した位置からに変える方法はないでしょうか? 例えば現在A1からA10のデータを折れ線グラフで表示していたとしてB1に1と書かれていた時には A1からA10のデータをグラフ表示し、B1に5と書かれていた時にはA5からA10を表示するなどです。 2、行数を取得するにはどうすればいいのでしょうか? 例えば現在の行数*2と言うのはどのように取得できますか?
どちらもマクロ使えば良いだけでしょ。 マクロの記録して必要なところ書き換えな。
124 :
名無しさん@そうだ選挙にいこう :2005/07/01(金) 14:14:45
ファイルをタイマで定期的にリロードすることはできますか?
VBA使えば出来るだろうけど、 何をどうリロードしたいのか、いったい何がしたいのかが解らないと それ以上は何も言えないな。
126 :
名無しさん@そうだ選挙にいこう :2005/07/01(金) 19:28:44
Excel2003です。 ExcelのショーッとカットでCtrl+Dですぐ上の欄をコピーするじゃないですか? でもそれだと、すぐ上に非表示の欄がある場合は非表示の欄の内容をコピーして きていしますよね。 非表示の欄は無視して、視覚上すぐ上にある欄をコピーすることってできないでしょうか? 宜しくお願いします。
127 :
126 :2005/07/01(金) 19:29:15
誤字が多くてすみません・・・
>>126 マクロを使うしかないかなあ。それをショートカットキーに登録するかんじ?
マクロはこんな。個人用マクロブックに登録しておけば汎用的に使えるよ。
Sub custumCtrlD()
Dim targetCell As Range
Set targetCell = ActiveCell.Offset(-1)
Do
Set targetCell = targetCell.Offset(-1)
Loop While targetCell.Rows.Hidden
ActiveCell.Value = targetCell.Value
End Sub
毎回Rangeオブジェクトをセットして条件判断するより たぶんこっちの方が早い Dim i As Long i = ActiveCell.Row Do i = i - 1 Loop While Rows(i).Hidden ActiveCell.Value = Cells(i, ActiveCell.Column).Value まあ、2つ3つ上を参照する程度ならあまり差は無いけど。
130 :
名無しさん@そうだ選挙にいこう :2005/07/01(金) 21:10:27
Microsoft Office Excel 2003で、 列幅の最適化に影響されることなく見出しをつけることができると思うのですが、 どうすればいいか教えてください。
テンプレは必須じゃないけど 日本語での質問は必須
132 :
名無しさん@そうだ選挙にいこう :2005/07/01(金) 21:33:18
端的に言うと、見出しの付け方を教えてもらいたいんです。 普通に入力するだけでは、列幅最適化後、一列目の見出しを入力した列の幅が見出しのために広くなってしまうのを回避したいのです。
133 :
126 :2005/07/01(金) 21:38:29
>>128 ,129
うぁー、なんて親切な方!どうもありがとうございました(感涙)!!
EXEL2003での質問です。 あるシートのセルF1に”0001”って入力した後、 ”出力済”コマンドボタンクリックしたら(設置済み) DBシートのA列の”0001”を検索して、同シートのX列に”○” って入力するようにしたいのですが、どのようにすればいいですか? なにぶん調べる時間がなく困っています、よろしくお願いいたします。
135 :
名無しさん@そうだ選挙にいこう :2005/07/02(土) 00:22:45
138 :
名無しさん@そうだ選挙にいこう :2005/07/02(土) 02:24:56
すみません。これをエクセルでするにはどうすればよいのでしょうか? エクセルの散文図からデータを読み出したいのです。 データをエクセルで散文図にします。 たとえば、 電流[A] 1, 2, 3, 4, 5, 6, 7, ・・・ 電圧[V] 2, 3, 4, 5, 6, 7, 8, ・・・ というデータをエクセルの散文図で打ち込んで、 その図から、上のデータ点には無い値を読み出したいのです。 たとえば、上の例で言うと、電流値が4.5A のときの 電圧値を読み出したいのです。 これはどうすればよいのでしょうか?
139 :
138 :2005/07/02(土) 02:29:54
マイクロソフト エクセル というやつを使ってます。
140 :
名無しさん@そうだ選挙にいこう :2005/07/02(土) 03:06:36
excel2000です。配列数式を勉強中です。 =A1*B1+A2*B2+A3*B3を計算するのに A B 1 4 2 5 3 6 今、SUMPRODUCTなる関数を見つけました。 {=SUM(A1:A3*B1:B3)} →32 と =SUMPRODUCT(A1:A3,B1:B3) →32 これってどう違うんですか?結果は同じになるみたいなんですが。 「こーいうときにはこっちを使うんだよ」みたいなのってあるんですか?
すみません、質問させてください、。 多分マクロを組んだらできると思うのですが 3つのワークシートにA・B・C社との取引結果を月ごとにまとめて入れておく。 (1月収入○○円、支出△△円〜12月収入○○円、支出△△円 のように。) このとき、別のワークシートに プルダウンボックスを2つ作り(A・B・C社を選択できるものと 収入・収支を選択できるもの) 選んだもののグラフが描画されるようにはできないでしょうか? (「A社」 の 「収入」と選ぶと月ごとの折れ線が出したい) わかる人いらっしゃいましたら、ヒントだけでもお願いいたします。
142 :
名無しさん@そうだ選挙にいこう :2005/07/02(土) 06:07:39
>>138 (散文じゃなくて散布ね。)
このデータだと直線になるようだけど、
実験データだとしたら、直線になるかどんな式になるかはわからないのが普通。
(分かっているなら実験をする意味がない)
一般的なやり方は、
1.グラフを書いて、その形状や他の条件から、どのような式になるか予想。(この例なら一次式だろう)
2.誤差を含むデータがその式に合うと仮定して、係数を求める。(LINEST, TREND関数など)
3.その式と係数を用いて、近似曲線を書き、その妥当性を検討。
4.大丈夫そうなら、その式を使ってデータがないところの値を計算。
ということになるが、
Excelではグラフメニューで近似曲線の挿入を選んだら、とにかく何かグラフを書いてくれ、
係数も表示される。それを使えば楽。
だが一応、上記の予想や検討が一番重要な部分であることを忘れずに。
143 :
名無しさん@そうだ選挙にいこう :2005/07/02(土) 06:20:06
>>140 俺の感じからすると、
数学(線形代数)的に意味のある行列の計算: SUMPRODUCTなど
Excel的に配列全体に何かの計算をする: 配列数式
ってところかな。
配列数式なら配列に対して何でもできるわけだけど、
(このスレでも色んな意見があるようだけど、)
その計算の意味とか、そもそも何でそんなデータ形式があんのかとか
自分で全部責任持たないといけない。
時刻表でJRの駅間距離を調べて、 乗車駅と降車駅を入力すると二駅間の距離及び運賃が表示されるように作成せよ エクセルでこれをやれと言われているのですがどう取り掛かったらいいものか、、、 1〜10まで何て勿論言いません、ヒントだけでも頂けないでしょうか
【1 OSの種類とExcelのバージョン】 XP sp2 / Excel 2003 【2 Googleやヘルプでの検索キーワード】 ユーザー定義 下2桁 【3 VBAが使えるか / VBAでの回答の可否】 VBAなしでお願いします。 --------------------------------------- セルに入力した数値の下2桁のみ表示するという、 セルの表示形式でのユーザー定義は書けますでしょうか。 例) 「12345」と入力すると 「45」と表示される よろしくお願いします。
>>144 さっぱりわからんが
VLOOKUP等
入力規則、リスト
ABS,-
くらいか?
147 :
名無しさん@そうだ選挙にいこう :2005/07/02(土) 10:48:56
>>144 1.任意の駅間距離の計算式を考える。
2.その計算式を満たすには、どのようなデータベースの表にすればよいか考える。
3.運賃は条件が提示されていると思うので、駅間距離計算の応用で出来るでしょう。
ヒント:VLOOKUP関数
148 :
144 :2005/07/02(土) 10:57:59
回答ありがとうございます。 暫く頑張ってみます
>>141 ヒント:前スレを読む
>>145 仕様上無理。
その例の場合だけなら「[=12345]45」とかもできるけど
「下2桁だけ表示」みたいに表示形式で整数部の一部を削ることは出来ないから。
(123だけ表示なら表示形式で誤魔化す方法もあるけど)
表示が下2桁になればいいのか、元の数値を保持したまま下2桁のみ表示したいのかわからんけど
マクロでも使ってくださいまし。
150 :
名無しさん@そうだ選挙にいこう :2005/07/02(土) 11:50:49
>>125 RT音声処理のインタフェースをExcelにしろって言われたんです。
音声処理を別プロセスで走らせ、結果を随時シートに出力すれば
いいのではと考えたんですが。
(タスク間通信で解決できるならそれにこしたことはありませんが)
151 :
145 :2005/07/02(土) 11:56:37
>>149 元の数値を保持したまま下2桁のみ表示したかったのです。
お返事ありがとうございました。
>>140 > これってどう違うんですか?
同じだよ。
「{=SUM(範囲*範囲)}」というような配列数式は多用されるから
SUMPRODUCTという関数が作られただけの話。
「=A1+A2+A3+A4+A5」という連続したセルの合計にSUM関数が使われるのと同じ。
君が挙げた例の通りならどちらを使っても構わないが、
条件が変わってくると配列数式でしか対応出来ない場合がある。
まあ、SUMPRODUCTが使えるところはSUMPRODUCTを使うのが基本かな。
153 :
名無しさん@そうだ選挙にいこう :2005/07/02(土) 13:25:46
【1 OSの種類 / Excelのバージョン】 winXP/Excel2003 【2 Googleやヘルプでの検索キーワード】 離れたセル 連続したデータ 【3 VBAが使えるか】いいえ 離れたセルに連続したデータを簡単に入力する 方法があれば教えてください。 隣接したセルにオートフィルで連続した データを入力するのはわかります。
>>153 A
1 10
2
3 20
4
これでA1A4の範囲を選択してオートフィル使えば
1セル置きに10づつ増えた数を入力できるけど。
こういうオートフィルが認識できる規則性が無いなら手入力かマクロだね。
155 :
153 :2005/07/02(土) 14:03:28
>>154 残念ながらセルの間隔は不規則
(勤務表に、交代でとる休日を記入し、連番を振る)
です。
間隔すら不規則なら手入力しかないでしょ。 何らかの規則性がないとマクロでも処理できないよ。
157 :
名無しさん@そうだ選挙にいこう :2005/07/02(土) 14:09:22
質問です。 No.100 りんご No.110 みかん No.120 もも No.130 ぶどう No.150 なし という表があるのですが、 ユーザーフォームのテキストボックス1に適当なNoを入れて、 テキストボックス2に適当な品名を入れて、コマンドボタンを押すと、 表に挿入されるようにしたいのです。 (例えばテキストボックス1にNo140を入れて、テキストボックス2にすいかを入れると、 No130とNo150の間にNo140 すいか となるようにしたいということです。) どんなコードを入れるといいのでしょうか?
>>157 まず「No.100」を
値:100 表示形式*"No."0
にする。
あとはForステートメント内で入力数値より大きい数値を探し、
その位置に行を挿入、その行にNo.と品名を入力してexit sub
で、Forステートメントを抜けたところでも同じくNo.と品名の入力を行う。
これで入力したNo.が既存の表のなかで一番大きい場合は表の一番下に項目を追加、
そうでない場合は行を挿入して項目を追加になる。
または毎回一番下に追加してからNo.の列で昇順ソートさせてもいいかな。
どちらでもお好きな方を。(面倒だからコード書けとか言わないでね。)
159 :
157 :2005/07/02(土) 15:13:05
>>158 自分でコード書けるスキルがないもので(==;)
なかなかイメージが沸かないです(ノ_<。)
マクロ書けないならマクロ使おうとするな。 車という便利なものに載りたければ 免許を取って車を買うなり、 タクシーやバスを利用するなり お抱え運転手雇うなりしなくちゃならない。 手間掛けるのも金出すのもイヤなら車には乗れない。 マクロという便利な物を使いたければ VBAを勉強するなり、 そういうのを請け負ってくれるところに有償で頼むなりすればいい。 勉強に手間掛けるのも金出すのもイヤなら手入力してろ。 ここはマクロ請負所ではなくExcel相談所。 解らない部分がある時に助けを求める場所であり、 他人任せに何かを依頼する場所ではない。
> ヒナ鳥みたいに口を開けてたらエサを持ってきてくれるスレじゃねーぞ。
162 :
157 :2005/07/02(土) 16:22:43
>>158 コードの一部でいいのでもう少しヒントをお願いしますm(*__*)m
>>162 >>158 の解説通りに書くとこんなかんじかな
Private Sub CommandButton1_Click()
Dim i As Long
With Worksheets("表のあるシート")
For i = 1 To .Cells(65536, 1).End(xlUp).Row
If CLng(.Cells(i, 1).Value) > TextBox1.Value Then
.Rows(i).Insert
.Cells(i, 1).Value = TextBox1.Value
.Cells(i, 2).Value = TextBox2.Value
Exit Sub
End If
Next i
.Cells(i, 1).NumberFormat = """No.""0"
.Cells(i, 1).Value = TextBox1.Value
.Cells(i, 2).Value = TextBox2.Value
End With
End Sub
ユーザーフォームでの入力も「No.140」ではなく「140」で。
でも少しは自分で勉強した方がいいよ。
このくらいのコードなら、全く心得が無くても半日も勉強すれば書けるだろうし
多少でも知っていれば悪意のあるコードにも気づく。
2chを含め匿名の場では平然と悪意のあるコード貼る人も居るので
VBAわからない人にはコード書いてやらないってのもある意味正しい処置かもしれない。
164 :
157 :2005/07/02(土) 17:53:58
VBAのような糞言語が使えるというだけで偉そうなヤツがいるなwww
VBA程度も使えないのに偉そうなヤツがいるなwww
目立ちたがり屋の先生たちに、仕事を肩代わりさせるスレでしょ。
170 :
名無しさん@そうだ選挙にいこう :2005/07/02(土) 20:24:52
どう言いつくろったところで 回答してる奴 >>>越えられない壁>>> 回答してない奴 である事実は変えようが無い。
またうぜーコテ出てきたなww
コテだろうが名無しだろうが回答してる奴は神 文句だけ言ってるガキは邪魔
>>172 のスレって、ここを荒らすために立てたんだよね。
まったく、イヤな奴だな。
>>176 そうか?いちいちつまらん事でグダグダと煽りあいしてる
やつらを隔離するにはちょうど役に立つスレに思えるが?
まあ俺は行かない代わりにこのレスで煽りはやめる。
雑談・議論スレ立てただけで素直にそっちに行くような奴は 最初からここでグダグダやらない。 「向こうのスレ逝け」「うるせーヴォケ」というような荒れるネタをひとつ増やしただけ 俺の書き込みもそのスレが立たなければ書き込まれなかったもの。
>>168 仕切りたがりが自分の思い通りにならなくてまともな回答者を揶揄してるだけ
おまいら暇だね
アイツのせい、コイツのせい、俺はなーんも悪くね〜
>>1 ここで回答してる奴らには上級者はいない旨も
明記しておいた方がいいな。
184 :
名無しさん@そうだ選挙にいこう :2005/07/03(日) 10:02:19
>>173 >コテだろうが名無しだろうが回答してる奴は神
典型的なバカだな
なんか可哀相な子が湧いてる
>>185 君は「坊や」に異常反応した、例の子だね!
そうか、坊やは神だったのか。
190 :
名無しさん@そうだ選挙にいこう :2005/07/03(日) 17:39:31
みんな楽しそうだなあ。 参加するにはどうしたらいいの?
191 :
名無しさん@そうだ選挙にいこう :2005/07/03(日) 17:39:42
フリーでExcelに最も近いアプリって、OpenOfficeの表計算くらいしかないですか?
うん
>>192 そうですか。
OpenOfficeはあんまり使いたくないんですが、しかたないですね・・・
194 :
名無しさん@そうだ選挙にいこう :2005/07/03(日) 20:14:27
インターネットはすばらしい
このスレの
>>165 以降俺のレスまでを脳内あぼーん以外に消す方法を教えてください。
あとテンプレ使え
エクセルでマウスのホイールぐりぐりさせると右のスクロールバーが動いて全体が動きますけど これをたとえば1,2,3列を動かさずに4,5,6列から動くように処理するにはどうしたらいいですか? WinXP Office2003です
>>199 4列目を選択。[ウィンドウ]→[ウィンドウ枠の固定]
そろぞす 負け犬の遠吠え専用スレを 作成する。。。。。(ノ>_<)ノヒィッ用紙が
202 :
名無しさん@そうだ選挙にいこう :2005/07/04(月) 02:02:16
ツ
【1 OSの種類とExcelのバージョン】 WinXP 2003 【2 Googleやヘルプでの検索キーワード】 16進数 入力 【3 VBAが使えるか / VBAでの回答の可否】 出来ません できる、Excel2003に書かれていることがほぼできるくらいの技量です。 数値の入力、計算を常に16進数ですることは設定でできるのでしょうか?
204 :
名無しさん@そうだ選挙にいこう :2005/07/04(月) 03:22:46
>>203 ヘルプで出ただろうけど、
入力は専用セルにすることにして、その値をHEX2DECで10進にしてから計算し、
表示するときはまたDEC2HEXする。
それ以上はVBAでやるしかない。
設定で全て16進にすることはできない。
205 :
名無しさん@そうだ選挙にいこう :2005/07/04(月) 05:48:23
【1 OSの種類とExcelのバージョン】 WINXP 2000 【2 Googleやヘルプでの検索キーワード】 標準偏差 分散 エクセル 【3 VBAが使えるか / VBAでの回答の可否】 わかりません 「可処分所得」という全都道府県の数字の標準偏差、分散を求めたいのですが、「VARP」と「VAR」、あるいは「STDEV」、「STDEVP」どちらで計算すればいいのでしょうか? 計算された数字が異なるので・・・
206 :
名無しさん@そうだ選挙にいこう :2005/07/04(月) 06:37:49
>>205 VARPのヘルプ:
引数を母集団全体であると仮定して、母集団の分散を返します。
VARのヘルプ:
引数を母集団の標本であると見なして、母集団に対する分散を返します。
…
ある生産ラインで製造された部品から10 個を無作為に抽出し、
などと書いてあるけど、それで分からない?
母集団、標本、などを知らないのだったらそれをググるなり勉強するなりしないと
結果だけ計算しても意味がないと思う。
207 :
199 :2005/07/04(月) 06:39:17
>200さん ありがとうございました
208 :
名無しさん@そうだ選挙にいこう :2005/07/04(月) 06:47:24
>>206 ありがとうございます。この場合、サンプルですからVARを使えばいいんですね。
検索不足でした。
もう一ついいでしょうか。散布図を書いているのですが、X軸とY軸の交点は必ずゼロから始めないといけないのでしょうか?
そういう散布図の例ばかりを見るので。例えばX軸は100000から、Y軸は2000から書いても何ら問題ないでしょうか。
統計学の分野になってしまうかもしれませんが・・・
209 :
名無しさん@そうだ選挙にいこう :2005/07/04(月) 07:38:41
【1 OSの種類とExcelのバージョン】 windows2000 office2000 【2 Googleやヘルプでの検索キーワード】 変数 エクセル 16以上 【3 VBAが使えるか / VBAでの回答の可否】 不可 与えられたデータをエクセルで回帰分析をしているのですが、「エクセルの回帰分析ツールでは16以上の変数は無理」というメッセージが出ます。 この場合、どのような作業をすれば「16以上の変数」を分析したときと同じ結果を得られるのでしょうか。
210 :
203 :2005/07/04(月) 09:15:13
>204 そうですか、ありがとうございます
211 :
名無しさん@そうだ選挙にいこう :2005/07/04(月) 12:11:47
エクセル2000のシート上のテキストボックスで改行キーを 押したらフォーカスを移動させるやり方がわからないです〜 アスキーコードが取得できないみたいなんですが Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If KeyAscii = 13 Then Sheet1.ComboBox1.SetFocus KeyAscii = 0 End If End Sub
>>211 ヘルプのKeyPressイベントの項目見れば書いてありますが
> KeyPress イベント
> ANSI コードまたはシフト JIS コードに対応する【文字キー】のいずれかを押すと発生します。
なので、こういう場合はKeyDownイベントを使いましょう。
Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
213 :
名無しさん@そうだ選挙にいこう :2005/07/04(月) 13:09:58
>212 すんませんでした
214 :
名無しさん@そうだ選挙にいこう :2005/07/04(月) 13:27:47
【1 OSの種類とExcelのバージョン】 XP Pro 【2 Googleやヘルプでの検索キーワード】 Excel97のVBA Excel2003 ファイル 開 遅い *** EXCEL97のVBAで作成した1MB程度のファイルなのですが、 EXCEL2003だと何故か開くのに5分超かかってしまいます。 同じPC上にEXCEL97をインストールしてみると、サクッと開きます。 回避方法等どなたかお知りになりませんか?
>>214 2003で1度開いて、2003上で保存しなおしても遅いですか?
エクセル上の元データAから集計表Bを一気に作る方法ってありますか? 500件近くのデータがあり、毎月集計表を作る必要があるのですが、前任者は手動でデータを 拾い集めてコピペで集計表を作っていた様です。 良い方法がありましたら助けていただければ幸いです。 環境はWindows2000+EXCEL2000です。 マクロを使ったやり方でも、解決策が書いてあるサイトを教えて下さっても構いません。 「エクセル」「EXCEL」「データベース」「集計」「小計」「項目分け」・・・色々なキーワードを駆使して 検索してみたのですが解決策が見つからなくて・・・
【元データA】 A B C D E |-------------------------------------------- 1|支店 | 氏名 |4月 |5月 |6月 | |-------------------------------------------- 2|東京支店 | 小川 | 180 | 110 | 150 | 3|大阪支店 | 川元 | 200 | 180 | 220 | 4|東京支店 | 木村 | 120 | 100 | 110 | 5|名古屋支店| 小林 | 110 | 120 | 150 | 6|大阪支店 | 佐藤 | 150 | 100 | 120 | 7|東京支店 | 鈴木 | 160 | 150 | 180 | 8|広島支店 | 岡田 | 150 | 120 | 170 | 9|大阪支店 | 遠藤 | 130 | 120 | 150 | 10|名古屋支店| 近藤 | 210 | 180 | 250 | 11|大阪支店 | 山本 | 140 | 120 | 130 | 12|東京支店 | 山田 | 180 | 160 | 220 | |--------------------------------------------
【集計表B】 |-------------------------------------------- |支店 | 氏名 |4月 |5月 |6月 | |-------------------------------------------- |東京支店 | 小川 | 180 | 110 | 150 | | | 木村 | 120 | 100 | 110 | | | 鈴木 | 160 | 150 | 180 | | | 山田 | 180 | 160 | 220 | |-------------------------------------------- |(小計) | 640 | 520 | 660 | |-------------------------------------------- |大阪支店 | 遠藤 | 130 | 120 | 150 | | | 川元 | 200 | 180 | 220 | | | 佐藤 | 150 | 100 | 120 | | | 山本 | 140 | 120 | 130 | |-------------------------------------------- |(小計) | 620 | 520 | 620 | |--------------------------------------------
|-------------------------------------------- |名古屋支店| 小林 | 110 | 120 | 150 | | | 近藤 | 210 | 180 | 250 | |-------------------------------------------- |(小計) | 320 | 300 | 400 | |-------------------------------------------- |広島支店 | 岡田 | 150 | 120 | 170 | |-------------------------------------------- |(小計) | 150 | 120 | 170 | |-------------------------------------------- |(総合計) |1730 |1460 |1850 | |-------------------------------------------- 長いって怒られましたon
>>218-220 A列(支店)でソートしてから、
データ > 集計
グループの基準:支店
集計の方法:合計
集計するフィールド:4月、5月、6月
・現在の集計表と置き換える
・集計行をデータの下に挿入する
で、ほぼ望み通りのものができあがりますよ。
それがイヤならマクロ使うしかないですね。
>>222 なんで何も言ってないのに「それがイヤなら」なんて
イヤな言い方をするの?
>>223 完全に望み通り ではなく ほぼ望み通り だからだろ。
~~~~~
Excelの集計機能はカスタマイズ性に乏しいから
奴の言うとおり満足できなければマクロ使うしかない。
てゆーか、まともな回答者にからみたいだけの僻み君?
226 :
214 :2005/07/05(火) 08:31:42
>>215 >2003で1度開いて、2003上で保存しなおしても遅いですか?
駄目でした・・・。
>>216 >ノートンとか入ってるからでは?
msconfigで全てのスタートアップPGを全て無効にしても駄目でした・・・。
コンパイラが変わると作り直さなきゃいけない、ってレベルですかね・・・。
エクセルの使い方を教えてください。 2002/01/01,10 2002/01/02,20 と続いたcsvファイルが二つあります。 この二つのファイルを結合したいのですが、両方のファイルにはそれぞれデータが無い日があります。 両方とも同じ日だったらそのままコピペするだけなのですが、欠落日がでたらめなのでそれもできません。 このようなファイルを結合するにはどうすればいいのでしょうか? 2002/01/01 10 20 2002/01/02 11 2002/01/03 21 2002/01/04 12 15 2002/01/05 11 と言うような形で並べたいです。土日は両方とも欠落しているのでそれらの日はいりません。 どうかよろしくお願いします。
228 :
名無しさん@そうだ選挙にいこう :2005/07/05(火) 15:30:20
質問です。月曜日以外の日付を入れるとエラーを表示するにはどうすれば簡単ですか?2003です。
>>227 「データ」→「統合」でよろしいかと。
上端行にA、Bとつければ、別々になりますね。
231 :
228 :2005/07/05(火) 16:04:27
>>230 ありがとなのですが
質問の仕方が良くなかったみたいです。
たとえばあるセルに2005/07/11といれると曜日をみてweekday関数?
月曜日はそのまま。他の曜日はエラーで返したいのです。説明不足ですみません。
>>231 エラーをメッセージボックスで表示 → 入力規則、VBA
エラーを別セルに返したい → IF関数、WEEKDAY関数
入力したセルの値をエラーに置き換えたい → VBA
VBA使えないなら別セルにエラー返すしかないね。
233 :
228 :2005/07/05(火) 16:21:15
>>232 細かくありがとうございます。やはりVBAか、、、orz
メッセージボックスで返したかったのですがほんとの初歩でVBAはあきらめてしまったもので、、、
227です。
>>229 レスありがとうございます。
統合をやってみたのですが、同じデータがコピーされるだけでした。
これはどうしようもないのでしょうか?
バージョンは2003です。
dateDdate1C
2002/7/512002/7/511
2002/7/622002/7/812
2002/7/732002/7/913
2002/7/842002/7/1014
こんな感じになってしまいます。
date1をdateにしても同じです。
もし統合のデータ範囲の指定のやり方などを間違ってたらすみませんが教えてください。
235 :
229 :2005/07/05(火) 17:01:49
>>234 A B
2002/01/01 10 2002/01/01 20
2002/01/02 11 2002/01/02
2002/01/03 2002/01/03 21
↓
A B
2002/01/01 10 20
2002/01/02 11
2002/01/03 21
上の二つを下の表にしたい場合。日付を“左端行”にチェックを入れて基準とします。
上端行は、そのままだと合計されてしまうので、10の上に“A”として
20の上に“B”として“上端行”の基準とします。下記のようなHPが
参考あったので参考にしてみてください。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/mous_jyo/jyo-2/
237 :
名無しさん@そうだ選挙にいこう :2005/07/05(火) 19:31:14
使ってたマクロを削除したのに、 ブック起動のたびに「マクロを有効にしますか?」 って聞いてくる。消す方法教えてください。
239 :
名無しさん@そうだ選挙にいこう :2005/07/05(火) 19:44:27
12.35の小数点以下を切り捨てて12にする、つまりガウス記号に相当する関数はありますか?
241 :
240 :2005/07/05(火) 20:04:15
毎週呼んだ客数による歩合を計算して従業員に渡しています。 週に7人来れば売り上げの100%を、6人の場合は80%を…その歩合の金額を、人数を入力するだけで計算して表示できるようにしたいのです。 売り上げ額は他のセルに表示してあり、歩合を表示するセルに人数を入力するだけで80%なり60%など人数で決まった%分の額を表示する、こんなことって出来ますか?バカみたいな質問かもしれませんが、どうかよろしくお願いします
>>242 このスレの住人のレベルだと、手頃なチャレンジ問題って感じで
いいんじゃないの?
>>242 歩合の分け方が2,3種類ならIFでもいいけど、掛け率をいじったりとかメンテすることを考えると、
人数と掛け率の表を別に作って、VLOOKUPがいいんじゃない?
>>243 お前のレスは無駄
245 :
名無しさん@そうだ選挙にいこう :2005/07/05(火) 21:53:29
246 :
242 :2005/07/05(火) 22:04:34
>>244 ありがとうございます。帰宅したらやってみたいと思います。
100 101 102 200 201 202 300 301 302 とスペースで縦に分けられたtxtファイルを A B C 1 100 200 300 2 101 201 301 3 102 202 302 という感じに読み込む or 置き換える良い方法はないでしょうか?
>>222 お礼のレスが遅くなりました。
丁寧な回答をありがとうございます。
早速明日職場で試してみます。
250 :
福岡 :2005/07/06(水) 00:26:33
エクセルのセル内に 1−1と書き入れたいいんだけどenter押したら 1月1日に変換なるんです、どうしたらいいんですか 誰か教えてくれませんか
252 :
名無しさん@そうだ選挙にいこう :2005/07/06(水) 01:16:27
複数の円グラフのサイズを統一したいのですが、 どのようにしたら良いのでしょうか? excel97 winMe マクロ・VBA使えません。。。 よろしくお願いいたします。
>>252 Excel2000で確認
(1)shiftを押しながら該当のグラフを全て選択
(2)[右クリック]-[オブジェクトの書式設定]-[サイズ]で、サイズを数値で指定
で一度に大きさを指定
excel2000でウィンドウの固定を列に対して行うことはできませんか? A1列の項目(目次)を見ながらZ列もみたいのです。
1行目のセルを選択して固定すれば良いだけでは? A列を固定したいならB1選択で。
>>255 レスさんきゅです。
失礼しました。
行の固定をさせつつ、列の固定もしたいということです。
>>252 手作業かつ見た目でGo
セルのサイズを合わせておいて、オブジェクトをグリッドに合わせるオプションを付けるって
方法はあるけど、これが使えればちょっとマシかもしれません
だったら普通に固定すればいいだけじゃん
まじですか? 列または行を固定させていると、メニューの中のウィンドウから「固定の解除」しか選べないんです。
261 :
254 :2005/07/06(水) 06:52:36
↑エクセル2000です。
>>248 何か問題あるの?単に回答をあまり期待してないから
方々に投稿してるだけじゃん。
↑あーあ、いっちゃった…。放置決定だな。
>>254 B2を選択した状態で固定したら?
264 :
254 :2005/07/06(水) 09:29:25
>>263 行列両方を選択状態にして固定しても、行だけが固定されます。
2000の仕様なのかな?
実際に出来ている人はいるのでしょうかね
あー方法が知りたい
>>254 もしかして、「B列全体」と「2行全体」を選択してない?
単に「B2」にカーソルがアクティブになってれば行けるはずだけど…。
>>265 そのもしかしてでした。
感謝。
知らなかったよホント。
XP以上じゃなきゃ無理なこと結構あるみたいだから、これもそれかと思ってた。
たすかりました。
267 :
228 :2005/07/06(水) 10:20:29
昨日の質問ですが、なんとなくは 例 (A3)日付入力 if (A3) weekdayが1の場合,"" else msgbox("月曜日ではありません") end if みたいな感じなのでしょうか?
268 :
名無しさん@そうだ選挙にいこう :2005/07/06(水) 11:24:27
あるセルのRowとColumnは取得できるんですが、A列とかB列など「A」 に当たる部分が取得できないので、下記が書けないです。 「A」とか「B」の列名を取得するにはどうすればよいですか lastrow = Sheet1.Range(変数 & "65536").End(xlUp).Row
>>267 月曜日以外の入力を禁止してエラーメッセージを表示させるなら入力規則のみで出来ますよ。
入力値の種類:ユーザー設定
数式:=WEEKDAY(A1)=2
(↑対象がA1で、月曜日のみ入力を許可する場合)
月曜日以外も入力は可能だけど、月曜日以外を入力したらエラーメッセージを表示させるってなら
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then If Format(Target.Value, "aaa") <> "月" Then MsgBox "月曜日ではありません"
End Sub
こんなのとか。
>>268 普通はCellsプロパティを使って
Cells(65536, 1).End(xlUp).Row ' 1 が列番号でA列に当たる
とすると思いますけど、列番号から英字の列名を返したい場合は
Dim foo As Integer, buf As String * 1
foo = 52
If foo > 26 Then buf = Chr((foo - 1) \ 26 + 64)
MsgBox buf & Chr((foo - 1) Mod 26 + 65)
とか。fooに列番号を入れればメッゼージボックスに英字の列名が返る。
実際に使うときはFunctionにしたほうがいいかも。
【1 OSの種類とExcelのバージョン】 WIN2000 EXCEL2000 【2 Googleやヘルプでの検索キーワード】 写真 EXCEL OR エクセル ファイルサイズ 【3 VBAが使えるか / VBAでの回答の可否】 使えないけど方法があるなら勉強する? エクセルにデジカメの写真データ(100万画素程度のJPEG)を貼り付けて1シート9枚の写真 を貼り付けています。 40ページほど作りましたが、合計700メガバイトになってしまいました。(4つほどに分けてます) 検索した結果、貼り付け方によってサイズが30倍は違う事もある事が分かりました また、張りなおす以外の方法も見つかりませんでした そこで質問なのですが このような間抜けな大容量XLSを簡単な方法で小さな容量のXLSにできるのでしょうか
>>270 その画像データ単体のサイズは合計何バイト?
もしかすると最初からそのぐらいじゃないの?
272 :
271 :2005/07/06(水) 13:27:58
あ、圧縮なしでのサイズだから
273 :
228 :2005/07/06(水) 13:55:40
>>269 ありがとうございます。単純に上の方法でやりました。
下の方法はちょっとわからんなかったので、、、
ありがとうございます。
274 :
270 :2005/07/06(水) 14:29:37
約400枚のJPEGで総容量133MBですが 複数のデジカメで100万画素相当で撮影したデータですのでばらつきがありますが 1ファイルあたりBMPにすると、3〜5メガバイトですので、 平均4MBとして、4×400=1600MB?です
275 :
名無しさん@そうだ選挙にいこう :2005/07/06(水) 15:07:09
276 :
270 :2005/07/06(水) 15:12:32
>275 ちがいます 画像としてのデータ量です エクセルに貼ったのはJPGで1ファイルあたり2〜400KBです
【1 OSの種類とExcelのバージョン】office2000 【2 Googleやヘルプでの検索キーワード】Excel 列 結合 【3 VBAが使えるか / VBAでの回答の可否】不可 質問です。 エクセルをテキスト出力しようとしています。 で、エクセルでは [|大阪 |] |おおさか [|鹿児島|] |かごしま みたいな感じになってるんですが、これをこのままテキスト保存すると [ 大阪 ] おおさか [ 鹿児島 ] かごしま となってしまいました。 これを [大阪] おおさか [鹿児島] かごしま と出力されるようにしたいんですが、これってどうすればいいんでしょうか?
278 :
名無しさん@そうだ選挙にいこう :2005/07/06(水) 15:40:03
>>277 エディタやWordでTabコードを削除してもいいし、
CSV形式で出力してから、メモ帳で「,」を置換で削除してもいいし。
>>277 > 【3 VBAが使えるか / VBAでの回答の可否】不可
VBAが解らないって意味なのか、VBAコードでの回答がNGってことなのかわからない。
もっともこれは前スレでテンプレ提案した奴が
> 【1 OSの種類 / Excelのバージョン .】 Windows** / Excel**
> 【2 Googleやヘルプでの検索キーワード .】
> 【3 VBAが使えるか / VBAでの回答の可否】はい・いいえ / 可・否
と書き方サンプル付けて書いたのに、勝手に改悪した
>>1 の責任でもあるんだけど。
>>278 学校のお勉強は自分でやらないといけないんだよ、坊や。判る?ばぶー プ
283 :
名無しさん@そうだ選挙にいこう :2005/07/06(水) 19:45:15
>>281 きみ、テンプレ命だね。( ´,_ゝ`)プッ
別にテンプレ必須だとかぬかしてるわけじゃないじゃん
せっかくテンプレ使ってるのに
>>1 のせいで情報がきちんと伝わらないってことを言ってるだけでしょ
つーかどうせ
>>283 =
>>1 でしょ(否定するだろうけど
スレ立てが早漏で不備があったことに自分でも気付いてるからこそ
過剰に気にするんだろうな
まったく困った子だね( ´,_ゝ`)プッ
>>1 のおかげで歴代最高の糞スレになりそうだな。
糞スレで遊ぶのが好きな俺としては
>>1 (*^ー゚)b グッジョブ!!
って感じだな。
286 :
a :2005/07/06(水) 20:04:55
287 :
名無しさん@そうだ選挙にいこう :2005/07/06(水) 20:57:20
エクセル初心者です 今まで、図形作成には花子を使用していたのですが、都合でエクセルを使う事になってしまいました 一応、グラフ作成は出来るようになったのですが、どうしても判らない事が2点ほど出てきましたので質問させてもらいます @グラフのX軸、Y軸の長さを任意で設定出来るのか否か グラフウイザードリィに従えばX軸、Y軸は自動になってしまい、例えばX軸を200mm、Y軸を175mmと言うような設定ができません この様な機能はついていないのでしょうか? A処理上、"<0.05"なとの不等号を持った数値を扱う事があるのですが、標準では文字扱いみたいです これを数字として認識させる事は出来ないのでしょうか? 何とか、よろしくお願いします
288 :
名無しさん@そうだ選挙にいこう :2005/07/06(水) 21:21:36
【1 OSの種類とExcelのバージョン】 Windows XP / Excel 2003 【2 Googleやヘルプでの検索キーワード】 エクセル グラフ 最大 最小 目盛 【3 VBAが使えるか / VBAでの回答の可否】VBAを使うことができません。 / VBAでの回答は否でお願いします。 下記のようなグラフをエクセルで作成したいのですが、 ヘルプや検索エンジンで探したのですが、解決できませんでした。 ご教授お願いいたします。 X軸は最小値は0からです。 Y軸が下記のように変更できません。 グラフは折れ線グラフです。 Y軸 : : 5| 4| 3| 2| 1| 0(2000) |--------------------------X軸 1999| 1998| 1997| 1996| : :
289 :
参照好き :2005/07/06(水) 21:29:54
質問させていただきます。 普通,セルA1を「切りとり」「貼り付け」でB1に移動すると そのセル(A1)を参照している別セルの数式の参照先も自動で変更 されますが,この機能を働かせず,数式が常に同じセル参照するようにする ことは出来ないのでしょうか? 複数の人が入力するエクセルシートを作っているのですが,コピー&ペースト してくれず,あっちこっちで切り取られてしまった結果,シート中REF だらけになってしまい処置に困っています。 いろいろ試してみたのですが,どうしても分かりません。 よろしくお願いいたします。
>>289 INDIRECT関数で参照
詳しくはヘルプ読め
294 :
287 :2005/07/06(水) 21:47:28
>>288 情報ありがとう御座います
早速、検索・実践してみます
295 :
参照好き :2005/07/06(水) 21:51:49
出来ました!! 名無しさん@そうだ選挙にいこう さんありがとうございました。
298 :
名無しさん@そうだ選挙にいこう :2005/07/06(水) 22:51:02
【1 OSの種類とExcelのバージョン】office2000 【2 Googleやヘルプでの検索キーワード】IF関数 ネスト 【3 VBAが使えるか / VBAでの回答の可否】使えません/可 商品名とそれに対応するコードを記入したリストがあります。 例) 商品名 コード みかん A バナナ B りんご C リストは7行くらいあります。 そうした場合に、あるセルに品名を入力すると、他のセルにそれに対応する コードが表示されるようにしたいのですが、IF関数にIF関数をネストする以外に いい方法はありますか? IF関数の中のIF関数を重ねていくと、7行もあるので 計算式がすごくうるさい感じがします。 もっとスマートな方法はないでしょうか?
300 :
名無しさん@そうだ選挙にいこう :2005/07/06(水) 23:02:19
>>299 レスありがとうございます。
きいたことはあるけど、使ったことはありませんでした。
調べてみます。
>>284 同様のexがあったOS、Excelのバージョンの欄についても
片方しか記入しない椰子が前スレに多数いたことから考えても
単に
>>1 にそのように記述したところで(3)の記入方法が変わるとは思えない
ついでにVBAって何?って記述がこのスレで見られることを鑑みると
(3)については再考すべし、と考える
前から思ってるんだがVBAスレは別途独立させて質問者にとって必要なときは
そちらに誘導してVBA厨
>>284 、
>>285 みたいなのを隔離したらどうだろう?
そうすれば(3)のテンプレいらない
つか、早くどっか行けばいいのに… VBA&テンプレ厨
自分で別スレ立ててそちらを繁盛させたらいいじゃないか
303 :
名無しさん@そうだ選挙にいこう :2005/07/06(水) 23:38:40
Excelのキーボード操作に関する質問です。 今やっている操作をキャンセルするときにEscキーを押すことがありますよね。 複数のセルを選択しているときに、Tabキーを押しても選択された範囲内でしか 移動できませんが、それを解除する場合はマウスを使って、他のセルを押して解除する しかないのでしょうか? 他の動作同様、Escキーを押せば今の選択範囲をキャンセルできるかなと思いましたが ダメでした。 キーボード操作でできる方法はありませんか? 文章が下手ですみません。
304 :
名無しさん@そうだ選挙にいこう :2005/07/06(水) 23:41:05
あともう一つ質問です。 複数のシートを選択している状態では、入力規則を設定することは やはりできないのでしょうか? 試そうとしても、入力規則も文字がグレーに反転して選べないようになってしまうので。 VBAは使えません。
テンプレ厨ウザ杉
309 :
名無しさん@そうだ選挙にいこう :2005/07/06(水) 23:57:16
>>306 >方向キー
こ、こんな単純な方法だったなんて・・・・!!!
今までマウスでやっていました。
>複数シートを選択した状態で
>入力規則を設定出来ないのは仕様。
諦めます。
どもうありがとうございました。
>>284 「ぬかしてる」の言葉の意味も分からず背伸びしてるリア厨がいるな
312 :
287・294 :2005/07/07(木) 08:27:29
>>296 やはり勘違いでした。
どうしてもエクセルで作成したグラフをプリントアウトした時、思い通りの大きさにならないのですが・・・
画面上でなく、プリントアウトした時に希望の大きさになるように(例えばX軸が175mm、Y軸が50mm)に数値設定出来ないのでしょうか?
314 :
名無しさん@そうだ選挙にいこう :2005/07/07(木) 11:48:29
すごい単純な質問ですが、セルの結合ってショートカットキーないのでしょうか?
質問でつ。 Mac判とWin判で、操作・機能等大きく違う点があるんですか? 転職先のある会社の指定履歴書にMacとWin、それぞれの EXCEL,WORDの熟練度を記入する欄がありまして.. Macはさわったことはあるのだけど、Mac上でofficeソフトを 使ったことはありません。 Win上ではWordは普通に使える 程度、Excelはけっこうエキスパートです(VBAでのプログラミングなど)。 同じソフトなのになんで別に書かせるのかなぁって疑問 なんですけど...
>>314 マクロで結合させるようにして、それにショートカットキー割り当てれば?
因みに選択範囲を結合するのは「Selection.Merge」ね。
>>315 Mac版使ったこと無いなら正直に書けばいいだけ。
履歴書ってのは、使ったこと無いのに操作が同じだろうから
同じように使えるだろうっていう脳内理論で書いていいものじゃない。
317 :
316 :2005/07/07(木) 12:38:08
>>315 回答どうもでつ。
でも質問は、「Mac判とWin判で、操作・機能等大きく違う点があるんですか? 」
でして、履歴書の書き方じゃないんです...
318 :
317 :2005/07/07(木) 12:38:51
あぁ もれは 315 で
>>316 さんへのレスです。
すみません。
320 :
名無しさん@そうだ選挙にいこう :2005/07/07(木) 13:59:55
【1 OSの種類とExcelのバージョン】 WindowsXP/Excel2002 【2 Googleやヘルプでの検索キーワード】 文字列結合 範囲 【3 VBAが使えるか / VBAでの回答の可否】 はい/否 指定範囲の文字列を結合する方法を教えてください。 たとえば A B C 1 hoge huga piyo とあった場合、1セル単位で指定する方法で =CONCATENATE(A1,B1,C1)や=A1&B1&C1とするのではなく 「A1:C1」の指定で「hogehugapiyo」を返せる方法を探してます。 何故かというと、実際はINDIRECTやOFFSETを使って可変範囲を引数にしたり 配列を返す式を引数に当てたりしたいからです。 マクロが使える環境なら自分でユーザー定義関数作るところなのですが、 マクロが一切使えない環境なので、何かご存じでしたら宜しく御願いします。
321 :
名無しさん@そうだ選挙にいこう :2005/07/07(木) 14:06:53
>>315 MacもOS9用とOSX用ではかなり違う
特にワンボタンマウスでのOS9用エクセルはかなりの違和感あり
って言ってもエクセル自体が元々Mac用だったのだから
Winの方が違和感ありなのかもしれんがな・・
MacとWinが操作が違うように、エクセルも今や別物と思ってもいい
322 :
名無しさん@そうだ選挙にいこう :2005/07/07(木) 14:52:16
【1 OSの種類とExcelのバージョン】 XP EXCEL 2003 【2 Googleやヘルプでの検索キーワード】 よくわかりません 【3 VBAが使えるか / VBAでの回答の可否】 VBAは使えません エクセル初心者です。入力しか使ったことがなかったのですが、計算をしてみたくなりました。 行Kにあるものを行Jにあるもので割ったパーセンテージを (たとえばJが3でKが1だと33%) 行Lに表示するようにするにはどうすればいいですか? 初めての質問ですよろしくお願いします。
324 :
322 :2005/07/07(木) 15:07:59
>>323 ありがとうございます。
でも反応しません・・・
J1が3で、K1が1なら、L1に=TEXT(K1/J1,"0%")
326 :
322 :2005/07/07(木) 15:12:44
>>323 =を入れ忘れていました出来ました。
出来ました。感動です。
さらに質問なのですがこれをL1からL4839まで
表示させる場合はどうすればいいですか?
327 :
名無しさん@そうだ選挙にいこう :2005/07/07(木) 15:16:00
>>322 とにかくどんなんでもいいから入門書買ってよめ
質問はそれからだ
328 :
322 :2005/07/07(木) 15:16:02
329 :
名無しさん@そうだ選挙にいこう :2005/07/07(木) 15:19:15
>>328 表示形式をパーセンテージにすればすむことだな
330 :
322 :2005/07/07(木) 15:21:15
入門書ぐらい自腹で買えよぉ〜 w
332 :
名無しさん@そうだ選挙にいこう :2005/07/07(木) 18:42:09
【1 OSの種類とExcelのバージョン】WinXP Excel2003 【2 Googleやヘルプでの検索キーワード】 【3 VBAが使えるか / VBAでの回答の可否】マクロの記録を整えるくらい/可 選択範囲をCSVに保存ってマクロで出来ますか? ついでに可能なら、それを右クリックメニューから出来るようにしていただけるとありがたいのですが。 詳しい方よろしくおねがいします
333 :
名無しさん@そうだ選挙にいこう :2005/07/07(木) 18:44:42
>>330 ネットにExcel初心者向けのサイトがいくらでもあるから勉強したら?
334 :
名無しさん@そうだ選挙にいこう :2005/07/07(木) 19:05:39
エクセルのみで宛名などの差込印刷ってできるんでしょうか? ちなみにマクロは使えないです。
差込印刷って言ってもいろんな種類、いろんなやり方があるからねぇ。 「出来る」ものもあれば「出来ない」ものもあるし 「マクロを使えば出来る」ものもある。 具体的に何がやりたいのかきちんと書かないと答えようが無いね。
336 :
名無しさん@そうだ選挙にいこう ◆bxVFazo/xo :2005/07/07(木) 19:20:08
エクセル2000を使ってます。 正方形のセルにしたいです。 でも幅・高さを同じ値にしたら横長のセルになりました。 これはなんでですか?納得いきません。 お願いします。
338 :
名無しさん@そうだ選挙にいこう :2005/07/07(木) 19:38:45
エクセルなんですが串刺し集計のやり方がよくわかりません ご教授願えますか
>>336 Excelで指定する高さや幅はフォントに依存するもので、
pやインチなどといった、長さを表す単位とは全く違った物です。
標準フォントなら
>>337 の方法が使えますが
この方法もフォントによっては不正確だったりします。
340 :
名無しさん@そうだ選挙にいこう ◆bxVFazo/xo :2005/07/07(木) 19:48:53
>>337 /
>>339 ありがとございます。
エクセルの仕様だったんですね。納得いきました。
解凍ありがとうございました。
>>332 ・Personal.xlsのThisWorkBookに
Private Sub Workbook_Open()
With Application.CommandBars("Cell").Controls.Add
.Caption = "CSV出力"
.OnAction = "SaveCSV"
End With
End Sub
・Personal.xlsの標準モジュールに
Sub SaveCSV()
Dim temp As Variant, buf() As String, myfileno As Integer, i As Long, j As Long
myFilePath = Application.GetSaveAsFilename("hoge.csv", ",*.csv", 1)
temp = Selection.Value
ReDim buf(1 To UBound(temp, 2))
If myFilePath = False Then Exit Sub
myfileno = FreeFile
Open myFilePath For Output As #myfileno
For i = 1 To UBound(temp)
For j = 1 To UBound(temp, 2)
buf(j) = """" & temp(i, j) & """"
Next j
Print #myfileno, Join(buf, ",")
Next i
Close #myfileno
End Sub
これでExcelを再起動すれば、右クリックメニューに「CSV出力」って項目が出るはず。
右クリックメニューから消したい時は
Application.CommandBars("Cell").Controls("CSV出力").Delete
を実行するか、Workbook_Openイベントのコードを消して再起動。
342 :
334 :2005/07/07(木) 20:08:02
>>335 質問がいいかげんですいません。
エクセルでつくった住所録から封筒に宛名印刷したいんです。
>>342 それならできるよ。
入力規則のリストとVLOOKUP関数使うのが普通かな。
ただ、印刷の位置合わせがちょっと面倒かな。
まあ、がんばってくれ。
344 :
名無しさん@そうだ選挙にいこう :2005/07/07(木) 21:30:37
>>341 できました。
hoge ◆hoge//WRxY さん、ありがとうございました。
─────────────── | 何について調べますか? | ┌────────────┐ | | お前を消す方法 | | | | | └────────────┘ | [ オプション(O) ] [ 検索(S) ] | `──────────┐ ┌─── , '´l, ..| ./ , -─-'- 、i_ |/ __, '´ ヽ、 ',ー-- ● ヽ、 `"'ゝ、_ ', 〈`'ー;==ヽ、〈ー- 、 ! `ー´ ヽi`ヽ iノ ! / r'´、ヽ `´ヽノ
【1 OSの種類とExcelのバージョン】Win2000 Excel2000 【2 Googleやヘルプでの検索キーワード】 【3 VBAが使えるか / VBAでの回答の可否】不可/不可 セルの一番最初に000-001のように3桁-3桁の数字を入れて 行が下に行くに従って001-001、002-001、003-001、004-001、005-001、…… のように左側の数字を一つづつ増やし、右側の数値は変わらないように したいのですが可能でしょうか。
>>346 =RIGHT("00"&ROW(A1),3)&"-001"
か、又は表示形式「000"-001"」でセルに 1 と入れてオートフィル
>>342 レスありがとうございます。
VLOOKUP関数を勉強してみます。
349 :
346 :2005/07/07(木) 22:25:41
>>347 レスありがとうございます。
早速活用させていただきます。
簡単な入札結果を表す表を考えています。 例えば、、、 A列をA社、B列をB社・・・と仮定し A1、B1、C1、D1、E1の5つのセルに各社の入札金額を入力していきます。 入札しなかった場合は、当該セルには\0もしくは空白にしておきます。 (A1)\32,000 (B1)\31,500 (C1)\0 (D1)\32,300 (E1)\31,550 と入力したら、F1セルに \31,500 と最低落札価格が表示させる・・・ この場合、F1セルにどのような計算式を入れたらよいでしょうか? (初心者のため、VBAの利用はちとつらいです)
>>350 =SMALL(A1:E1,COUNTIF(A1:E1,L2)+1)
{=MIN(IF(A1:E1=0,"",A1:E1))} =SMALL(A1:E1,COUNTIF(A1:E1,0)+1)
おぉぉぉ ありがとうございます
354 :
ほれ↓だよ! :2005/07/08(金) 01:10:58
'******************************************************* '* 名前を入力させて確認する簡単なプログラム * '* Excelが無くてもWindowsならvbsで動作します。 * '******************************************************* 'Excelをお持ちでない方は '全文をメモ帳にコピーし、拡張子を.vbs に変えて保存し 'アイコンをダブルクリックするだけで動作します。 ' 'Excelで動作させる場合は、ThisWorkbookの 'Private Sub Workbook_Open()とEnd Subの間に貼り付ける。 'インプットボックスを表示し、名前の入力をもとめる。 '入力された値を、変数(NAMAE)に代入(= 右辺→左辺)する。 '未入力でOKまたはキャンセル時は、 '変数(NAMAE)に空白("")が代入される。 ' NAMAE = InputBox(" お名前を入力して下さい。", _ " ★★ Please ★★") 'もし(If)、変数(NAMAE)の値が、空白("")と等しくなければ(<>) 'その時は(Then)、メッセージボックスを表示する。 ' If NAMAE <> "" Then MsgBox _ " お名前は、" & NAMAE & " 様ですね!", , _ " ★★ Thank You ★★" End If
>>354 変数は宣言しろ、空行をコメントアウトするな
とか突っ込んでみる。
ところでいきなりそんな初歩にも入らないようなコード貼って君はなにがしたいわけ?
>>354 >'Excelをお持ちでない方は
>'全文をメモ帳にコピーし、拡張子を.vbs に変えて保存し
>'アイコンをダブルクリックするだけで動作します。
正気か?と突っ込み入れとく。
VBかOffice(エクセル、ワード等)がインストールされてなくて動くか?
初心者を騙すイタズラなわけ?
>>356 動くよ。
VBといってもVBSはWSH(Winの標準機能)で動かしてるから。
まぁこれにフォーマットやらdelやらを紛れ込ませて ゲフンゲフン
359 :
名無しさん@そうだ選挙にいこう :2005/07/08(金) 10:07:39
よろしくお願いします。 --------------------------------------- 【1 OSの種類とExcelのバージョン】 WinXP Professional SP2、Excel2002 SP3(Office XP) 【2 Googleやヘルプでの検索キーワード】 Excel 名前を付けて保存 できない/Excel 別名で保存 できない/ Excel グレー メニュー できない/ 【3 VBAが使えるか / VBAでの回答の可否】 修正程度なら可ですが、VBAとは無関係のようです。 --------------------------------------- 1.質問 Excelで書類を開いたり、新規作成すると、「ファイル」-「上書き保存」および 「ファイル」-「名前を付けて保存...」がグレー表示になり選択できません。 「ファイル」-「Webページとして保存...」は有効になっています。 この状態でも、ショートカットによるCtrl+Sで保存はできます。 2.手元にある情報 ・ウイルスバスター最新パターンによりウイルスチェック済。 ・シートにはマクロ、VBスクリプトは含まれていません。新規書類でも同じ症状。 ・複数のパソコンで、Excel2002から問題なく開けるのを確認。1台のみの症状。 ・問題のPCでも、特定のユーザ(管理者権限あり)でログオンしたときのみ症状が発生。 ・対応として「プログラムの追加と削除」から「修復」を実行。効果無し。 ・Excelの「ヘルプ」−「アプリケーションの自動修復(ユーザ設定も破棄)」を実行。効果無し。
360 :
名無しさん@そうだ選挙にいこう :2005/07/08(金) 11:41:47
スマソちょっと教えてください Office2000 Proについているエクセルでグラフを書いているのですが データー範囲のところで、データー範囲(D):=(原価!$B$65,$B$88,原価!$B$102,$B$190)となっているのですが、この原価の付いている"!"は何を意味しているのですか? これ"!"以外にも何かあるのでしょうか?
シート名じゃないかな
362 :
名無しさん@そうだ選挙にいこう :2005/07/08(金) 12:36:57
"原価"がシート名だから、"!"は区切りでしょうか?
363 :
中2年生 :2005/07/08(金) 17:17:25
こんにちは PC無 貧乏中学生です。 以前…特殊記号黒●数字D←黒塗数字をオートコレクトに登録出来ませんか?と質問して 出来ませんと回答頂いてましたが…黒塗数字をコピーしクリッボード上に一旦置いてみましたら、オートコレクトやIME辞書に登録できました。皆様 お騒がせ致しました(^^ゞ
ワロタ
365 :
320 :2005/07/08(金) 17:56:51
A B C D E F 1 阪神 中日 ヤクルト 大洋 検索 結果 2 5点 2点 3点 4点 4点 大洋 3 6点 8点 1点 3点 8点 中日 4 9点 2点 3点 1点 9点 阪神 見にくい表でゴメンなさい。 Eの列に任意の点数を入力したら、その点数に一致した1行のチーム名を表示させたいんです。 もし、E3に1点と入力したら、F3のセルには「ヤクルト」と表示されるみたいな。 A〜D列に入る点数にダブリなしと過程して、F列に入力する式・関数を教えて下さい。
Aの列に入る文字に同じ文字が入らせない(データベースソフトの主キー・インデックスなどのように) その方法はありますか? エラーメッセージを表示させる等方法は問いません
>>368 「データ」の「入力規則」をクリック →「データの入力規則」ダイアログボックスが表示される
「設定」タブの「入力値の種類」を「ユーザー設定」にし、「数式」に =COUNTIF(A:A,A1)=1
>>367 F2に
=INDEX(A$1:D$1,1,MATCH(E2,A2:D2,0))
で、下方にオートフィル
>>368 A列を選択し、入力規則のユーザー設定で
=COUNTIF(A:A,A1)=1
371 :
名無しさん@そうだ選挙にいこう :2005/07/08(金) 22:58:28
質問です。 Excel2000使用。 シートの保護で、任意の複数のシートの保護/保護の解除を まとめて行うことはできないでしょうか? パターン別に30枚くらいシートがあるのですが、内容が変更になった際に 各シートを1枚1枚保護の解除を行い、内容変更をして、再度保護を各シート 1枚1枚に行うのは大変な手間になります・・・ もっと楽に作業をおこないたいです。 宜しくお願いします。
372 :
名無しさん@そうだ選挙にいこう :2005/07/08(金) 23:20:26
皆さん難しい質問をされている中、恥をしのんで質問です。 Excel2000で、住所等を入力していますが、URLを貼り付けて、 リンクさせるようにしたいのですが、どうしてもできません。 アドレスをコピーして、そのまま貼り付けましたが、文字列として 扱われてしまいます。 どうしたらよいのでしょうか。
373 :
372 :2005/07/08(金) 23:28:16
すみません。テンプレです。 --------------------------------------- 【1 OSの種類とExcelのバージョン】 Windos MeでExcel2000 【2 Googleやヘルプでの検索キーワード】 ハイパーリンク エクセル等かれこれ6時間やってます。 【3 VBAが使えるか / VBAでの回答の可否】 使用不可です。 ---------------------------------------
>>373 アドレスのセルをクリック→「挿入」→「ハイパーリンク」をクリック
左側の「リンク先」欄で「ファイル、Webページ」を選択。[ファイル名または
Webページ名]にリンクしたいアドレスを指定して「OK」
2002だと自動でリンクにする設定あるけど、2000って出来ないんだっけ? 2002だと オプション→スペルチェック→オートコレクトオプション→入力オートフォーマット
>>371 そんなに頻繁に書き換える場所はロックせずに保護状態でも書き換えが出来るようにしたらいいじゃん。
まあ、VBA使えば全てのシートの保護/保護の解除も出来るけど、
少なくとも保護オプションのVBAでの設定方法くらいわからないと、教えても無駄になるし。
377 :
名無しさん@そうだ選挙にいこう :2005/07/08(金) 23:51:09
ここの回答者の人って、仕事はどんなことやっている人たちですか? なんかみんなすごいから気になります。
378 :
372 :2005/07/08(金) 23:54:27
>>374 やはりそれしかないでしょうか。
結構行数があるので、一気にやりたかったんですが。
検索していたら、関数を使うというのもありましたが、
一発リンクっていうのはないんですね。
>>375 2000にはオートコレクトはありますがオプションはないです。
お二方ともレス有難うございました。
>>371 乙。根性でがんばれ
ラクしたいなら知恵も必要だ。ファイルの構成見直しすれば?
それが出来ないなら、376の言うとりだと思うよ。
>>372 セルを選択して右クリック、ハイパーリンクを選択。
すると、ハイパーリンクの挿入ってのが登場します。
WebでもPC内のファイルでも簡単に設定できるよ。
表示も好きに設定できるし下線の有無とかも選べる。
381 :
378 :2005/07/09(土) 00:36:00
>>380 そうです。VBAやらマクロやら理解の外です。(勉強不足丸出し)
関数のHYPERLINKでやろうかと・・・
>>379 行数的に1000を越えるので、つらいなあと思って、
6時間検索して、こちらに縋り付いてみました。
このスレの人達っていい人ばかりですね。
有難うございます。
>>381 いや、君自身がVBA使えるかってことではなくて、
VBAでの処理が可能な状態ならコード書きますよって意味だったんだけど。
そんなに手間じゃないのでとりあえず書いてみたから欲しかったら勝手に持っていってください
Sub URLをリンクに変換()
Dim Rng As Range
For Each Rng In ActiveSheet.UsedRange
If Left(Rng.Value, 7) = "
http:// " Then _
ActiveSheet.Hyperlinks.Add Anchor:=Rng, Address:=Rng.Value
Next
End Sub
セルの値の左から7文字が"
http:// "なら、そのセルにリンクを設定します。
使い方は「ツール > マクロ > マクロ」で、
「マクロ名」に「URLをリンクに変換」とでも入れて、(他の名前でも可)
「マクロの保存先」で「PERSONAL.XLS」を選択して「作成」ボタンを押す。
表示されたVBEに上記コードを貼ってVBEを閉じる。
あとは、「ツール > マクロ > マクロ」から、先ほど登録した名前を選択して「実行」
>>382 これをこのままコピペすればいいんですね。
やってみます。(夜が明けてから)
本当に重ね重ね有難うございます。
おやすみなさいませ。
自分で作ったグラフを画像等に変換できない? グラフだけ切り出しても、参照しに行くのがウザイ
385 :
名無しさん@そうだ選挙にいこう :2005/07/09(土) 02:06:29
携帯からすいません。 2進数の最上位ビットを符号として捉えないようにする方法はありますか? VBAは使えません
>>384 PrintScreen 押忍
Ctrl+V 押忍
>>385 桁数を考慮すればいい。
大目に見ておけばいい。(上にゼロを足す)
388 :
名無しさん@そうだ選挙にいこう :2005/07/09(土) 02:33:06
なるほど。しかし10桁の2進数なんでこれ以上増やせないのです。。
>>388 普通に考えれば、データ型は1、2、4、8バイトのいずれだろうから
10桁までというとどこかのセルで計算しているっていうこと?
390 :
名無しさん@そうだ選挙にいこう :2005/07/09(土) 03:10:09
はい。数理モデルを作ってるんです。 最上位ビットが1の時は512+それ以外のビットの10進数で どうにかなりそうです!! んが マクロに記憶できないと言われてしまいます
>>390 なにが「数理モデルを作ってるです」ですだよ
調子に乗るな ( ゚Д゚)、ペッ
なにが「マクロに記憶できないと言われて」だよ (;゚д゚) ハァ?
そのマクロを弄れっつってんだっよっ!
いい足りなかった。 なにが「数理モデルを作ってるです」ですだよ 「数理モデルを実装してるんです」だろ ( ゚Д゚)、ペッ
そのとおりです
【1 OSの種類とExcelのバージョン】office2000 【2 Googleやヘルプでの検索キーワード】 【3 VBAが使えるか / VBAでの回答の可否】不可 Excelで以下の事を行いたい 例えば A1セルに1と入れたらA1セルが○ 2と入れたら×と表示したいのですがどのようにするのがよいでしょうか
397 :
名無しさん@そうだ選挙にいこう :2005/07/09(土) 11:25:53
「Aシート」に入力されたのを、「Bシート」に反映させてて行き詰ってしまったので どなたかお願いします。 【1 OSの種類とExcelのバージョン】 WinXP 2002 【2 Googleやヘルプでの検索キーワード】IF関数 【3 VBAが使えるか / VBAでの回答の可否】 使えません Aシートの2つのセルに、起床時間と就寝時間を入力。 (ちなみに、23:56と入力すると11:56PMと表示されるように「書式設定」がされています。) これでBシートのあるセルに、Aシートの「起床時間と就寝時間」を元に「床上時間(起きている時間)」を引き出す関数を入れてくれとの事なのです。 簡単に考えるなら、「就寝時間−起床時間=床上時間」なのですが「上記の書式設定」がされている為これだと出来ないのです。 何か良い方法がないでしょうか。。。
>>397 数式の入ってるセルに時刻用の表示形式を設定すりゃよろし。
シリアル値で入力してあるなら、表示形式を何にしようと
計算は出来るはずだけど。
それでうまくいかないなら、おそらく表示形式をh:mmにしたってうまくいかないだろう。
しかし、相変わらず「VBAでの回答の可否」を書かない奴が多いな。
やっぱこれは質問者の非じゃなくて
>>1 の非だろ。
次スレではちゃんとやろうぜ。
400 :
名無しさん@そうだ選挙にいこう :2005/07/09(土) 12:03:54
>>398 さん
「床上時間」のところにも表示形式を同じように設定ですよね?
就寝時間「11:00PM」-起床時間「7:00AM」=「4:00PM」
↑その方法だと、この様に出てしまいました。。。
何かないでしょうか?
401 :
397=400 :2005/07/09(土) 12:13:14
もしかして、床上時間のところの表示形式を「24時間制」ですか? >簡単に考えるなら、「就寝時間−起床時間=床上時間」なのですが ・・・って自分で書いたのですが、これも間違っている事に気がつきました。 午前3時(03:00)に就寝して、起床時間が午前8時(08:00)だと駄目ですね。 「午後に寝て、午前に起きる人」なら上記の私の式で良いのですけど。 不甲斐なくて色々と申し訳ございません。
>>401 時刻データ(シリアル値)どうしで引き算をする場合、結果の値も当然
シリアル値になる。表示形式が自動的に適用されれば時刻の形に
見えるし、そうでなければただの小数値に見える。
もとの値の表示形式と同じにするとかいうのではなく、必要に応じて
自分で表示形式を設定しろという話。
※シリアル値:
時刻データの場合0〜1を24時間に割り振ったもの。
0なら0時、0.5なら12時、0.75なら18時となる。
就寝時刻と起床時刻は
=MAX(就寝時刻,起床時刻)-MIN(就寝時刻,起床時刻)
って手は思い浮かぶけど。
これですべてのケースに対応できるかどうかは知らない。
403 :
397=400 :2005/07/09(土) 12:42:38
>>402 さん
お忙しいところ、色々とスイマセン。
もの凄い勘違いをしていました。
・就寝時間−起床時間=床上時間(起きている時間)
↑と書いたのですが、「床上時間(布団に入っている時間)」でした。
・・・根本的に質問内容が違ってたみたいです。
就寝時間が11:00PM、起床時間が07:00AMだと8時間というのが頭の中では出てきますが
計算式では、どのように表せば良いのやら。。。
「シリアル値」の説明ありがとうございます。
小数点が出てきて?状態だったのですが、お蔭様で理解できました。
>>403 >就寝時間が11:00PM、起床時間が07:00AMだと8時間
起床時間−就寝時間=睡眠時間
IF睡眠時間<0 THEN 睡眠時間=睡眠時間+1
で良いじゃん。
405 :
404 :2005/07/09(土) 13:32:58
=IF(B1-A1<0,B1-A1+1,B1-A1)
>>403 テキトー年月日 23:00 引く ((テキトー年月日)の翌日) 07:00
これで「8時間」て出るだろう。
Excelのヘルプで「時刻」「日付」を探せ。
>>407 じゃ睡眠開始と睡眠終了が深夜0時を2個以上跨がない
って仕様でいーわけだよな (#゚Д゚) プンスコ!
(´-`).。oO( まぁそりゃそうだろう… )
1-17 18-34 35-51 52-68 69-85 のように自動で入力されるようにするにはどうすればいいですか? 今日は「1から17」、明日は「18から34」、明後日は「35から51」という意味で 「-」は「引く」という意味ではありません。 どう入力すればドラッグするだけで自動入力されるようになりますでしょうか? よろしくお願いします。
>>409 =ROW(A1)*17-16&"-"&ROW(A1)*17
F5 1-17 F6 18-34 F7 35-51 という風に入れたいのですが F4 1-17 といれ、 F5 =ROW(F5)*17-16&"-"&ROW(F5)*17 といれて、下にドラッグしたら F5 69-85 F6 86-102 F7 103-119 F8 120-136 とでました。 F5の左の数字を18にするにはどうすればいいですか。
すみません。素直に入れればできました。 ありがとうございました。
F5 B 1-17 F6 B 18-34 F7 B 35-51 と、さっきのやつに「B 」を付け加えるにはどうすればいいですか?
すみません。これもできました。一人で勝手に騒いですみません。
415 :
名無しさん@そうだ選挙にいこう :2005/07/09(土) 19:11:29
直線の両端を白丸にしたいのですが、黒丸にしかなりません。 線を右クリックしたときに出る、オートシェイプの書式設定の始点のスタイルと、終点のスタイルで 丸いものを選んでいるのですが、これが黒丸なのです。 何か白丸にする方法はないのでしょうか。
>>415 オートシェイプで円を2つ書いて、それを直線で結べばよろし。
頻繁に使うならその状態でグループ化しておけばいいし。
417 :
41 :2005/07/09(土) 20:00:45
>>416 アドバイスありがとうございます。その手がありましたね。
グループ化して使うことにします。
どうもありがとう。
418 :
404 :2005/07/09(土) 21:12:25
アドバイスいただきたく書き込みします。 0000-0100 0100-0230 0330-0400 このようなデーターがA列に20000個くらいあります。 データの意味は、0000は0:00を表し0100は1:00です。 開始時刻と終了時刻を表す文字列です。 このデーターから、30分単位を*で表す48列のグラフ風の 表示を作りたいのですが。↓のような _________0123456789・・・ 0000-0100** 0100-0230 *** 0330-0400 * VBAの入門書レベルは理解してるので、VBAも可です。 また、2000-0200 とかの日にちが変わるデーターもあります。 環境は、WIN2000、EXCEL2000 です。よろしくおねがいします。
=IF(1<=MOD(ROUND((VALUE(MID(A1,6,2)&":"&RIGHT(A1,2))+1-VALUE(LEFT(A1,2)&":"&MID(A1,3,2)))*48,0),48),"*","") で内容は同じでIFのはじめの1を48まで、って感じか
>>418 > _________0123456789・・・
って何?
> 0000-0100**
> 0100-0230 ***
> 0330-0400 *
もズレまくってるんだけど。
それと*は1セルにひとつなの?
それとも1セルに全て入れるの?
脳内完結ではなく、第三者にも伝わるように説明しよう。
421 :
404 :2005/07/09(土) 23:59:09
自分なりに試行錯誤していたので、レス遅れて申し訳ないです。 また、ズレまくってすいません。 *はセルに1個です。48列使って1日分を表示させたいのです。 オートフィルターを使いたいのがその理由です。 あと、30分以下の値は、開始時刻では、切捨て終了時刻では 切上げて表示したいです。 たとえば、0012-0111の場合は、0000-0130の場合と同じに表示 させたいのです。 ためしに、シート関数で文字列操作して、開始時刻と終了時刻を設定したら 数式を20000行までコピーしたら、ファイルサイズが17M位になってしまい ました。このような場合は、VBAを使えばファイルサイズや動作の軽さ で有利になるのでしょうか? よろしくアドバイスをいただけたら幸いです。お願いします。
>422 どうしたの、ボウヤ
>>399 またテンプレ+VBA厨か
テンプレなんか元からいらねーんだよ
>>1 が残してくれただけありがたく思って感謝しろ、ボケ!
>>421 Dim buf As String, i As Long
For i = 1 To Cells(65536, 1).End(xlUp).Row
buf = Cells(i, 1).Value
Range(Cells(i, (Left(buf, 2) * 60 + Mid(buf, 3, 2)) \ 30 + 2).Address, _
Cells(i, (Mid(buf, 6, 2) * 60 + Right(buf, 2) + 29) \ 30 + 1).Address).Value = "*"
Next i
こんな感じでしょうか?
Application.ScreenUpdatingと値のクリアはお好みで。
>>426 あなたみたいに馬鹿に餌を与える人も同罪
放置がイチバンよ
すみません ちょっと教えてほしいのですが、 ある数値リストがあり、そこから平均をだしてその平均を100とし、 リスト内の数値に指数を出したいのですが、どの関数を使えばいいのかわかりません。 教えてもらえませんか?
中学校数学レベルだな
>>429 が15歳以上ならまじやばッス
431 :
名無しさん@そうだ選挙にいこう :2005/07/10(日) 03:26:30
携帯から失礼します。 クリックすると自動的に「1」と入力されるようなマクロとかあるんですか?
>>431 あるよ
「何を」クリックしたら「何処に」1と入力したいのかわからないから
具体的な方法は教えようが無いけど。
433 :
名無しさん@そうだ選挙にいこう :2005/07/10(日) 03:38:49
あ すいません。 B2:K11のうちのセルをクリックしたら、「1」を表示させたいのです。
, -'"´  ̄`丶、_ ,.∩ `ヽ 〃∪'´ ̄`二二人\ ヽ | ツ´ ̄ ̄ ̄ ̄´ ヾ ヽ. ', |ハ ,ニ、 ,. - 、 | | | l | | ハ ィハ ,二ヽ. | | | | | 同じ板にコピペするとそのままだけど、 | | | じ' |トJ〉 /)} l | 違う板にコピペすると鬼のような怖い顔 | ハ 、'_,  ̄,, 厶イ川| に変わる摩訶不思議な佳子様コピペ。 l l /\ .. イV\川 | ,' l l ,イ `l ̄´ / /ヽl l l | l ハ `メ、 〃 ヽヽ、__ノ l ∨ └‐イ「ト--ァ'´ ハヽ__ノ ヽ/ } l」」 / / }`ー 〈_n| 八 / / /ノ 〈二二人 c /\/ / , イ / /厂 /\__>< {_ / / / /ハ \\ ト--- 、 _/ // / ハ \\ \ , -‐ ''"´ / / / ̄\ `丶、 \ \ ヽ / '´ ̄ ̄ / / / \ \ \ ヽ \ ハ | , -,--' / \ ヽ \ ヽ ∨ ヽ、 // / ヽ ____..--- 、 ハ  ̄〈| | / ´ ̄ ̄ ̄ ̄ ̄/ /  ̄`ヽ} しーヘ {__{__.... 、 / | ` ー─── ''"´ `ヽ、 | /
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, Range("B2:K11")) Is Nothing Then Target.Value = 1 End Sub
ありがとうございます! コンパイルエラーが出るのはパソコンが悪いからなのでしょうか。
↑すいません解決しました ありがとうございました!!
>>423 多分
>>399 は君じゃないでしょ。黙ってれば?
君には関係ないし、君は必要とされてないし。
粘着に
>>1 を煽る奴…
そしてそれに過剰に反応する奴…
そいつ等を完全に無視してきちんと回答してる奴…
人としての程度がはっきりわかるスレですね。
すべてのはじまりは前スレ
>>1 が私物化しようとしたせいなんだが
>>441 1さん、こんな暑い時期にそんなにカリカリしないで
またーりいこうよ
前スレは前々スレで出たFAQテンプレ案とかもきちんと補完されてたし 先走り汁ダラダラの早漏スレ立てでもなかったので、このスレよりよほどマシだが。
--------------------------------------- 【1 OSの種類とExcelのバージョン】 :OS脳内,Ver∞ 【2 Googleやヘルプでの検索キーワード】:厨 【3 VBAが使えるか / VBAでの回答の可否】:日本語での回答を所望 --------------------------------------- >1は、前々のスレあたりから現れた ささやかな質疑応答のやり取りに苛立ちを覚え噛み付き、 テンプレがなければ、質問のレベルを推察できず、 「坊や」と言う言葉に異常反応した、 あの人ですか?
445 :
名無しさん@そうだ選挙にいこう :2005/07/10(日) 18:00:25
┏┳┳┓ ハイ. ┏┳┳┓ ┏┫┃┃┃ 下劣な罵倒は . ┃┃┃┣┓ ┃┃┃┃┣┓ ここまで ┏┫┃┃┃┃ ┃ ┃┃┏━━━┓┃┃ ┃ ┃ 煽り. ┣┫ ・∀・ ┣┫ STOP.!┃ ┗━━━━┛┗┳━┳┛┗━━━━┛ ┏┻┓┃ ┏━┛ ┣┻┓ ┗━━━┫ ┗━┓ . ┗━━━┛ 以後スレ立てやテンプレ云々に関する書き込みは 全て負け犬の遠吠えとします。 識者は無視するように。
>>444 それは前スレの
>>1 =現スレ
>>442 、443のこと
現スレ
>>1 とは恐らく別人
前々スレ後半から自作自演を繰り返し、テンプレ「必須」にこだわる
現行スレでその文言を削除され荒らしに化けた
ついでに前々スレで出た要望とは前スレ
>>1 の自作自演
回答したよ(w
必死になっちゃって可哀相な子(w
>>446 > そして僕は肛門にマヨネーズのチューブを差し込み、本体を思いっきり握った
まで読んだ。
>>446 は、って書くとわかりづらいな
>>446 に向かって馬鹿は放置しろと言いたかったんだが
とにかく荒らしは放置が一番キライ←鉄則
454 :
名無しさん@そうだ選挙にいこう :2005/07/10(日) 20:25:13
┏┳┳┓ ハイ. ┏┳┳┓ ┏┫┃┃┃ 下劣な罵倒は . ┃┃┃┣┓ ┃┃┃┃┣┓ ここまで ┏┫┃┃┃┃ ┃ ┃┃┏━━━┓┃┃ ┃ ┃ 煽り. ┣┫ ・∀・ ┣┫ STOP.!┃ ┗━━━━┛┗┳━┳┛┗━━━━┛ ┏┻┓┃ ┏━┛ ┣┻┓ ┗━━━┫ ┗━┓ . ┗━━━┛ 以後スレ立てやテンプレ云々に関する書き込みは 全て負け犬の遠吠えとします。 識者は無視するように。
(´-`).。oO( Excelって凄いな… )
なんだやっぱり荒らしは前スレ
>>1 のテンプレVBA厨の仕業だったのか。
460 :
名無しさん@そうだ選挙にいこう :2005/07/10(日) 21:03:03
,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,、 ,,,,,,,,,,,,,,,,,_ ゙゙lllll!゙゙゙゙゙゙゙゙!!lllll lllllll!: ,,,, ゙゙llllll!゙゙゙゙!!lllii,, ,illlll° .'!!l ゙ ̄ ,ill!゜ ,illlll° .lllllli、 ,lllll!′ ,iii丶 .,,,,,,,,,,,,, ,,,,,,,,,,,,: ..,,,,,,,,iiiii! ,,,,,,iiilllll,,,,,,,,,: ,illlll° .lllllll ._,,,,,,,,,,,,, ,illllllllllliiiilll!′ ゚゙゙llllll゙’,,llll!゙゙” .””,lllll゙ .゙”~,lllll゙”””″ ,llllll゙ ,llllll°,,,iill!!゙゙゙゙゙゙!llli, ,illlll° `lll!゜ ゙lllll,iil!゙° .,illlll゜ .,illlll゜ ,llllll゜ .,llllll!゜,,illll!° llllll ,illlll° .゙゙′ ,,lllllll′ .lllll!′ ,illll゙ ,llllll゙ ,,lllll!゙ .,llllll゜ ,llllll゜ ,illlll° ,,iil!′ ,,,iil!l゙゙lllll, ,illlll゜ .,llllll゜ .,,ii. .,lllll゙ .,,,illll!゙′.lllll° .,,illl!゙゜ ..,,,,illllll,,,,,,,,,,,iiiilll!’.,,,,,iillll゙`.,,,,llllli,,,、 ,,,,,,,,llllll,,,,,,, lllllli,,,,iil!!゙` ,,,,,illllll,,,,,iiiill!!゙゙` .゙!llli,,,,,,,,iill!!゙° ..゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙° ゙゙゙゙゙゙゙゙°'゙゙゙゙゙゙゙゙゙゜ .゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙° ゚゙゙゙゙゙″ ゙゙゙゙゙゙゙゙゙゙゙゙”` `゙゙゙゙゙゙゙″ あとはこれの意味が分からないお馬鹿さん達だけで勝手に騒いでなさい。 これの意味がわかるやつは、これで大人しくなるはずだから。
今更言わなくてもわかってる
463 :
名無しさん@そうだ選挙にいこう :2005/07/10(日) 21:30:21
┏┳┳┓ ハイ. ┏┳┳┓ ┏┫┃┃┃ 下劣な罵倒は . ┃┃┃┣┓ ┃┃┃┃┣┓ ここまで ┏┫┃┃┃┃ ┃ ┃┃┏━━━┓┃┃ ┃ ┃ 煽り. ┣┫ ・∀・ ┣┫ STOP.!┃ ┗━━━━┛┗┳━┳┛┗━━━━┛ ┏┻┓┃ ┏━┛ ┣┻┓ ┗━━━┫ ┗━┓ . ┗━━━┛ 以後スレ立てやテンプレ云々に関する書き込みは 全て負け犬の遠吠えとします。 識者は無視するように。
>>462 幼稚園児並みのリアクションだな
それにしてもどうしてそこまでテンプレにこだわるわけ?
親でも殺されたのか??
どうしたの、ボウヤ達
このスレの
>>1 を叩いてる子達も、
前スレの
>>1 を叩いてる子達も、
お利口だから、その辺までにしておきましょうネ。
┃┃┃┃┣┓ ここまで ┏┫┃┃┃┃ ┃ ┃┃┏━━━┓┃┃ ┃ ┃ 煽り. ┣┫ ・∀・ ┣┫ STOP.!┃
前スレ
>>1 はこのスレを早く消費してしまって
テンプレ必須の新スレを立てたくてうずうずしてるから
荒らしを止めるわけない
今日の荒らしのやりとりの全てが自作自演なのかも
迷惑千万なので市ねと言いたい
>>467 そんなことよりお前が迷惑千万なんだが、どうにかなりませんか?
471 :
名無しさん@そうだ選挙にいこう :2005/07/10(日) 22:32:51
┏┳┳┓ ハイ. ┏┳┳┓ ┏┫┃┃┃ 下劣な罵倒は . ┃┃┃┣┓ ┃┃┃┃┣┓ ここまで ┏┫┃┃┃┃ ┃ ┃┃┏━━━┓┃┃ ┃ ┃ 煽り. ┣┫ ・∀・ ┣┫ STOP.!┃ ┗━━━━┛┗┳━┳┛┗━━━━┛ ┏┻┓┃ ┏━┛ ┣┻┓ ┗━━━┫ ┗━┓ . ┗━━━┛ 以後スレ立てやテンプレ云々に関する書き込みは 全て負け犬の遠吠えとします。 識者は無視するように。
467=469=470
前スレ
>>1 って複数人居るんですね
おもしろいなぁ
476 :
舞え擦れ位置 :2005/07/10(日) 22:40:38
/////// ///////____________ ///////  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ̄ ̄ /////// (~) チリンチリン /////// ノ,, /////// ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ /////// ( ´∀`)( 厨 ) )) < 夏だなあ〜 /////// (つ へへ つ コロコロ \______ /////// //△ ヽλ ) ) 旦 ////// l ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄l /////  ̄| .| ̄ ̄ ̄ ̄ ̄ ̄ ̄| .| ̄ //// ^^^ ^^^ 2chの夏。厨房の夏。 おまえら、俺の手の上で踊ってるってことだけは忘れないでください。 俺に踊らされて無ければ、こんなくだらない煽り合いには参加しないはずですから( ̄ー ̄)ニヤリッ
現スレ
>>1 って複数人居るんですね
おもしろいなぁ (w
【1 OSの種類とExcelのバージョン】XP 2002 【2 Googleやヘルプでの検索キーワード】履歴 【3 VBAが使えるか / VBAでの回答の可否】いいえ 可 ある特定のセルの入力履歴を取って ドロップダウンリストに表示するようには出来ないのでしょうか VBAで出来るなら具体的な方法を教えて貰えるとありがたいのですが
ヒント: SelectionChange イベント(これでいいか?) あとレジストリかファイルに出力汁。 リスト出力時はファイルかレジストリを読め。 (読み込み・保存はファイル開く時・閉じる時だけでいいかも)
>>478 単に入力した文字列をドロップダウンリストに溜めていくだけなら
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then
Dim buf As String
With Target.Validation
On Error Resume Next
buf = .Formula1
.Delete
.Add Type:=xlValidateList, Formula1:=Target.Value & "," & buf
.ShowError = False
End With
End If
End Sub
で出来ますが、これだと項目が重複したりリストが長ったらしくなったりするので、
項目が重複しないようにして、履歴の最大数を指定できるようにしたものを次レスあたりに貼ります。
両方とも使い方は、シートタブを右クリックして「コードの表示」を選択、表示されたところにコピペするだけです。
"A1"の部分で履歴を取る対象セル、下のコードは「Const n As Byte = 20」の部分で履歴数を指定します。
>>478 >>481 の続きです。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then
Const n As Byte = 20
Dim foo() As String, bar As String, buf As String, i As Long, j As Long
With Target.Validation
On Error Resume Next
foo = Split(.Formula1, ",")
bar = Target.Value
buf = bar
j = 1
For i = 0 To UBound(foo)
If bar <> foo(i) Then
buf = buf & "," & foo(i)
j = j + 1
If j = n Then Exit For
End If
Next i
.Delete
.Add Type:=xlValidateList, Formula1:=buf
.ShowError = False
End With
End If
End Sub
コードで入力してあるものを、対応表に従って商品名に変換したいのですが、 やっぱそういうのはマクロですよね。(当方全くマクロわからないです) 対応表はA列にコード、B列に品名があり、 変換したいシートはC列の4行目以降にコードがあります。
>>483 Dim i As Long, j As Long
With Worksheets("対応表")
For i = 4 To Cells(65536, 3).End(xlUp).Row
For j = 1 To .Cells(65536, 1).End(xlUp).Row
If Cells(i, 3).Value = .Cells(j, 1).Value Then
Cells(i, 3).Value = .Cells(j, 2).Value
Exit For
End If
Next j
Next i
End With
表示 > ツールバー > フォーム で、フォームツールバーを出して、「ボタン」を選択、
「マクロの登録」ってのが出ると思うので適当なマクロ名付けて「新規作成」
上記のコードを貼ってVBEを閉じる。あとはそのボタンを押せば処理を実行するようになる。
ボタンを消して、「ツール > マクロ > マクロ」から実行することもできる。
"対応表"って部分は対応表があるシート名に書き換えてね。
>>483 見当はずれな回答かも知れませんが、
VLOOKUP関数でいけるのでは?
486 :
483 :2005/07/10(日) 23:54:09
>>484 うまくいきました。
ボタンに登録する方法まで教えていただいて感謝感激です。
>>485 コードに対応する品名を別セルに表示させるならVLOOKUP関数でいけるのですが、
今回やりたかったのはコードが書いてあるセルの内容の変換なので、
VLOOKUP関数ではできません。
487 :
名無しさん@そうだ選挙にいこう :2005/07/11(月) 00:07:13
適当な文字、たとえばXとかYとかを数値として扱わせることって出来ますか? たとえばXを10、Yを20として=X*5+Yで70と出すとか セルを参照して=A1*5+A2みたいにやれってのは無しの方向で
>>487 書式 > 挿入 > 名前 > 定義
名前:X
参照範囲:=10
で、[追加]ボタンを押す。同じくYも登録。
以降、その例のように=X*5+Yという式で70を返せるようになる。
489 :
名無しさん@そうだ選挙にいこう :2005/07/11(月) 01:07:35
【1 OSの種類とExcelのバージョン】 Windos 2000でExcel2000 【2 Googleやヘルプでの検索キーワード】 tmp ファイルを削除 Excel 【3 VBAが使えるか / VBAでの回答の可否】修行中です。 質問です。 マクロを組んだエクセルシートにボタンを追加して、 D:\Program Files\testフォルダーにある、AAA.tmpという一時ファイルを 定期的に削除する為 ------------------------------------------------ Private Sub CommandButton1_Click() Kill "D:\Program Files\test\AAA.tmp" End Sub、 ------------------------------------------------- というマクロを追加しました。 .tmp一時ファイルはまた生成されてますが、 正しい方法でしょうか?ご意見ください。
AAA.tmpファイルを消すって点では正しい方法だけど、 AAA.tmpを作成してるのもExcelのマクロなら、 必要なくなった段階で自動的に消すようにした方がいいでしょ。 その辺は情報が無いからどうなのか知らんけど。
491 :
名無しさん@そうだ選挙にいこう :2005/07/11(月) 01:49:35
>>490 ありがとうございます!
AAA.tmpを作成してるのはExcelのマクロではないのですが
毎日自動的に消す方法も考えてみます。
492 :
名無しさん@そうだ選挙にいこう :2005/07/11(月) 10:04:37
【1 OSとExcelのバージョン】 Win98SE Excel2000 【2 Googleやヘルプの検索】 Excel 現在選択 セル 書式 【3 VBA 使用/回答の可否】 使えるが、使用しない方向での回答希望 質問内容 データチェックです A列を見て、該当があればH列とZ列にチェック項目を入力する作業をしています ウィンドウ枠の固定でA・H・Z列が同時に見えるようにしているのですが A列を探して、H・Z列をマウスで選択する時にどの行かわかりにくいので 現在選択している行のA・H・Zセルを条件付き書式か何かで色を付けたいのです 例としては A2を選択しているとき→H2・Z2が黄色になっている A3を選択しているとき→H3・Z3が黄色になっている A4を選択しているとき→H4・Z4が黄色になっている よろしくお願いします
493 :
名無しさん@そうだ選挙にいこう :2005/07/11(月) 10:59:56
お伺いします。 エクセル2003、WINXPを使用しています。 あるセルにデータが表示されたときに効果音を出したいのですが、どのような設定をすれば音が出るのでしょうか? よろしくお願いいたします。
>>492 VBA使わないと無理
ってか、A2セルではなく2行目のインデックス選択すれば良いだけでは?
H、Z列以外も色が付くけど、位置を追うだけならそれで充分だろ
>>493 こちらもVBA使わないと無理
"データが表示"ってのが、入力なのか数式なのか
数式なら具体的にどんな式なのかわからないと
具体的な方法は教えようが無いけど
>>493 つーか、もしかしてパワポのほうがよくなくない?
【1 OSとExcelのバージョン】 Win XP Excel2003 【2 Googleやヘルプの検索】 セル 書式 行 列 【3 VBA 使用/回答の可否】 本を見て何とか使える 質問内容 アクティブセルの列を取得したい。 アクティブセルが B5だったら B D8だったら D よろしく、お願いします。
質問しようと思いましたが、 プロレスラーの橋本が亡くなったみたいなので 芸スポ+見に行きます。 質問はまたにします。
>>496 269でも書きましたが、
Dim foo As Integer, buf As String
foo = ActiveCell.Column
If foo > 26 Then buf = Chr((foo - 1) \ 26 + 64)
MsgBox buf & Chr((foo - 1) Mod 26 + 65)
で、列番号ではなく列名が取得できます。(* 1は余計でした)
又はAddressプロパティの返す値を文字列操作して
MsgBox Left(ActiveCell.Address(0, 0), CLng(ActiveCell.Column < 27) + 2)
MsgBox Mid(ActiveCell.Address, 2, InStr(2, ActiveCell.Address, "$") - 2)
とか。これはどちらも1行のみで動きます。
しかしこんな面倒なことをしなくても、Cellsプロパティを使うことで
目的を達成出来るような気がしますが。
Cells(5, 2)で、Range("B5")と同じ意味であり、
Cells(1, ActiveCell.Column)で、アクティブセルがある列の
1行目という意味になります。(勘違いだったらスミマセン
499 :
492 :2005/07/11(月) 16:34:45
>>494 やはりそうですか、ありがとうございます。
人に渡すファイルだったのですが、セキュリティーを高く設定している上
マクロウィルス対策でマクロを有効にしないようなので困っていました
安全だからと説得して、VBAで処理します
デジタル署名でも使えばいいじゃん
>>496 ありがとうございます。助かりました。
>しかしこんな面倒なことをしなくても、Cellsプロパティを使うことで
>目的を達成出来るような気がしますが
自分の目的はアクティブセルの右隣の6列を選択する事です。
例えば、アクティブセルがD5だったら、
Range("F:K").Select という事がしたかったのです。
502 :
501 :2005/07/11(月) 16:57:21
レス番号を間違った、失礼。
496じゃなく498です。
>>498 ありがとうございます。
>>501 それなら
Range(Columns(ActiveCell.Column + 1), Columns(ActiveCell.Column + 6)).Select
でもその例だと「アクティブセルの右隣の6列」ではなく「アクティブセルの2つ右隣のから6列」ですね。
その場合は+ 2、+ 7で。
504 :
493 :2005/07/11(月) 18:15:01
下の質問をしたものです。ネット繋ぐことが出来なく、お返事遅くなりました。 >お伺いします。 >エクセル2003、WINXPを使用しています。 >あるセルにデータが表示されたときに効果音を出したいのですが、どのような設定をすれば音が出るのでしょうか? >よろしくお願いいたします。 楽天証券のリアルタイムスプレッドシートをアドインに入れて、 自動的に株価を出しているのですが、10分前の価格と現在の価格を比べて -1.0%以下なら、その下落率をセルに「-1.5%」というように出力する、という仕様のシートを作成しました。 その下落率が出力されたときだけ、注意を引けるように効果音を鳴らせると便利だと思ったのですが、 調べてもよく分からなかったもので質問させていただきました。
>>504 音を出させること自体はVBAで簡単に出来る
Sub test()
Beep
End Sub
あとはそれをどのタイミングで実行するかは、そのシート(ブック)見ないと具体的な方法は教えられないな。
ブックをうpして具体的な方法を聞くなり、自分でなんとかするなりお好きなように。
506 :
名無しさん@そうだ選挙にいこう :2005/07/11(月) 19:50:26
【1 OSとExcelのバージョン】 Win98 Excel200o 【2 Googleやヘルプの検索】 VBE プロパティー ウィンドウ フォント 【3 VBA 使用/回答の可否】 なんとか使えます VBEのプロパティーウィンドウ内の文字がいつの間にか 行書体になってしまって大変見にくくなりました ツール>オプションとかも見ましたがプロパティーウィンドウ内の フォントを変更する項目が見あたりません 元に戻るのでしょうか? また、プロジェクトウィンドウ内の文字も Microsoft Excel Objectは通常のゴシック体ですが This Workbook は行書体です ウィルスでしょうか?
ウィルスかどうかはしらんが、Excelではなくシステムの問題だろう。 MSにでも問い合わせてみれば?
>>491 (1) テキストエデイタを開けて、下記の1行をコピー。
del "D:\Program Files\test\AAA.tmp"
(2) 拡張子を .bat にして適当な名前で適当な場所に保存。
(3) (2)をスタートボンにドラッグして、
プログラム→スタートアップ→開いたところにドロップ。
これでスタートアップに登録される。
あとは Windows が起動されるたびに実行される。
>>507 事実だとしてももう少し柔らかい言い方できませんか?
510 :
名無しさん@そうだ選挙にいこう :2005/07/11(月) 23:10:23
C:\aaa.xlsとD:\bbb.xlsの二つのファイルがある場合で、 aaa.xlsのSheet1のC1には D:\ bbb.xlsのSheet1のD1には 1000 と書かれている。 aaa.xlsのSheet1のA1に式を入力し、d:\bbb.xlsのD1(1000)の値を参照したい時、 ='C1&[bbb.xls]Sheet1'!D1 では、なぜ無理なのか教えてくださいませ。
ウィルスかどうかは、寡聞にして存じません。 しかし Excel というより、むしろシステムの問題かと思われます。 そこで、マイクロソフトにお問い合わせになってはいかがでしょうか?
>>509 それは、貴方の心にとげが有るから
きつく感じるのでしょう。
507さんは、いい人だね。
>>510 間違ってるから。
=C1&[bbb.xls]Sheet1!D1
513 :
名無しさん@そうだ選挙にいこう :2005/07/11(月) 23:38:47
510です
>>512 早速の回答ありがとうございます。
C:\1000と表示されました
514 :
名無しさん@そうだ選挙にいこう :2005/07/11(月) 23:40:55
質問です。 win98・office98使用 で作ったExcelファイルを、officeXP使用のPCで開きたいのですが可能でしょうか?
さあ? win版のoffice98なんて使ったこと無いのでわからん Ofiice97とOffice2000のExcelファイルなら、OfficeXP(Excel2002)で普通に扱えるけど。 まあ、一部互換性のない部分のあるかもしれんが。
516 :
名無しさん@そうだ選挙にいこう :2005/07/12(火) 00:02:16
, -'"´  ̄`丶、_ ,.∩ `ヽ 〃∪'´ ̄`二二人\ ヽ | ツ´ ̄ ̄ ̄ ̄´ ヾ ヽ. ', |ハ ,ニ、 ,. - 、 | | | l | | ハ ィハ ,二ヽ. | | | | | 同じ板にコピペするとそのままだけど、 | | | じ' |トJ〉 /)} l | 違う板にコピペすると鬼のような怖い顔 | ハ 、'_,  ̄,, 厶イ川| に変わる摩訶不思議な佳子様コピペ。 l l /\ .. イV\川 | ,' l l ,イ `l ̄´ / /ヽl l l | l ハ `メ、 〃 ヽヽ、__ノ l ∨ └‐イ「ト--ァ'´ ハヽ__ノ ヽ/ } l」」 / / }`ー 〈_n| 八 / / /ノ 〈二二人 c /\/ / , イ / /厂 /\__>< {_
517 :
名無しさん@そうだ選挙にいこう :2005/07/12(火) 00:02:45
>>513 「C1&」って入れてるんだから当然だな。
「1000」を返したければ=[bbb.xls]Sheet1!D1
開いてるファイルならパスを指定する必要は無い。
逆に開いてないファイルの場合、別セルの値でパスを補完することはできない。
D:\bbb.xlsを開いて=[bbb.xls]Sheet1!D1
とするか、D:\bbb.xlsを開かずに参照するなら=D:\[bbb.xls]Sheet1!D1
とするかのどちらかだな。
>>516 頭の皿が取れてる
鬼以上に怖い ガクガク((( ;゜Д゜)))ブルブル
520 :
名無しさん@そうだ選挙にいこう :2005/07/12(火) 00:11:30
510です。
>>518 やっぱ、D:\bbb.xlsを開かずに参照するには
=D:\[bbb.xls]Sheet1!D1 しか方法無いんですかね。
文字列の結合しまくって、参照したすぎなんですが。
どうもありがとうございます。
521 :
名無しさん@そうだ選挙にいこう :2005/07/12(火) 01:37:45
質問です。 X Y 5.0 21.7 10.0 35.7 15.0 48.4 20.0 60.6 ↑このような数字列で一本の直線グラフを作るにはどうしたら良いですか? グラフでやると折れ線が二本とかになっちゃうんですが・・ 教えてください。お願いします。
522 :
名無しさん@そうだ選挙にいこう :2005/07/12(火) 01:49:01
Y 5.0 21.7 10.0 35.7 15.0 48.4 20.0 60.6 Xを消せ
523 :
名無しさん@そうだ選挙にいこう :2005/07/12(火) 01:56:04
>>522 出来ました!!文字が余分だったんですね。
ありがとうございました!
525 :
524 :2005/07/12(火) 02:53:27
というか、SR1も当てていないのか? SR1を導入後、SP3を当てるべきかな?
526 :
501 :2005/07/12(火) 08:44:57
>>503 ありがとうございます。
とても勉強になりました。
シートを挿入し、その増設したシートに別のシートの書式、列幅、行幅、書式設定を コピーしたいのですが、うまく出来ません。 1シート目にミリ単位で調節して作ったシートを何とかコピーしたいのですが コピーすると全くずれた変なものになってしまいます。 助けてください。
シートの新規作成→内容をコピー じゃなくて、シートそのものを複製すれば?
1つのワークブック内でシートの完全コピーをする方法がわかりません。・゚・(ノД`)・゚・。 10くらいコピーを作りたいのです。
すみません、シートのコピー出来そうです。 編集のところプルダウンしたらありました。 いままでずっとプルダウンしないまま(気が付かないまま)だったので。。
つーかCtrl押しながらシート名のタブをドラッグしてもいいし、 右クリしてメニーから移動えらんでコピーにチェック((略)
532 :
名無しさん@そうだ選挙にいこう :2005/07/13(水) 00:31:36
【1 OSの種類とExcelのバージョン】office2003 【2 Googleやヘルプでの検索キーワード】Excel 書式 結合 【3 VBAが使えるか / VBAでの回答の可否】不可 他人がそれぞれ集めてきてもらった数値などをexcelを使って物を一つにしてまとめる作業をしているのですが 一つの数値が複数ある場合にセルの中で改行している人と、セル自体を改行している人がいてバラバラになって しまうのですが、高さなどをまとめる方法ってないでしょうか? 書いてある順番は同じなのですが・・・。 |-------------------------------------------- | | | | | | |-------------------------------------------- | | | | |___| | |△△ | | △△ |___| | | | | |___| | | | | |___| |------------------------- | | | | | | ------------------ | |□□ | | □□ |___| | | | | |___| | | | | |___| |--------------------------| |___| | | | | | ___| |-------------------------------------------- ↑中で改行 ↑セルで改行 すいません、わかる方いたらお願いいたします。
> 【3 VBAが使えるか / VBAでの回答の可否】不可 頼むから、VBAが使えないってことなのか、VBAコードでの回答は不可なのか、はっきりしてくれ ついでのその図が何を意味してるのかも説明よろしく
534 :
名無しさん@そうだ選挙にいこう :2005/07/13(水) 01:26:06
>>532 が
ロードランナーの画面かと思ったのはおれだけか?
535 :
名無しさん@そうだ選挙にいこう :2005/07/13(水) 02:49:06
>>533-534 あ使えません、わかりにくくてほんとにすいません。ロードランナーってファミコンですか?
セルを行ごとに統一したいってことなのですが・・・。
536 :
名無しさん@そうだ選挙にいこう :2005/07/13(水) 03:25:46
任意のセルをクリックするだけで、そのセルにマクロ1を実行する というような便利なVBAプログラムは存在しますか?
>>535 質問は日本語でいこうぜ。
>>536 「任意のセルをクリックしたら」ではなく
「任意のセルを選択したら」なら存在する。
まあ、通常は「クリックしたら」と大差ないが、
A1を選択した状態でA1をクリックしてもなにも起きない。
変わりに「ダブルクリックしたら」とか「右クリックしたら」等がある。
「クリックしたら」が良ければ、ボタンを配置すればいいだけのことだからね。
538 :
名無しさん@そうだ選挙にいこう :2005/07/13(水) 03:40:36
あるのか! 任意のセルをダブルクリックしたらマクロ1を そのセルに実行するには、どうしたらよろしいでしょうか。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Call マクロ1 End Sub 任意のセルをダブルクリックしたらマクロ1を実行。 「そのセルに実行」というのが意味不明だが、Targetでダブルクリックされたセルを取得できるので 引数で渡してもいいし、引数渡さずにActiveCellを使ってもいい。 その辺はお好きなように。 これ以上の回答が欲しいならマクロ1の内容をそのまま貼れ
540 :
名無しさん@そうだ選挙にいこう :2005/07/13(水) 04:06:20
ありがとうございます! エラーばかりで…。 VBAを勉強してきます。 Private Sub と入力した時や AS と 入力したらエラーが起こります。 出直してきます。
>>533 その違いを明確にしても回答は変わりませんね。
VBAで処理するのに最低限の知識はセキュリティリスク上必要だと 過去レスで何度も言われているわけだ。 (3)について適切な記述ができない質問者は、そもそも問われていることの 意味が理解できていないのではなかろうか? そういった質問者に対してVBAによる回答をすることは適切ではなかろう。 自分の知識を開陳したいだけなら他所でやればよいのであって、 質問者に役に立つ回答でなければ意味がないと思うのだけど? ま、あくまで仮定の話、だけどね…。
> 自分の知識を開陳したいだけなら他所でやればよいのであって、
> 質問者に役に立つ回答でなければ意味がないと思うのだけど?
VBA全くわからないって質問者が、VBAでの回答で大満足するケースも多々あるのだが、
VBAでの回答に過度の嫌悪感を持ち、「知識をひけらかしてるだけ」とか言ってる奴って
結局VBA使えない奴の負け惜しみでしょ。
VBA使うのを嫌がってる質問者に、何でもかんでもVBAでの処理を強制したり、
自分でコード書けってのは「役に立たない回答」かもしれないけど、
VBAでの回答の可否を聞き、「可」と答えた者にVBAコードで回答するのは
「質問者に役に立つ回答」であることは間違いない。
確かにVBAでの回答の可否すら答えられない質問者には、VBAでの回答は不適切かもしれないが、
はっきり言って現状では「VBAでの回答の可否」をきちんと聞いてるとは言えない。
これは
>>1 の責任だけではなくテンプレ考案した奴の責任でもある。どちらも思慮が足りなかった。
本当に質問者の求めるものを追っていくなら、「VBAでの回答の排除」ではなく
「VBAでの回答の可否をきちんと問うこと」が正しいのは言うまでもないよね。
>>543 そのとおり。
ただ、だからこそ「VBA?言葉の意味すらわかりません」というレベルの質問者が居る現実をふまえて、解答者がたった一言、「VBAでもいい?」と聞いてあげるだけでいいのでは?
反応が無ければコード書く必要もない訳だし。
>>540 >Private Sub と入力した時や AS と 入力したらエラーが起こります。
当然です。
546 :
エクセル初心者 :2005/07/13(水) 12:37:19
携帯から失礼します。セルB1に入力規則でリストを設定した時刻が幾つかありその中から時刻を選択するとA1にその時刻に対応する語句が自動入力される方法はないでしょうか?
>>546 「時刻に対応する語句」の表をどこかに作り
VLOOKUP関数で引っ張ってくる。
詳しくはヘルプ参照
548 :
エクセル初心者 :2005/07/13(水) 12:59:21
547ありがとです。それだと対応する語句は右にないとダメなのでは?対応する語句が左にあっても大丈夫な方法はないでしょうか?度々申し訳ないです。
また情報後出しか┐(´_`)┌
>>548 INDEX関数+MATCH関数
>>549 どこが情報後出しか不勉強な俺に教えてくれない?
まさかとは思うが、「表示したいセルがVLOOKUPの引数になるセルの左側にあること」じゃないよね?
それは日本語が理解出来る人なら
>>546 を見れば「時刻がB1、表示したいのがA1」っていう時点で一目瞭然だし。
おそらく
>>549 には俺が想像もつかない後出し情報が隠されてるんだよね?
今日は以外と涼しいのに、何故か熱い子がいるねw
温度上げてスマンw いや、俺もたまに解答してる身として、純粋に知識向上の意味で聞いてみただけなんだがww
Excelが理解出来る人なら、 「セルB1に入力規則でリスト」、「A1にその時刻に対応する語句が自動入力」だけでは 数式を入れるセル(A1)とVLOOKUPの第一引数(B1)しか情報が出てないってことに気付く。 「対応する語句は右にないとダメ」というのは、第二引数の範囲(「時刻に対応する語句」の表)のことであり、 これについては一切情報が書かれてない。たとえば A B C D 1 =数式 DDリスト 時刻1 対応する語句1 2 時刻2 対応する語句2 3 時刻3 対応する語句3 なら、=VLOOKUP(B1,C1:D3,2,0)で可能。
サンキュー。 俺は単に質問者がVLOOKUPの使い方を知らないだけで、努力して調べた「左端」の意味あいを勘違いしただけだと思うがどうだろう?
555 :
名無しさん@そうだ選挙にいこう :2005/07/13(水) 14:43:41
説明がうまいのと説明が好きなのは違うからなあ。
(´-`).。oO( 555は何処の誤爆だろう… )
煽り口調だったり"ww"なんて付けてたりしたと思ったら、急に低姿勢になったなww 可愛いもんだww
558 :
542 :2005/07/13(水) 14:59:36
>>543 あつーいリアクションがきたので一言だけ。
論点、ずれてるよ。
揚げ足とりはやめてね。
officeのアップデートを途中でやめたら excelを起動するたびにCDをいれろっていわれちゃうんだけど、、、どうしたらいい?;;
>論点、ずれてるよ。
>揚げ足とりはやめてね。
二言に見えるのは気のせいですかそうですか
つーか543の何処が揚げ足取りなんだろう?
揚げ足取りってのは俺みたいのを言うんだぞ
熱さで言ったら542も負けてないし、543の言ってることはかなりまともなことに聞こえる
俺としては回答者としても質問者としても
>>543 のような方向になってくれることを切に願う
>>557 おまえ暑くて頭にウジでも湧いてるんじゃない?
>>560 ま、それを言うなら542は自分が暑くないとは書いてないとも言えるな
それに543のような展開が望ましくないとも書いてないしな
くだらねぇな、この煽りあい
【1 OSの種類とExcelのバージョン】officeXP 【2 Googleやヘルプでの検索キーワード】Excel 結合 シート 【3 VBAが使えるか / VBAでの回答の可否】 可 一つのブックに、同じ書式でシートが20枚ほど入っております。 これを一つのシートに纏めたいんですが、コピペじゃない一括処理できませんでしょうか? 元データが20ほどのブックで、結合ツールで1ブックに纏めたものの 結果シート単位になってしまった、って感じです。ですんで、複数ブックを一枚の シートにする、なんて方法でもokかと思います。 よろしくお願いします
> くだらねぇな、この煽りあい 本人が言うなよ
>>563 出来るだろうけど、それだけの情報じゃ具体的な方法は教えられないな
どういうデータでどの方向にどどのようにまとめたいのかとかがわからないと
たとえば
「A列〜C列に隙間無くデータがあって、行単位でセルの値のみを」
「1〜10行目にデータがあって、2行目以外は空欄もあり、列単位でセルの値と文字色を」
みたいなかんじでさ
具体的なやり方聞きたいなら、具体的な情報と要望を開示しようぜ
出来るか出来ないかだけわかればあとは自分でやるってなら情報なんてどうでもいいけどさ
>>563 Dim Sc As Integer, Rc1 As Integer, Rci As Integer
Dim i As Integer, j As Integer
Sc = ThisWorkbook.Worksheets.Count
For i = 2 To Sc
Rc1 = Worksheets(1).UsedRange.Rows.Count
Rci = Worksheets(i).UsedRange.Rows.Count
For j = 1 To Rci
Worksheets(1).Rows(Rc1 + j).Value = Worksheets(i).Rows(j).Value
Next j
Next i
単純に2枚目以降のシートの内容を、順次1枚目のシートの下に追加するだけ。
細かい条件はよく分からんので、自分で工夫汁。
567 :
542 :2005/07/13(水) 17:05:18
>>543 と
>>544 が同一の人間と仮定して
>VBA全くわからないって質問者が、VBAでの回答で大満足するケースも多々あるのだが、
多々あるにしてもそれが危険なことがあると過去レスで度々指摘されていませんか?
前提を無視したらいくらでも我田引水できますね。
>はっきり言って現状では「VBAでの回答の可否」をきちんと聞いてるとは言えない。
「きちんと聞いている」のはテンプレの文言をみれば明らかです。
>これは
>>1 の責任だけではなくテンプレ考案した奴の責任でもある。どちらも思慮が足りなかった。
どちらの責任でもありません。強いて言うならば質問者のスキルと姿勢の問題ですね。
>「VBAでの回答の可否をきちんと問うこと」が正しいのは言うまでもないよね。
VBAとはなんぞや?という人間にそれを問うこと自体が無効です。
>ただ、だからこそ「VBA?言葉の意味すらわかりません」というレベルの質問者が居る現実をふまえて、解答者がたった一言、「VBAでもいい?」と聞いてあげるだけでいいのでは?
反応が無ければコード書く必要もない訳だし。
書きたければ書けばよいし、書きたくなければ書かなければよいでしょう。
「こういうことならできるけど」という形で質問の意図を斟酌して回答者に提示するのは、全くの無駄ですか?
568 :
563 :2005/07/13(水) 17:23:13
>>565 そおなんですか。もっと機械的なバッチみたいなの考えてました……。
データは
A B
1 文字列 文字列
2 文字列 文字列
3 文字列 文字列
〜
60
の羅列ってなデータベースです。途中空白は無し、文字列が全部埋まってて色なんかは全て無視してくれてokです。
全てのシートが縦60横2で統一されてるデータです。
こんな感じでいいでしょうか?
>566
どうもありがとうございます。とりあえずこれから試してみます。
やって欲しい挙動的に問題はなさそうですね。
【1 OSの種類とExcelのバージョン】XP 2002 【2 Googleやヘルプでの検索キーワード】Excel リストボックス 小さく 【3 VBAが使えるか / VBAでの回答の可否】 可 1つのシートに30個のリストボックスがあるのですが、 リストボックスの高さと幅を設定しセーブ後ブックを開くと いくつかのリストボックスの高さと幅が小さくなってしまいます。 小さくならないようにするにはどうすればよいでしょうか。
>
>>543 と
>>544 が同一の人間と仮定して
ここまで読んで、以後の文を読む必要がないと判断した
━俺用しおり━━━━━━━━━━━━━━━━━━━━━━━━━ こ こ ま で 読 み 飛 ば し た ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
572 :
名無しさん@そうだ選挙にいこう :2005/07/13(水) 17:51:26
542は何か嫌なことでもあったのかなぁ・・・ あっ、言い負かされたことが"嫌なこと"か 納得納得
VBAスレを立てて、そこに誘導すれば?
>>570 >>572 こんな見苦しいことしてまでスレを私物化したいかね〜。
みっともない。
そんな概念そのものがないんだろうな。
>>573 それで解決すると思ってるの?
思ってるならかなりのバカだ。
思ってないのにそれを書いてるならかなりのアホだ。
ちょっと前にも議論・雑談スレ立ったでしょ。
んで、このスレの議論・雑談は無くなったかい?
VBAしか使えない人間はIT業界では馬鹿にされるが、素人相手には十分威張れる。 そいつらにとって、このスレは居心地が良いのだろう。
と、VBAすら使えない子が吠えています
>>543 の方向でいいじゃん
とりあえず最初の質問時にVBAでの回答の可否を書いて貰う(テンプレと同じく強制ではない)
その上で、可ならVBAも含めた回答を返せばいいし
否かわからないってならVBA以外の回答を付ければいい
ただ、現時点ではVBAの回答の可否を問われてることにすら気付いてない人も多いだろう
テンプレ3の項目を別行に分けるか、説明や書き方の例を入れてわかりやすくしよう
VBAの回答自体を止めたり、VBAスレを独立させるなんて質問者に対するデメリットの方が大きい
>>573 Excel VBAスレがあればいいじゃん
こっちでのVBAを使う回答はNGにすればOK
>>581 > ちょっと前にも議論・雑談スレ立ったでしょ。
> んで、このスレの議論・雑談は無くなったかい?
> VBAの回答自体を止めたり、VBAスレを独立させるなんて質問者に対するデメリットの方が大きい
>>580 現状は質問者にとってもまともな回答者にとっても不幸だと思うけど
他人をなじりたいだけの似非回答者がここにいる限り解決しないね
テンプレ弄っても同じだよ
それこそ奴の思うツボだろう
心機一転、さぁ次の質問どうぞ
>>590 こういう馬鹿が要る限り何やっても無駄かもしれないね。
VBAを排除しようとしてるのは、VBAすら使えない初心者回答者 質問者から見たら、強制されるわけじゃなければVBAでの回答もあったほうがいいのは当然 VBAでの回答をありにすると自分の出る幕が無くなるからってだけで禁止にしようとするなよ
おまえら、VBA程度のことで大げさに騒ぎすぎw こんなもんが使えただけで自慢になるとか思ってる奴は 知識も人間性もどうしようもなくしょぼいなww なんの自慢にもならないようなものでも、それを知らない人の役には立つんだから それでいいじゃんwww VBAごときに劣等感剥き出しで過剰に反応しすぎだよwwww
反論できないとき、図星のときは 相手を基地外あつかいが手っ取り早い 自尊心を守るために(w
VBAは別スレでって言ってる方に質問。
別スレ立てて、ここでVBAでの回答を禁止にしても、
このスレでのVBAでの回答も議論も続きますが、それをどうするおつもりなのですか?
一部の人(もしくは一人?)がVBA禁止を掲げても、それになんの制約もありませんけど。
たとえば
>>1 に【質問にはテンプレ必須】と書いても、
テンプレ使わずに質問を書き込むことは現実として可能なのと同じです。
その点に置いて完璧な策ありならVBAを別スレにするのも悪くはないと思うけど、
それが出来ないなら、VBAスレ立てても、ここを更に荒らす要因を増やすだけの結果に終わるよ。
梅雨あけはまだなのに、ヒートうpしてあっちっちってやつ?プ
だな。 劣等感の固まりって感じか。
ここは質問者の為のスレだろ。 質問者にとって何がメリットになるか考えてみろよ ★テンプレ 必須→煩わしいと感じる奴もいる 無し→情報として何を書けばいいのかわからない場合回答へ遠回りになることがある 自由→情報として何を書けばいいのかわからない場合、とりあえず埋めておけば、 問い返される可能性を減らせる=即答してもらえる確率が上がる 煩わしければ使わなければいいだけ ★VBAの回答 無し→VBA使わないと出来ないことで、VBAでもいいって場合は、別スレに同じ質問を書き直さなくてはならなくなる。 ここでVBAの回答が欲しくてもスレ違いと追い出される。 有り→VBAの回答の可否を答えていれば(または問われて答えれば)そのままここでVBAの回答が貰える。 VBAの回答は任意で拒否出来る。 漏れはテンプレ自由、VBAでの回答有りが一番いいと思うが。
>>579 VBAが使えることをプログラム技術板で自慢してこいよ。wwww
>>610 激しく尿意
なにもVBAをNGにする必要なんてねーだろ
>>578 このスレからではなくこの世からVBAが無くなるといいね。
そうすれば君は劣等感なんて感じずに済むから。
いっそ解答者はコテハン推奨にすれば? 丁寧な人は尊敬集めるし、必ず刺のある言いかたする人もそれなりにキャラが確立されるし。
> コテハン推奨
そういうことにするのは構わないけど、従わない人がほとんどだろうな。
>>598 の言うようにテンプレ厳守にしてもテンプレ使わない質問者は出てくるし
VBA禁止にしてもVBAで答える回答者は出てくる。
そして回答者にコテ推奨にしようと厳守にしようとほとんどの奴が使わないだろうし
逆にいくつかのコテを使い分けるような奴が出てくるだろう。
NGキーワード _Private_Sub_ _End_Sub_ _End_Function_ _Dim_ _Then_ _Sheets( _Range( _Cells( _MsgBox_ .Value_ VBAでの回答を見たくない奴はこのへんとかを設定しておけ 個人的な劣等感で周りに迷惑掛けるな
VBAで回答、俺はいいとおもうな。 極論言えば、質問者がVBAでの回答を望んでない場合でも、一般機能での回答プラス、「ちなみにVBA使えばこんな感じ」ってのは大歓迎。 何故なら、もちろん最優先されるのは質問者本人だけど、その影には似たような質問を抱えた、VBAでの回答を希望する人が居る可能性があるからっていうのが一つ。 もうひとつは、俺のようなVBA勉強中の人間にとっては、いろんな実例のコードに接する絶好の機会だから。
正直どっちでもいい。 ただ強いて言えば、通常機能で普通に解決できる問題にまで VBAを持ち出すのは、うざったく思わないでもない。
VBAでの回答はOK VBA厨が回答するのはNG
どっちでもいいけど…VBA 昼間に暇な人が多いんだなぁと思う今日この頃 みんなどんな仕事してる人?
615 :
544 :2005/07/13(水) 21:33:18
たいへん遅レスで申し訳ないが、今帰宅して見たらご指名あるようなのでレスを。
>>542 ちょっと思い込み激しすぎじゃないか?
信じるかどうかは別として、俺は明らかに
>>543 とは別人だが?
いくら自分が普段自作自演してるからって、周りの人間が全て
自作自演してるわけじゃないぞ?
それとあんたの
>>567 でのレス、矛盾してないか?
>>543 へのレスは、賛否は別として筋が通っているけど、
それと、俺へのレスの
>書きたければ書けばよいし、書きたくなければ書かなければよいでしょう。
>「こういうことならできるけど」という形で質問の意図を斟酌して回答者に提示するのは、全くの無駄ですか?
重箱のすみつつく様なまねはしたくないんだが、「回答者に提示」は「質問者に提示」だよな?
それはともかく、あんたは
>>543 へは、「VBAという言葉すらわからん人にコードを提示するのは危険だから辞めたほうがいい」って意見だよね?
なのに俺には、「こういうことなら出来るけどと提示するのは無駄ではない」と言ってるわけだよね?
明らかに矛盾が生じてる気がするんだが。
>>542 以外の皆様、粘着してるようで申し訳ないが、ほんとさっき帰宅したばっかで、ちょっと気になったので長文レスをお許しを。
>>612 そーか?
たとえばVBAででもVBAを使わなくても解決できる問題が有ったとしよう。
そして、VBAでのやり方を教えられる奴は居るけど、
VBAを使わずに処理する方法を教えられる奴は居なかったとする。
全ての質問者がVBAを使わず解決できるはずの問題だから、VBAでのやり方を教えないでくれと思うかな?
VBAが使えない環境じゃなければ、とりあえずVBAでの方法を教えて欲しいと思う人も居るんじゃないかな?
一質問に回答は一度きりってなら話は別だけど、いくつでも回答を付けられるんだから
とりあえず情報としてVBAでの方法を教えるのもいいんでないか?
あとは急いでればそれを使うなり、急いではいないけどなるべくVBAでの方法は避けたいってなら
「VBA使わない方法ご存じの方が居ましたらよろしく」とか書いて、もうしばらく待つなりは質問者の自由なんだから。
>>616 尿意催しました。
ケツの中に放尿していいですか?
>>616 そうは思わないな。
スレの空気というものもあるだろうし。
一度レスが付けば質問者は「あぁこういうもんか」と思って次の回答を待つことはあまりないんじゃないかな。
これは一度で的確な回答をする義務があると言ってるわけじゃないよ。
一度回答が付いている質問に再度回答を別途付けることも、特に必要がなければあまりやることじゃないだろうしさ。
で、これを解決するには(3)のテンプレを。。。となるのだが、いくら改良しても無理だろう。
誰かが上で書いてたけど、何を書いても、禁止しても無駄という結論になりそうだ。
スレの空気が落ち着けば自然と解決するような気もするけど、当分無理っぽいね。
>>616 レベルによるな。
単純に関数をネストすれば一般機能で答えられるようなもので、
わざわざコード書いたら逆に遅くなるようなイベントなんかは、
無理にVBA使うのはどうかと思う。そういう場合は
>>612 に同意。
まあ、
>>611 みたいにがんばってる奴もいるから、全く無駄とは言わないが。
>>611 そういう姿勢は見てて気持ちよくなるよ。勉強がんがれ。
>>598 その「別スレでって言ってる方」ではないんだけど、それもひとつの方法だと思うよ。
とりあえず「テンプレ必須はルールだ」といって騒ぐようなタイプの人は、別スレ誘導をルールにすれば守ってくれるんじゃないかな。
問題なのはVBA云々より、ここを遊び場にしたがってる回答者の役に立たない(?)なげやりな回答をしてる一部の厨房のような気がする。
VBAで回答で満足したならそれでいいじゃん ここはどういうときになにを使うのが最良かを教えるスレじゃないので、 とりあえず問題を解決する方法を提示するのが優先だと思う 不満があるなら616の言うようにVBA以外の回答を催促すればいいし 最良の方法で無いにしろ問題が解決したならそれでよしだろ Excelの全てを理解してる人なんて、MSの開発陣にすら居ないだろうから 「もっと良い方法が有るかも」なんて考えたら誰も回答出来なくなる 回答者は自分の持つ知識の中で答えられる質問に答えればいいだけ (・分かる人はできるだけ回答して下さいませ。 ですよ
>>622 あんまりそういう「催促」ができるような空気じゃないと思うんだけどな〜。
基本的には同意。
何揉めてんだよ 相談所を一般とVBAに分けなよ
>>620 この板の住人がこんなこと言ったらいけないかもしれないけど、
わざわざこの板にVBAのスレ立てなくても、ム板のVBAスレが
あるわけだし、わざわざ立てる必要ない希ガス。
誤解のないように言っておくと、俺は
>>598 同様にこのスレで一般
機能もVBAも扱うのがいいと思うんだけどね。
で、君の二段落目の実例が君のすぐ後にレスしてるような奴のことだよね?
あ、ちがうか。「遊び場にはしたがってる」けど、「なげやりな回答すらできない」一部の厨房の一人か。
>>625 そういうレスやめようぜ
無駄に荒らして楽しいか?
荒れてる状況そのものが楽しいの?
分割論が出てくるとやたら激しく反応する人がいるのはなんでだろう
分割論者が激しいから、つられて激しくなってるんじゃないか
>>628 分割論者が激しいとは思わないけどなぁ
暫く分けた方が落ち着くような希ガス
>>625 624です
必要に応じてこのスレでVBAの話が出るのは止むを得ないと思うよ
ただ、一般の人とVBAを使える人の間にはかなりの差が有るような気がするんでね
あまりVBAの話をしてると、エクセル初心者が質問しにくいだろうなと思うんだよ
>>629 それは君が分割論者だから、そう感じるだけだよ(否定するだろうけどw
>>632 そんなに拘らなくてもいいと思うけど?
俺的には、向こうの板は超初心者板ととらえてるんだけどね
初心者はあっち逝け!ってことならVBA使いはVBAスレ逝け!ってことになりかねない。
Excel総合相談所スレなんだからさ。
うまい方法考えようよ。
>>631 あんたみたいながいると荒れ放題だよ。
荒らしたいのかい?
635 :
625 :2005/07/13(水) 22:47:00
>>626 スマソ。つい反応してしまった。
>>630 スレを分けるとなると、またいろいろと弊害は出てくると思うよ。
君のあげてる「エクセル初心者」の場合を例に挙げると、
初心者だからこそVBAでしか出来ないことを一般機能のほうの
スレで質問してしまうケースも出てくるはず。
モーグとかエクセルファンクラブとか見てても、そのたびにVBAの
ほうへ誘導されてる人がいるからね。
少し前に誰か書いてたきがするけど、「質問者が混乱する、手間が
増える」って事態は極力避けたほうが無難だと俺は思う。
俺は質問者でもあり回答者でもあるけど、やっぱ質問がないことには
このスレは雑談やあおりで終わってしまうから、質問者の立場にたつこと
が大事だと思う。
スレを分けるって事は、一度した質問を再度別のスレで質問しなおす
って可能性が増えるというリスクがあると思うな。
636 :
632 :2005/07/13(水) 22:48:12
別に初心者はあっち逝けってことじゃなくて、 こういうスレもあるよって意味で書いたんだけど…怒られた。・゚・(ノД`)・゚・。
ム板にVBAスレがあるからそれでも良いと思うけど?何もこのスレだけで完結しないといけない理由はないんだからさ。
>>635 たしかに一理あるな。
実際俺もエクセル覚えたてだった10年近く前は、
「関数さえ使えばなんでもできる」って風に誤解してたしw
初心者の頃は、「エクセルで何が出来て何が出来ないか」ってのが
わからないからこそ、けっこう複雑な事も簡単にできるんではって
思いがちだったなあ。
639 :
630 :2005/07/13(水) 23:02:24
>>638 んで、エクセルの泥沼にはまるとw
(俺もそうだけどねw)
それから、どこまでが関数などの一般的機能でこなし、どこからVBAを使うかでまた悩んでしまったり・・・w
総合相談所がスレタイなんだからワンストップですめばそれに越したことはないと思うけどな
テンプレ必須、
>>1 嫁、とか後出しするなとか書きたがる一部の奴さえおとなしくしてくれたら元に戻るのに
分割は基本的に反対、状況を考えると賛成
分けても一緒だと思うよ。
「テンプレ必須」「
>>1 嫁」「後出しするな」は分割したどちらのスレにも間違いなく発生する。
>>639 俺は通常機能でできることは、なるべくその範囲で片付けるようにしている。
VBAは通常機能ではできないことと、何度も使う定型業務専用だ。
俺はVBA使わずに出来ることでも、VBAでやっちゃうことが多いな。 こういうのはどうやるのかなーなんて、ヘルプ読んだりググったりこういうところで聞いたりするより ちゃちゃっとコード書いちゃった方が速い場合も多い。 一度実行したら消しちゃうような使い捨てマクロを書くことも多々ある。 俺は「無知だからVBA多用する派」なんだよ。 それと619はワークシート関数をネストして出せるようなものにVBA使うのはナンセンスだと言うけど、 俺はあんまり長ったるしい数式になるときはユーザー定義関数作っちゃうことも多いな。 以前は数式を改行とインデントで整えて =IF( A1=1, "○", "×" ) なんてやってたけど、(そのまま書いても2行以上になるような複雑な式で) ユーザー定義関数にしちゃった方がスッキリしてファイル容量も小さく出来る場合も多い。 確かにワークシート関数よりVBAは遅いけど、ワークシート関数をネストすれば出せるようなものなら VBAで出しても人間の感覚では差を感じられない。 1000セルでユーザー定義関数を使ったってギガCUPなら0.1秒とかの差でしょ。 だからって他人にもVBAを押しつけるつもりはないけど、そういう考え方の人も居るってのも知って置いて。
>>643 納得。
万人には勧められないかもしれないが、人それぞれってことだよな。
645 :
名無しさん@そうだ選挙にいこう :2005/07/13(水) 23:35:30
回答するほうが「答えてやってる」っていう感覚がだめなんだよ。 答えは1つじゃないんだから、自分のやり方を示せばいいだけ。 その中から新たなアイデアが浮かぶ事だってあるだろ。 結局、回答者も質問者の1人なんだよ。
646 :
名無しさん@そうだ選挙にいこう :2005/07/14(木) 01:51:40
議論中すみません 【1 OSの種類とExcelのバージョン】 2000 【2 Googleやヘルプでの検索キーワード】 Excel ヘッダー フッター 左右 【3 VBAが使えるか / VBAでの回答の可否】 否 ヘッダーやフッターは印刷プレビュー画面の余白で上下の位置は設定できますが 左右の位置も設定することはできないのでしょうか? もしくは、 印刷プレビューのヘッダーやフッターの編集で時刻を設定すると、 印刷の度に更新された時刻が表示されて印刷されますが、 シート上で関数を使って現在時刻を表示させた場合に、わざわざF9で更新をしなくても 印刷すれば自動で時刻が更新されるような設定はできないでしょうか? なぜかといいますと、印刷の度に自動で時刻が更新され、かつ、その時刻表示をシート上 の他の文字列と左右の端を揃えたいからです。 こんな感じ 01:50 梶宦宦宦 本文
647 :
名無しさん@そうだ選挙にいこう :2005/07/14(木) 03:28:41
【1 OSの種類とExcelのバージョン】XP 2000 【2 Googleやヘルプでの検索キーワード】履歴 【3 VBAが使えるか / VBAでの回答の可否】はい 可 出身都道府県リスト 神奈川 東京 埼玉 千葉 群馬・・・・ 1 山田 東京 2 鈴木 神奈川 3 佐藤 千葉 4 山下 神奈川 5 田中 東京 上記のようなリストであるセルに「東京」と入力すると東京に対応した人の名前(この例だと山田と田中)がセルに表示されるような方法はありますか? なるべく関数でやりたいです。
>>646 いっそのこと、「梶宦宦宦宦vもヘッダーに入れてしまえば?
ヘッダー内で改行すれば問題なくご希望通りになると思われ。
これから質問者も回答者も自分の会社名書くことにしない?
このスレは、仕事を押しつけて楽したい人と教えたがり屋の先生たちで成り立っています。
「教えたがり屋」とか「知識自慢」とか言う奴って 自分が答えられないから負け惜しみ言ってるだけでしょ。 ここは教える為のスレなんだから、教えたがりも糞もありゃしない。 ここはスレの趣旨に添ってる人(質問者、回答者)だけで成り立たせるべきなのに 現在、議論雑談する人で成り立ってます。 と、可哀相な子に反応してまたもスレ違いな方向に持っていってしまう哀れな漏れ。
>>646 セルの中にnow入れたらファイル開くたびに更新されません?
って意味がちがうのか。
>>647 出身地に対応する人名がひとつとは限らないから、
関数だけで処理するのは難しいと思う。
それこそVBAの出番じゃない?
ただ、なんでこういう形のデータにしているのか疑問。
名前 出身
山田 東京
鈴木 神奈川
佐藤 千葉
: :
って形のリストにしたほうがずっと扱いが楽になるような気が。
>>650 このスレの先生たちが派遣社員であることがバレるからダメw
>>656 自分がそうだからって、他人も同じだと思うなよ。
>>647 > 出身都道府県リスト
が1行目なの?
> 神奈川 東京 埼玉 千葉 群馬・・・・
が1行目なの?
> 1 山田 東京
が1行目なの?
>>649 今までどんな回答したか教えてくれ。
過去ログ無いからなんて言い訳なしな。29ちゃんねるいけばDAT落ちでも見れるんだから。
まあどうせ無理だろうけど、回答してないだろうし。
いずれにせよ、もう坊やは来なくていいよ。わかりまちゅか?
100歩譲って回答した事あったとしても、お前レベルの回答なら俺や他の回答者で充分対応出来るし。
660 :
名無しさん@そうだ選挙にいこう :2005/07/14(木) 11:43:04
お世話になります。長文ですいません。 スレ違いになってしまうかもしれませんが、できればexcelで実現したいのでここで質問させていただきます。 【1 OSの種類とExcelのバージョン】winXP/2000 【2 Googleやヘルプでの検索キーワード】 不明 【3 VBAが使えるか / VBAでの回答の可否】 可 ●学校の時間割を作るとします。 ●月〜金,1限〜5限 の最大25コマまで開講できるとします。 ●科目のデータは 国語,A先生 古文,A先生 英語,B先生 ・・・(以下略) と続く表を用意します。 ●絶対守る条件として ・1科目につき、3コマ開講しなければならない ・同じ日に同じ科目を2回以上してはいけない ●可能な範囲で守りたい条件として ・同じ先生が2時限続けて授業してはいけない ・各先生の出勤曜日はできるだけ減らしたい というような条件で作る場合、どのような考え方で手をつけていけばよいのか悩んでおります。 (実際には、「B先生は水曜はダメ」など複雑な条件が加わります) 今のところ、「ランダムに表を作ってみて、条件を満たしているか検証してみる」という方法しか思い浮かびません。 数学的な問題なのであれば、その一般的な呼び名やキーワードや例題、最適な解を探すアルゴリズムが載っているサイトがあれば教えてください。(EXCELやVBAでなくても構いません)
【1 OSの種類とExcelのバージョン】WindowsXP Excel2002 【2 Googleやヘルプでの検索キーワード】 【3 VBAが使えるか / VBAでの回答の可否】ちょっとだけ A B 1 AAA aaa 2 bbb 3 ccc 4 BBB aaa 5 ccc 6 CCC bbb 7 DDD aaa 8 ddd 9 このような表があったとして、A列の項目(大文字の部分)をダブルクリックしたら その項目の行だけのこして副項目(B列のみの行)を非表示にして 再度ダブルクリックしたら表示させるってのは無理ですか? たとえばA1をダブルクリックなら A B 1 AAA aaa 4 BBB aaa 5 ccc となり、もう一度A1をダブルクリックしたら最初の状態に戻るようにしたいのです A6の場合ダブルクリックしても何も起こらないように A7の場合は8行目のみの表示状態切替で9行目以降は常に表示されてるようにしたいです 全項目一括で行うならオートフィルタを使えば良いのですが、 個別に畳んだり表示したりしたいでオートフィルタでは無理です 因みに副項目の数は不定で可変です
>>646 セルの時刻を更新する方法としては、VBAで一分毎に時刻を更新するとか、
VBAから印刷するようにして、その中で印刷前に時刻を更新するとかしか思いつかないですね。
一分毎の更新は無駄に思えるだろうけど、更新に掛かる時間は、
まばたき1回より遙かに少ない時間なのでそれほど気にならないと思います。
あとは同じくVBAで、時刻が入ってるセルをダブルクリックしたら更新するとかも可能ですが、
テンプレ3番が「VBAでの回答の可否=否」ってことならお役に立てそうもありません。
揃えるのが時刻と「梶宦宦宦屮だけなら
>>648 さんの方法でいいと思いますが
もっと多くの文字列を揃えたいって場合はそうもいきませんし。
>>647 オートフィルタを使えばその表自体が、該当者のみを表示する表になりますが、
別な位置に出したいということなら、結論から言うと数式だけで処理することは可能です。
ただ、数式の場合、必要な数の数式をあらかじめ用意しておく必要があります。
たとえば神奈川に該当する人が20人、東京は30人、埼玉は10人だったとします。
この場合、最低30(最大該当数)の数式を用意しなくてはなりません。
該当数が可変なら更に多めの式をあらかじめ入れておく必要があります。
「数式を入れたセルの数<該当者数」になると、該当者が漏れてしまう結果になりますので。
それでも数式がいいなら、作業セルを使う方法と、作業セルを使わず配列数式を使う方法がありますが
そのどちらがいいのかと、以下の情報を教えて貰えれば書いてみます。
@
>>658 さんとかぶりますが、データの正確な位置・範囲情報。
>>647 で書いた物の何処が1行目なのか、名前があるのはどの列なのか、表の範囲はどこまでなのか(G100までとか)
A「あるセルに「東京」と入力すると」のあるセルは何処なのか
B結果を何処に返すのか
逆に「なら、やっぱりVBAで」っていうなら、同じく@ABの情報を貰えれば書いてみます。
>>660 @・1科目につき、3コマ開講しなければならない
A・同じ日に同じ科目を2回以上してはいけない
ここまでなら難しい思考は必要ないですね。
25コマのうち、ランダムな位置が、「既に埋まってないか」と「Aの条件を満たしてるか」の判断になります。
あとはそれを3回、更にそれを教科数繰り返せばいいだけですから。
B・同じ先生が2時限続けて授業してはいけない
も同じ考え方で出来ないことは無いのですが、教科数と掛け持ちの状況によっては、
ランダムな位置が条件を満たすかだけの判断では永久ループになってしまう場合があります。
その場合、条件を満たしてるかどうかという「判断」ではなく、
どのように配置すれば条件を満たせるかという「思考」になり、そうなると極端に処理が複雑になります。
C・各先生の出勤曜日はできるだけ減らしたい
も同じく思考を必要とするので難しいです。
この場合、3科目受け持つ先生なら1-3-5、2科目受け持つ先生なら1-3,2-5などと
ある程度規則性を持たせてしまう方が楽なのですが、3科目受け持つ先生が居るかどうか、
2科目受け持つ先生と1科目しか受け持たない先生の割合等の条件でも処理が変わってきます。
@ABを「判断」のみで満たす表を作れるマクロなら書いてもいいですが、
(Bの条件で永久ループになったら適当なところで抜けるようにします)
それ以上はすいませんが遠慮させていただきます。
>>661 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 And Target.Value <> "" Then
Dim i As Long
Cancel = True
If Rows(Target.Row + 1).Hidden Then
Rows(Target.Row + 1).Hidden = False
Rows(Target.Row + 1 & ":" & Cells(Target.Row, 1).End(xlDown).Row - 1).Hidden = False
ElseIf Cells(Target.Row + 1, 1).Value = "" Then
i = Cells(Target.Row, 1).End(xlDown).Row - 1
If i = 65535 Then i = Cells(65536, 2).End(xlUp).Row
Rows(Target.Row + 1 & ":" & i).Hidden = True
End If
End If
End Sub
こんな感じでしょうか?
ついでに以下の上の1行が全行表示、下の6行がA列が空欄でない行のみ表示です。
Rows.Hidden = False
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To Cells(65536, 2).End(xlUp).Row
If Cells(i, 1).Value = "" Then Rows(i).Hidden = True
Next i
Application.ScreenUpdating = True
【1 OSの種類とExcelのバージョン】 XP EXCEL 2003 【2 Googleやヘルプでの検索キーワード】 よくわかりません 【3 VBAが使えるか / VBAでの回答の可否】 VBA不可 こんにちはデーターを並べ替えしたのですが、 どうも桁を識別していないようです。最初の2桁を優先しているように見えます 101 1017 1018 102 とか 83 833 837 8377 84 という順番になります。 1000 854 94 という感じで並べ替えたい場合はどうすればよいですか?
>>665 数字が「文字列」として入力されていませんか?
「数値」に変えましょう。
667 :
660 :2005/07/14(木) 18:08:47
>>663 早速のお返事ありがとうございます。
やはり、ランダムか順番ではめて行き、判定を繰り返すことになるのですね。
条件3、4はおっしゃる通りループに陥らないよう、
「1,2が守られてる範囲で、可能な限り多く条件を満たしたい」のですが、やはりここは単純ではなさそうですね・・・
イメージ的には、電車のダイヤグラムを組むような作業だと思っていたのですが、
ヒントを与えてくださりありがとうございます。
>>667 こういうのはどうでしょうか?
1 @ABを「判断」のみで満たす表を作る。(これをAとする
2 この場合の各先生の出勤日数の合計を出す。(これをXとする
3 Aのパターンをtemp1に保存
4 同じ表をもう一度作る。(これをB、この場合の出勤日数合計をYとする
5 X < Y ならBを破棄、
X = Y なら、Bをtemp2に保存、(以後temp3、temp4と順次保存
X > Y なら、tempを全て破棄し、Bをtemp1に保存、XにYの値を代入
あとは4〜5を繰り返す。
つまりランダム配置をループで繰り返し、
出勤日数合計が現在までに出た結果の中で最低値と同じなら結果を溜めていき、
最低値を更新したら溜めた結果を破棄し、
また出勤日数合計が最低値と同じになるものを溜めていく。
あと、「B先生は水曜はダメ」という条件を、「思考」ではなく「判断」の中に
組み込むのは以外と簡単だと思います。
その例通りなら、Aの条件で水曜日のB先生の科目を
初期値で全て既出扱いにしてしまえばいいだけですから。
ランダムなやり方では、条件が増えれば増えるほど、
永久ループに陥る確率は上がってしまうけど、カウンタをかませて、
カウンタが上がりすぎたらリセット、結果が返れば上記1〜5のパターンに当てはめる
ってやっていけば、非効率的な方法だけど、処理は簡単だし
ある程度の時間回しておけば結構煮詰まった結果が返ると思うよ。
ただ、掛け持ち状況と休みの曜日の条件に因っては、
どうやってもBの条件を満たせない場合もあるので、
そうなるとこの方法では何も結果は返らなくなりますね。
その辺は実際の条件が出てこないとわからないけど。
669 :
660 :2005/07/14(木) 20:14:20
>>668 ありがとうございます!
その方法が一番はやそうですね。
ということは、いくつか条件が増えた場合も、
それぞれの条件をどれだけ満たせているかをポイント化して、
「xの合計点の成績が良い方を保存」という形で
表を作り続けると、だんだん最適な表になっていくということですね。
Excel 2000 を使ってます。 IE6 に表示された HTML の <table> で作られた表をコピーし、 Excel にペーストすると表になりますが、 できない、という人がいます。 原因はなんでしょう?
クリップボード拡張ソフトの類を使ってるとか。
>>671 なーるほど。
確認しましたが常駐はアンチウィルスだけでした。
うーん。
>>670 念のためにそのhtmlのurlを教えてくれない?(出来るなら)
675 :
670 :2005/07/14(木) 21:31:44
676 :
674 :2005/07/14(木) 21:57:41
その「出来ない」というのがどういう状態を指して言ってるんだろうかね。 こっちはExcel2002で、まぁレイアウトは崩れはしたものの表にはなって いるし。
>>675 うちExcel2000だけど表のペーストできますよ。
ページ全部を選択してコピペしても表の部分だけコピペしてもOK。
形式を選択して貼付け でHTML選んでもダメですか?
678 :
1/1 :2005/07/14(木) 23:25:17
お知恵を拝借したく、質問させていただきます。 --------------------------------------- 【1 OSの種類とExcelのバージョン】 win2000,Excel2000 【2 Googleやヘルプでの検索キーワード】 MIN、DMIN、配列数式など 【3 VBAが使えるか / VBAでの回答の可否】 つかえませんがVBAの回答OKです --------------------------------------- ACCESSを利用しての解決法でもかまいません。 AB 1動物数値 2ねこ10 3ねこ27 4うさぎ49 5さる19 6ねこ93 7いぬ48 8うさぎ28 9いぬ43 例えば上記のようなデータ(下にもっと続く)があります。
679 :
2/2 :2005/07/14(木) 23:26:04
名前欄間違えました、
>>678 の続きです
たとえばこれを
ABC
1動物数値
2ねこ1010
3ねこ2710
4うさぎ4928
5さる1919
6ねこ9310
7いぬ4843
8うさぎ2828
9いぬ4343
のように、Cの列に何か関数を入れて
同じ種類の「動物」での最小値を返す関数はありますでしょうか。
最終的には「数値」を「動物」ごとの最小値に変換したいのです。
よろしくお願いします
データ見づらくて申し訳ありませんorz A B C 1 動物数値 2 ねこ 10 10 3 ねこ 27 10 4 うさぎ 49 28 5 さる 19 19 6 ねこ 93 10 7 いぬ 48 43 8 うさぎ 28 28 9 いぬ 43 43 最終的にこのようにしたいです (またうまくいかなかったらすみません)
>>678 配列式で=MIN(IF(A1=A$1:A$n,B$1:B$n))
>>678-680 配列数式を使うことで可能です。
C2=MIN(IF(A$2:A$9=A2,B$2:B$9,""))
でCtrl+Shift+Enterで確定し、下方へオートフィルでコピーしてください。
A$9、B$9の 9 は、データの下端行に書き換えてください
ただ、配列数式は範囲が大きくなると
「ひとつの配列数式の処理が重くなる」*「配列数式を入れる数が増える」
で、極端に動作が重くなる場合があります。
その場合は作業セルに配列数式で最低値を返し、VLOOKUPで参照する方法をオススメします。
A B C D E
1 動物 数値
2 ねこ 10 @ ねこ A
3 ねこ 27 ↓ うさぎ ↓
4 うさぎ 49 さる
5 さる 19 いぬ
6 ねこ 93
7 いぬ 48
8 うさぎ 28
9 いぬ 43
@=VLOOKUP(A2,D$2:E$5,2,0)
A=MIN(IF(A$2:A$9=D2,B$2:B$9,""))
@は通常の数式です。E$5の 5 はD,E列に作った表の下端行に書き換え
Aは配列数式なのでCtrl+Shift+Enter、範囲の書き換えは最初の式と同じ。
D,E列の表は作ったら非表示にしても構いませんし、
別の列に作っても、数式の範囲もきちんと書き換えれば問題有りません。
>>681 >>682 早々のご解答どうもありがとうございます!
うまくいきました。
「配列数式」というキーワードまで行ったのに
自力ではうまくいきませんでした。アホです。。
>>682 参考になるアドバイスを有難うございます。
実際には、ここで言う「動物」の種類も
4パターンだけとは限らないデータでしたので
配列数式でやってみます。
>>667 ((((( (;´Д`) =O
>電車のダイヤグラムを組むような
…なんて、とてつもない重労働ぞ。なめんなよ。
機械で下処理してから、熟達した職人が徹夜であーでもない、こーでも night…
くわしくは鐵の人がフォローくださいます。ドゾー( ´∀`)つ
>>684 もちろんイメージです・・・
実際にダイヤグラム組めるようなものを作ろうなんてめっそうもございません。
MacOS10.4.1でExcel11.1.1を使っています。 既存の名簿のような、名前と住所などが載っているファイルから ある特定の区にすんでいる人だけを抽出してそれをリスト化したいのです。 どのようにすれば簡単に抽出できますか?
688 :
670 :2005/07/15(金) 11:52:02
>>676-677 いろいろありがとうございます。
HTML のテーブルをコピーし、
Excel にペーストするときに
[編集]→[形式を選択して貼り付け] を選んだとき、
コピーできない人はここに「HTML」が出ないことが分かりました。
「テキスト」が選ばれているのです。何で出ないのでしょうね。
>>688 参考になるかどうかはわかりませんが。
Webページの表をブラウザ上でコピーする際、選択する範囲によっては
うまくHTMLを認識してくれないことがありますよ。
ちょいと余計な手間がかかりますが、表の周辺部も含めて選択するか
いっそのことページ全部を選択してコピー→(Excelに)貼り付けをやれば
ちゃんとWebで見える形の表になることがあります。お試しあれ。
690 :
670 :2005/07/15(金) 13:02:35
>>689 早速 Ctrl+A や一部分を選択、などを試してみました。
結果は同じでした。「テキスト」と「Unicodeテキスト」のみ。
がっかり。
692 :
670 :2005/07/15(金) 15:27:07
>>691 いえいえ、本当にありがとうございます。
693 :
名無しさん@そうだ選挙にいこう :2005/07/15(金) 16:21:37
質問お願いします。 win98SE、Excel2000です。 ちなみにExcelは基本程度しかわかりません。 1.パソコン 2.スキャナ ・ ・ ・ 23.プリンタ と、それぞれ名詞に番号が付けられています。 例えば下の表のように、任意のセルに番号を入力しただけで その右隣のセルに番号の名詞が自動で入るような関数 又は設定って、何かあるのでしょうか・・。 ├──┼─────┼ │ 1 | パソコン. │ ├──┼─────┼ │ 23 │プリンター. | ├──┼─────┼
>>693 番号を入力したセルとは別セルに対応する名詞を表示させるなら、
VLOOKUP関数で可能だけど、
番号を入力したセル自体を番号から名詞に置き換えたいなら
VBAを使うしかありません。
基本程度しかわからないなら
VLOOKUP関数で別セルに表示させる方法使うのがいいですね。
=VLOOKUP(番号を入れるセル,表の範囲,2,0)
>>693 別シートかどこかにそのマスターを作っておいて、
LOOKUP系の関数を使うのが一般的だと思います。
ただ、意外と制約が多いので自分の場合は
INDEX関数とMATCH関数を組み合わせて使っています。
c10にstdev(a1:a10)、c11にstdev(a1:a11)のようにa1からの標準偏差を示したいんだが、 +をだして残りの升を計算させるとc15にstdev(a5:a15)が表示されるorz 順に打ち込むしかないんでしょうか?
絶対参照と相対参照の使い分け
>>693 番号がそのように1からの連番になってるのなら、INDEXを使えばよい。
パソコン〜プリンタのセル範囲に「品名」という名前がついてて、A1に番号を入れるのであれば、
=INDEX(品名,A1)だけでよい。
MATCHは使う必要なし。
番号が連番ならVLOOKUPは無駄だな。
他にアフォが使いそうなのにINDIRECTがある。W
>>698 ワロタ,ワロタ,ワロタ
!!! クックックックックックックック !!!
>>693 ここはレベルが低いんだから、VLOOKUPぐらい大目に見なさい。
言ってることはごくまともだが、そんなこと書いてると嫌われるよ。
炒ってることも的もじゃないから藁える湧けだが
704 :
693 :2005/07/15(金) 23:23:10
>>694 >>695 できました!ありがとうございますm(__)m
リストはちゃんと同じシートに置くので
その方法でバッチリでした。助かります。
>>698 番号はほぼ連番になっているので(欠番もありますが)
その方法も試してみたいと思います。
何でワロタレスが付いているのか意味わかんないけど(・∀・;)
706 :
693 :2005/07/15(金) 23:31:29
>>698 ごめんなさい、いま試してみたけど
いまいちちゃんとできませんでした・・。
私はかなりレベル低いので、、、(´・ω・`)
ちなみに私がレスを勘違いしてるかも知れないですが
番号がほぼ連番なのはリストだけで
任意のセルにはそのつど違う数字が入ります。
>>706 698の方法は使えないよ。
VLOOKUP使ってな。
>>701 たしかにレベルの低い
>>703 みたいなのがいるようだな。
>>693 欠番ありなら洩れのは使えないよ。
欠番にしないでそこの右側を空白にでもしておけばいいんだが。
>>705 ご理解いただけたみたいで。
>>647 は何処行ったんだ?
あれが関数のみで出せるなら
後学のためにぜひ聞いておきたいと思ってたんだが
まさかオートフィルターで満足しちゃったとか?
自分に自分でフォロー入れたり、 自分で自分の方法を正しいと言ったりするインターネッツはここですか?
煽り口調で低レベルな回答しか出来ない奴なんて放っておけ どうせ恥かくのは奴なんだから
さすがにこれは 「ググれ」 という回答でいいですか?
716 :
698 :2005/07/16(土) 00:30:57
ごめん、さっきはきつい事言い過ぎた。あやまる。
717 :
705 :2005/07/16(土) 00:41:12
これ以上墓穴掘るな。 雑談スレが賑わいすぎて収まり付かなくなるから。W
719 :
705 :2005/07/16(土) 00:46:49
結果としてVLOOKUPが正解 奴は使えない方法出して大いばり。W
もし
>>693 A
1 1.パソコン
2 2.スキャナ
.
.
.
20 23.プリンタ
もしかしてこんなリストじゃないのかい?
こんなんじゃVLOOKUPは使えないよ。
下みたいなリストにしなさい。
A B
1 1 パソコン
2 2 スキャナ
.
.
20 23 プリンタ
なんかずれてるな。 意味が理解できればいいんだが。
>>722 >>704 読め。
VLOOKUPだかINDEX+MATCHがかしらんが
どちらかで出来てるってことはお前の予想は外れだ。
しかもズレまくってるし。
恥ずかしい奴。W
726 :
722 :2005/07/16(土) 01:22:13
エクセルのツールバーのコマンドが漢字になっているものを見かけました。 どのようにしたら、できるのでしょうか。
とりあえず、日本語版買えばいいんじゃないの?
>>727 ツール>ユーザー設定でユーザー設定ダイアログを表示させておき、
その状態で表示を変えたいツールバーのボタンを右クリック。
そこから「テキストのみ表示」などを選ぶ。
実際にはこれやると、ツールバーが狭くなるだけでかえって不便。
>>729 ありがとうございます。
ずいぶんとエクセルを使っていましたが、
初めて知りました。ありがとうございました。
731 :
名無しさん@そうだ選挙にいこう :2005/07/16(土) 08:33:11
すみません、誰か教えてください。 表の自動計算ができなくなってしまって、なおし方を 教えてもらいました。 でも、どうして急に自動計算されなくなってしまったのでしょうか? ツール→オプション→計算方法のところが手動になっていたのでしょうか? そんな設定してないのに・・・・ 誰か教えてください。 Windows XP professional Excel 2003 です。
732 :
名無しさん@そうだ選挙にいこう :2005/07/16(土) 09:29:23
>>731 バカなヤツほど、原因は自分じゃないと言い張る
733 :
731 :2005/07/16(土) 09:34:17
>>732 すみません。原因は私です。
ショートカットコマンドか何かで知らない間に
そういう設定になってしまったのでしょうか?
教えてください。お願いします。
計算方法が知らぬ間に手動に変わってたってたぐいの質問は、 ここの過去スレでも何度か見たし、他所のQ&A掲示板でも 見かけるな。 けっこう同じ(または原因の異なる)バグに引っかかってる人も いるんだろう。
736 :
731 :2005/07/16(土) 09:59:17
>>734 レスありがとうございます。
良くわかりました。
ありがとうございました。
>>735 今度からはもう少し過去スレを見直してから
質問を書くようにします。
ご指摘ありがとうございました。
737 :
731 :2005/07/16(土) 09:59:46
>>734 レスありがとうございます。
良くわかりました。
ありがとうございました。
>>735 今度からはもう少し過去スレを見直してから
質問を書くようにします。
ご指摘ありがとうございました。
>>670 実はIEじゃなくて別のブラウザとかってことは?
うちはOPERA8でNGでした。
739 :
732 :2005/07/16(土) 11:20:11
ごめん、さっきはきつい事言い過ぎた。あやまる。
>>693 のやつ、「もし連番だったら」OFFSET関数でも出来るな。
実はINDEXよりOFFSETの方が速かったりするし。
OFFSET関数の前にINDIRECT関数出すあたりが、中途半端に無知で笑える。W
741 :
名無しさん@そうだ選挙にいこう :2005/07/16(土) 11:49:52
>>739 どうして、732になりきろうとしたの?
愛してるの?
空気読めないバカひとり・・・
本スレの住民構成 質問者:1割 普通の回答者:3割 うるさい回答者(VBA厨含む):1割 煽るしか能のない人たち:5割
>>744 住人(人数)構成で言ったら
質問者:2割
普通の回答者:2割5分
神回答者:5分
うるさい回答者(VBA厨含む):1割
煽るしか能のない人たち:3割
ってかんじだな。
ただ俺やお前みたいに「煽るしか能のない人たち」は
書き込み回数が多いから、レス数構成なら
>>744 の通りだろう。
末尾に大文字で「W」付けてる奴はうざいってことでみんな一致してる?
空気読めないバカふたり・・・
ほんとだ、あと一割どこにいれよう?
752 :
名無しさん@そうだ選挙にいこう :2005/07/16(土) 14:06:51
質問してもよろしいでしょうか? 【1 Excelのバージョン】office2000 【2 Googleやヘルプでの検索キーワード】 変数名 【3 VBAが使えるか】 yes ワークシート[Sheet1]に 列A B 行1 D_add 東京都 2 D_age 15 3 D_tel 000-0000-0000 というふうに入っていたとして、 マクロ内で 「D_add = "東京都"」 と記述したのと同じ状態に、値を代入して使用することはできますか? うまく説明できませんが、「シート上で設定した変数名に、値を代入する」 事が可能ならばご教授ください。 変数宣言も同時に行えれば嬉しいですが、不可能ならば あらかじめ Dim D_age As Integer 等の宣言はマクロに既に 記述しているものとします。
>>752 「シート上で設定した変数名に、値を代入する」ってことにだけ答えるなら
名前の定義で可能。
示されている例なら、A1:B3を選択した状態で挿入>名前>作成と
やれば、お望みの変数が値入りで使える。
それ以上のことを考えているなら、これで適切かどうかはわかりません。
754 :
名無しさん@そうだ選挙にいこう :2005/07/16(土) 14:33:50
質問です。 計算で例えば0,56という数字を求めて、それをパーセントスタイルで 表示すると、56%というふうになるのですが、 この「%」を消したいのですが、どうすればよいでしょうか。 つまり「56」という表示のみにしたいのです。 どなたかお願いします。
>>754 はあ。
パーセントスタイルを使わずに元の数値を100倍すればいいのでは?
>>725 残念ながら、変数名に変数値や参照値(セルの値や計算結果など)は使えない仕様。
>755 おお!なるほど 蟻っす
758 :
名無しさん@そうだ選挙にいこう :2005/07/16(土) 15:30:11
条件付き書式は3つまでしか選択できませんが、関数を使ってでも何でもよいのですが10つを設定できますでしょうか。ちなみにフォントではなくパターンで10色にわけたいのです。OFFICE2003XP初心者です。よろしくお願いいたします。
>>758 関数では色を設定することはできません。
従ってVBAでやるしかないです。
めんどいので後はVBA屋さんにまかせますw
書けないのでって素直に言えばいいのに。 匿名掲示板で見栄張ったっていいことないでしょ´∀`)σ)Д`)
すいません。 エクセルで足し算をしたいんですが、たとえばF1からF200までを合計するとします。 すると一つ一つ入力すると大変な手間になります。 どうすればF1からF200までの合計を一度に足すことが出来ますか? よろしくお願いいたします。
762 :
759 :2005/07/16(土) 16:32:54
うん、書けない。面倒だし。 俺の書くVBAは人様に見せられるレベルじゃないから。 (動けばいいって程度だからね)
>>761 =SUM(F1:F200)
と答えを入れたいセルに入力する。
. A B C 1 エロ本 1000 2 エロゲ 5600 3 夕食 800 というデータがあったとして . A B C 1 エロ本 1000 エロ本 2 エロゲ 5600 3 夕食 800 夕食 ↑ のように A1とA3のデータだけをC1とC3に一度でコピーできませんか? 要するに間隔を開けてコピーしたい ctrlとかでA1とA3を指定してコピーすると . A B C 1 エロ本 1000 エロ本 2 エロゲ 5600 夕食 3 夕食 800 になるんですが仕方ないんでしょうか
766 :
名無しさん@そうだ選挙にいこう :2005/07/16(土) 17:05:41
折れ線グラフの線の部分を(点線ではなく)2色以上にすることは可能ですか? WindowsXP、Excel2003です。VBAわかりません。
マクロを書けない人(理由をつけて書かない人も含む)は、 マクロでできるという回答を付けない方向で。
シッタカぶりたいんだよ 可哀相だからシッタカぶらせてやれよ 「VBAでできる。やり方はヘルプ読め」だの 「VBAでできるけど、面倒だから俺は書かない」だのと ここに書く分には、VBA使えなくても書けるから そう、VBAという言葉さえ知っていれば PCさわり初めて数分の小学生さえ、こういうレスを付けるのは可能
俺はマクロで出来るなんてレスは付けてないわけだが。
>>768 も同じ。そんなレスする暇があるなら
VBAで出来ると言ったあなたが答えなさい。ね、
>>759 =
>>769 君
>>730 つーか、それは「使ってる」って言わないから ・゜・(ノД`)・゜・。
はやく使い始めてください。
>>758 (1) [ALT] + [F11] で、 VBA エディタを表示させる。
(2) プロジェクトの中の Sheet1 をダブルクリックする。
(3) 下記をコピぺ。
Sheet1 のセルに 1〜9 の値を書込むと、その値に応じてセルの色が変わる。
1〜9 以外はぜんぶ同じ色になる。
質問に具体性がないので、回答はここまで。
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Value = "1" Then
Target.Interior.ColorIndex = 1
ElseIf Target.Value = "2" Then
Target.Interior.ColorIndex = 2
ElseIf Target.Value = "3" Then
Target.Interior.ColorIndex = 3
ElseIf Target.Value = "4" Then
Target.Interior.ColorIndex = 4
ElseIf Target.Value = "5" Then
Target.Interior.ColorIndex = 5
ElseIf Target.Value = "6" Then
Target.Interior.ColorIndex = 6
ElseIf Target.Value = "7" Then
Target.Interior.ColorIndex = 7
ElseIf Target.Value = "8" Then
Target.Interior.ColorIndex = 8
ElseIf Target.Value = "9" Then
Target.Interior.ColorIndex = 9
Else
Target.Interior.ColorIndex = 10
End If
End Sub
>>756 あらかじめ変数を用意しておくなら出来ないこともないですが、
きっと求めているものとは違うでしょうね。
Select Case Cells(i, 1).Value
Case "D_add": D_add = Cells(i, 2).Value
Case "D_age": D_age = Cells(i, 2).Value
Case "D_tel": D_tel = Cells(i, 2).Value
End Select
又は配列を作って
Dim D_(1 To 3) As String
If Cells(i, 1).Value Like "D_(#*)" Then _
D_(Val(Split(Cells(i, 1).Value, "(")(1))) = Cells(i, 2).Value
A | B
1| D_(1) 東京都
2| D_(2) 15
3| D_(3) 000-0000-0000
なんて方法もありますが、
>>756 さんの言うように、
VBAでは変数名に直接セルの値を使うことは出来ないと思います。
他言語では、変数名に変数値を使える物もあるようですが。
>>758 VBA使わないと無理ですね。
セルの値が条件となるなら、
>>772 のようにやるか、又は
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Select Case Target.Value
Case 0: Target.Interior.ColorIndex = 10 '0の場合
Case Is <= 10: Target.Interior.ColorIndex = 11 '10以下の場合
Case Is <= 20: Target.Interior.ColorIndex = 12
Case Is <= 30: Target.Interior.ColorIndex = 13
Case Is <= 40: Target.Interior.ColorIndex = 14
Case Is <= 50: Target.Interior.ColorIndex = 15
Case Else: Target.Interior.ColorIndex = 20 '上記条件に該当しなかった場合
End Select
End Sub
のようにも出来ますね。
ただ、Targetそのままだと複数範囲の値を一度に変えた場合にエラーになるので
For EachでTargetに対するループを組んだ方がいいかもしれません。
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim r As Range
For Each r In Target
Select Case r.Value
Case 0: r.Interior.ColorIndex = 10
Case Is <= 10: r.Interior.ColorIndex = 11
Case Else: r.Interior.ColorIndex = 20
End Select
Next
End Sub
数式で指定したい場合もVBAで可能ですが、
その場合はWorksheet_Changeで動かすと重くなるので、任意のタイミングで実行するようにした方がいいと思います。
各条件と範囲さえ出して貰えればコードは書いてもいいですけど。
776 :
759 :2005/07/16(土) 22:08:08
ごめん、さっきはきつい事言い過ぎた。あやまる。
>>776 しゃーないよ。お前の能力のなさがもとでああいう書き込みに
なってるわけだから。謝ることないよ。
ここを覗いているとEXCELについてよりも罵り方の方に詳しくなりまつね プププ
別人が成りすまして謝ってるフリしたりもするしな。
>>766 ひとつの系列で2色ということですか?
2色はグラデで変化していく感じ?
それだと無理っぽいんですが…。
途中でパキっと色が変わる2色なら系列を2つに分けてしまえばいいんですけどね。
>>778 底辺レスばかり見てないで、上級者の回答でも見て勉強すればいいじゃん。
そして今度は君が回答することで、スレを良い方向に持っていく。
『暗いと文句を言う前に自分で明かりをつけましょう』だよ。
煽り罵りが多いからって文句を言ってても始まらない。
ここで、文句を言うだけか、参考になるレスを拾って己を向上させるかで
人としての器の大きさの差が出るね。
さあ、あなたは上を見て登っていきますか、下を見て墜ちていきますか?
敏感なんだから、すぐに反応しちゃって、とってもカワイイ
質問なのですが Sub kakutei() Dim x As Integer x = Range("B14") If Abs(Range("A2")) = x Then Range("E11") = "正解" Range("E11").Font.ColorIndex = 2 Range("E11").Interior.ColorIndex = 42 Else Range("E11") = "不正解" Range("E11").Font.ColorIndex = 2 Range("E11").Interior.ColorIndex = 9 End If End Sub Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Call kakutei End Sub と、いうマクロコードで今のコードではA2をダブルクリックした時にのみ if〜then文より正解、不正解を判断するように出来てるのですが、この範囲を A2〜A11にしたいのです。今、Cellsをキーワードに探してみているのですが みつかりません。まだ初めて1ヶ月も経ってないのでもしかしたら探してる キーワードが間違っているのかと思い質問させて頂きました。 ご指南よろしくお願い致します。
改行が多すぎる為全てを書き込む事が出来ませんでした・・・ 必要であれば載せます。
>>783 Sub kakutei()
↓
Sub kakutei(r As Range)
If Abs(Range("A2")) = x Then
↓
If Abs(r.Value) = x Then
Call kakutei
↓
If Not Intersect(Target, Range("A2:A11")) Is Nothing Then Call kakutei(Target)
こういうことでしょうか?
違うなら、全コードともう少し詳しい説明が欲しいですね。
君の目には見えないところに。
プログラミングの基本的なことも知らないで 汚いコードを堂々と貼り付ける自称上級者なら多いな。
それでも788よりはよほどマシだし人の役にもたってるけど。
>>789 788じゃないけど、何の根拠も添えられていないので、
あなたの書き込みは全く無意味ですよ。
ここム板じゃないし、悪意のないコードなら、 多少汚かろうと、効率悪かろうと、具体的なコード出して回答してる奴の方が このスレの役にはたってる。 上級者ぶって批判するだけで具体的な回答も出来ないやつなんていらん。 ム板でも逝って最速アルゴリズムでも提唱していてくれ。 つーか批判してるだけのやつこそ、間違いやコードのヘボさを指摘されるのが怖くて なにも出来ない「自称上級者」じゃないの?
すみません、わからないので教えて下さい。 Win2000/Excel2000/VBAでの回答可。 最近会社で各営業所の職員に申込書を発送しました。 営業所は仮にA営業所〜J営業所まで10営業所あります。 この申込書というのは、営業所の職員の方たちに、 職員の友人をパーティーに招待するお誘いをお願いするものです。 その申込書が返送されてきまして、申込状況を集計しているのですが、 Sheet1、Sheet2に下記のように申込者リスト、営業所別申込状況をそれぞれ作成
794 :
名無しさん@そうだ選挙にいこう :2005/07/17(日) 09:54:55
◆Sheet1(申込者リスト)申込書到着順に入力 ◆Sheet2(営業所別申込状況)を作成 A B C A B C 1 営業所名 候補者名 紹介した職員 1 営業所 候補者数 紹介者数 2 C 田中 村田 2 A 4 3 3 B 中村 深井 3 B 3 3 4 J 中田 清田 4 C 2 1 5 A 吉田 桜井 5 D 8 6 6 A 岡田 桜井 6 E 0 0 7 E 池田 坂田 7 F 9 8 8 F 上田 小暮 8 G 2 2 ↓以下続く... 9 H 1 1 10 I 3 2 11 J 5 4
そこで関数を使い、Sheet1に入力したものが、自動的にSheet2に反映されるよう、関数を組みたいのですが、 @営業所別申込書(Sheet2)のA列(営業所)にはCOUNTIF(Sheet1!A:A,A2)の関数を挿入(以下数式のコピー) A営業所別申込書(Sheet2)のB列(候補者)にはCOUNTIF(Sheet1!B:B,B2)の関数を挿入(以下数式のコピー)でうまくいっているのですが、 問題がSheet2の列C(紹介者数)です。 紹介者数は一人の職員が一人紹介者を連れてくる場合は同様にCOUNTIF関数でよいのですが、 一人の職員が二人、三人と候補者を連れてくる場合があります。その場合、紹介者数が例えばA営業所の山田さんが、 三人の候補者を招待した場合、Sheet2では候補者数3、紹介者数1になるような関数を組みたいのです。 Sheet2の紹介者数にはどのような関数を組めばよいか教えていただけませんでしょうか。 わかりにくくてすみませんが、わかるかたいらっしゃいましたら教えて下さい。 また質問に至らない点がありましたら指摘していただければ答えますので よろしくお願いいたします。
>>792 禿道
とりあえず使える回答してる奴 >>>越えられない壁>>>マリアナ海溝より深い溝>>>天と地ほどの差>>> 批判だけしてる奴
Excelやプログラミングの知識において、批判してる奴が上だろうとも
このスレでの存在意義は上記に他ならない
いくら知識が豊富だろうとも回答しない奴はこなくていいよ
>>788 ここに貼り付けてるのは本人の勉強のためもあるからかまわないだろうよ。
ヴァカなのは何を勘ちがいしたか、本まで出してる奴。
どこかのおちゃらけライターはかわいそうなくらいひどかった。
>>793-795 Sheet2のA列は関数使わずにA,B,C…では?
そしてB2にはCOUNTIF(Sheet1!A:A,A2)、
この状態でSheet1のA〜C列を選択し、データ > 並べ替え で
最優先されるキー:列A
2番目に優先されるキー:列C
範囲の先頭行:タイトル行
の設定でソートし、Sheet2のC2に
=SUM((Sheet1!A$2:A$100=A2)*(Sheet1!C$1:C$99<>Sheet1!C$2:C$100))
と入れてCtrl+Shift+Enterで確定。下方にフィルコピー
2カ所ある「$100」は、Sheet1の下端行より大きい数、「$99」は前者で指定した数-1に書き換えてください。
全体的な要望を見る限り、これでいいような気がしますが、
>>795 の数式@Aがうまくいってるというのがちょっと理解できません。
A列(1行目はタイトルなのでA2)にCOUNTIF(Sheet1!A:A,A2)と入れたら循環参照になりますし。
私が勘違いしてるだけかも知れませんが、私の回答が検討違いのものなら
Sheet2に現在入れてる値や関数について、もう一度見直して詳しい説明をお願いします。
関数が入ったセルの1ヶ月分の合計と平均値を出したいのですが、 関数に引用する数値が入っていないセル(その日の数値がなし等)がある場合 DIV/0!が表示されるために最終的に出すSUMやAVERAGEでもDIV/0!と表示されて しまい、うまくいきません。 DIV/0!だけを回避して合計を出すにはどうしたらいいでしょうか?
>>797 くわしく!
初心者がトンデモ本を買いませんように (-人-)
802 :
名無しさん@そうだ選挙にいこう :2005/07/17(日) 13:28:48
>>801 ではありませんが、
VBAを独習しようと思っています。
おすすめの本があったら紹介してください。
プログラミングはHTMLを少しやったことがあるくらいの、まったくの初心者です。
Amazonでは、大村あつしの簡単プログラミングExcel2003VBAシリーズが
すごく評判なようですが、あそこまで評判が高いと胡散臭いような気がして
なりません・・・どうなのでしょうか?
お前ら下手な書き込みすると訴えられるぞ。
>>802 の書込みとかかなりギリギリだな。
804 :
802 :2005/07/17(日) 13:37:49
すみません。別に煽っているわけではありません。 すごく気になったので。 Excelは簡単な関数、VLOOKUP、COUNTIFなどがある程度使えるレベルです。 独習用におすすめの本があったら紹介お願いします。 それから、今度自治体の講座でVBを習うのですが、VBとVBAって全然違うのでしょうか? VBとVBAを同時に勉強すると混乱するでしょうか?
805 :
802 :2005/07/17(日) 13:42:08
度々、追記で申し訳ありません・・・ 今度自治体の講座で習うのはVB.NETというやつです。
VBとVBAは似てる(というか、VBAでユーザーフォーム使えればVBでも基本的なことは大体出来る)が VB.NetとVB、VBAは別物。どっちにしてもVB.NetもVB6もVBAも プログラム技術板にスレがあるのでそっち逝け。
808 :
802 :2005/07/17(日) 13:53:30
>>807 VB.NETとVB、VBAは全然違うんですね。
ム板に行ってみます。ありがd。
>>801 営業妨害になるから具体的には書かないよ。
何人もの共著たったけど玉石混淆ってやつだな。
811 :
766 :2005/07/17(日) 14:37:39
>>780 そうですね、1つの系列で2色です。
グラデーションでなくても構いません。
上下に2色:赤赤赤赤赤赤
白白白白白白 or
交互に2色:赤白赤白赤白 こんな感じにできればなぁと。(マーカーは使っています)
系列を分けるのを繰り返すと交互にすることはできそうですね。ありがとうございます。
線の途中で切り替えることはできなさそうですね。
812 :
名無しさん@そうだ選挙にいこう :2005/07/17(日) 14:40:54
DTP・印刷板を観ろ!DTP・印刷板を観ろ!DTP・印刷板を観ろ! DTP・印刷板を観ろ!DTP・印刷板を観ろ!DTP・印刷板を観ろ! DTP・印刷板を観ろ!DTP・印刷板を観ろ!DTP・印刷板を観ろ! DTP・印刷板を観ろ!
813 :
名無しさん@そうだ選挙にいこう :2005/07/17(日) 17:23:07
年 月 日 7 5 21 の様に3つのセルに分かれて日付のデータが入っています(年は平成) これをエクセル標準の日付数値(シリアル値?)に変換するには どうすれば良いでしょうか?
=DATE(A2+1988,B2,C2)
>>813 年月日が入っているセルをA1,B1,C1と仮定すると
出力したいセルに
=DATEVALUE(A1&"/"&B1&"/"&C1)
でいけると思います。
>>816 7 + 1988 = 2005
という意味だろうけど普通は2007年と見るべきだよね。
>>連続カキコ済みません 足し算ができなかった。 1995になっちゃうね。
819 :
813 :2005/07/17(日) 17:38:52
>>817 (年は平成)と書いてあると7は2007年と見るべきなのかよ w
>>819 ごめん。気が付かなかった。
815さんにも謝ります。
わりぃ。年は平成って書いてあったのか。
824 :
名無しさん@そうだ選挙にいこう :2005/07/17(日) 18:01:11
変わった奴がいるな
結局814のでいいんでしょ 815のも2007年になっちゃうし。
DATEVALUEを使うなら =DATEVALUE("H"&A1&"/"&B1&"/"&C1)
>>827 すばらしい洞察力ですね。書いてませんよ。
829 :
名無しさん@そうだ選挙にいこう :2005/07/17(日) 21:23:40
エクセルで次のように関数を使った時、 =min(find({1,2,3,4,5,6,7,8,9},A1&123456789)) ※A1のセルで一番初めに出現する数値が何文字目かを調べる。 &1234-9はエラー回避のため。 ユーザー定義関数にするためVBAでこう記述したのですが エラーになってしまいます。 Function user_test1(input1 As String) user_test1 = WorksheetFunction.Min(WorksheetFunction.Find([1,2,3,4,5,6,7,8,9], input1)) End Function 誰か教えていただけませんか? OS:XP excel:2002です
831 :
名無しさん@そうだ選挙にいこう :2005/07/17(日) 21:31:58
オートコレクトが全然機能しないんですが、 どうしたらいいのでしょうか。 英文を正しく変換して欲しいのですが・・・ ちなみにさっき再インストしました。+オートコレクトオプションを見ても 駄目な理由がさっぱり不明です。
832 :
名無しさん@そうだ選挙にいこう :2005/07/17(日) 21:33:24
すみません↑はexcel2003です
833 :
783 :2005/07/17(日) 21:34:29
>>785 hoge ◆hoge//WRxY さん
ちょwwすごいです。ありがとうございます思った通りの動作が確認出来ました!
また分からない所があった時は質問させて頂くと思いますのでよろしくお願い致します。
では、早速
>>785 さんの教えて下さったコードがなぜそうなるのかをちょっと調べてきます(^・ω・^)v
>>829 ユーザー定義関数にするなら、ループ組んで
isnumeric(mid(input1,i,1))がtrueを返す位置を出せばいいじゃん。
>>830 ハタから見たら全然深くないから安心していいと思うけど。
んだねー
837 :
名無しさん@そうだ選挙にいこう :2005/07/17(日) 23:01:59
834 頂いた意見を参考に組んでみたんですが、数値もスルーされているようです。 評価元が文字列なんでスルーされるのかもしれません。
>>837 > 評価元が文字列なんで
関係ないよ。IsNumeric関数は引数が「数値だったら」ではなく
「数値として扱える文字だったら」Trueを返すんだから。
1でも"2"でも"3"でもTrueが返るし文字列から切り出したものも例外ではない。
うまくいかないのは使い方を間違ってるから。
とりあえず組んでみた物を貼ってみよう。
838 こんな感じです。 goto使ったりトロいことしてますが、そのへんのつっこみは避けて頂ければ・・ For i = 1 To Len(word) c = Mid(word, i, 1) If (WorksheetFunction.IsNumber(c)) Then '数値が見つかった場合 ret = ret & c '横の文字列を検査 If (i = Len(word)) Then '最後の文字の場合 GoTo endword End If s = Mid(word, i + 1, 1) '右の文字列をsに代入 If (WorksheetFunction.istext(c)) Then '文字列が見つかった場合 ret = ret & "@" End If End If Next i
>>839 の補足ですが、
文字列には複数の数値があるため、区切りに@を使っています。
(A100b400を100@400と出力させる)
>>839-840 最初のと全然違うじゃん
「一番初めに出現する数値が何文字目かを調べる。」んじゃなかったのかよ
それと名前欄には最初のレス番入れろや
まずは何がやりたいのか、自分のなかでまとめよう。 自分で自分が何やりたいのかすら把握できてないような状態では 他人にやりたいことが仕えられるわけがない。
843 :
名無しさん@そうだ選挙にいこう :2005/07/18(月) 00:10:57
セル番号が偶数の行に空白を挿入したいんですが どうしたらいいのでしょうか excel2003です。
>>843 > セル番号が偶数
セル番号って何ですか?
Excelにセル番号なんてないですよ
行番号かセルの値かの間違いでは?
> 行に空白を挿入
行には空白を挿入できません
セルに空白(スペース文字)を挿入か、
行を空白に(クリア)するか
空行を挿入するかの間違いでは?
用語とかわからないなら、具体例を挙げて何がしたいのか説明しましょう
>>829 引数の一番初めに出現する数字が先頭から何文字目かを返す。
数字が無ければ0を返す。
Function user_test1(input1 As String) As Long
Dim i As Long
Do
If i = Len(input1) Then Exit Function
i = i + 1
Loop Until IsNumeric(Mid(input1, i, 1))
user_test1 = i
End Function
>>839 引数に含まれる数字のみを"@"区切りで繋げた文字列を返す。
Function user_test2(input1 As String) As String
Dim buf() As String, foo As Boolean
Dim i As Long, j As Long
foo = True
For i = 1 To Len(input1)
If IsNumeric(Mid(input1, i, 1)) Then
If foo Then
j = j + 1
ReDim Preserve buf(1 To j)
foo = False
End If
buf(j) = buf(j) & Mid(input1, i, 1)
Else
foo = True
End If
Next i
user_test2 = Join(buf, "@")
End Function
とても仲の良い先生たちですね。
>>844 セル番号って行番号のことだと思うが、セル番号がないってわけじゃないだろ?
Cells(5).Selectってやってみなよ。
>>843 ようするにこういうことかい?
あ A
い B
う C
え D
お E
こういうデータを下のようにしたいと。
あ A
い B
う C
え D
お E
>>844 セル番号はA1が1、A2が2、・・・・と決まってます。
それ、セル番号じゃなくて範囲番号 C5:E10を選択した状態ではC5が1、D5が2になる Selection、Range、Targetなどの範囲を指定しなかった場合 シートが範囲となるってだけ セル自体に番号情報があるわけではない
>>850 それは範囲番号。
>>849 が言いたいのはセル番号。1から256×65535までの通し番号。
ただし使い道はない。
>>852 多分あなたの知識が不足しているのかと。
あなたの脳内には「範囲番号」はあっても「セル番号」はないのですよね。
であれば理解できないと思います。
今ヘルプ見た。セル番号って何に使うんだ?
>>851 だから、範囲番号だと言ってるだろうに
Cells(5).Selectというのは、Cellsという範囲内で5番目のセルってこと
例えばCells.Selectってやってみな
全セル=シートが選択状態になるから
つまりCells(5).Selectってのはシートという範囲内での通し番号ってこと
セル自体には番号なんて無いから、範囲を指定しなければ、セルを番号で参照することもできない
セル自体に番号がないことは試しにRange(1).Selectってやってみればわかると思う
新しい知識を吸収する気がない奴(
>>855 )に何を言っても無駄だということが分かった。
>>855 なんで自分の理解できる方向に話をすりかえようとしてるの?
質問者の役に立てないなら黙ってればいいのに。
でも、Excelの仕様的には
「指定したオブジェクト内の通し番号位置」なので、
>>855 の言う通りでは?
ただ、「セル番号」という呼び方が間違いだと言うのは間違いだと思う。
シートに対する通し番号なら「セル番号」って呼んでもいいと思うけど、
セル自体に番号が無いってのもまた正解だったりする。
結局「シートに対する通し番号」を「セル番号」と呼ぶか「シートに対する範囲番号」と呼ぶかの違いだろ。
>>848-855 で、呼び方以外に間違ったことを言ってる奴は一人も居ない。
>>858 まったく別々の2つの概念があるのですが、なぜ無理矢理
くっつけようとするのか意味不明です。
要はセル番号なんて僕は知りません、ってことでしょ。
恥を上塗る前に黙って自分で調べればいいのに。
859が
>>859 を読んで顔を赤くする日は何時になることやら。。。
ってかもうこの話題はいいよ。
どっちにしろ
>>843 は情報不足なんだから、質問者がもう一度来るのを待とう。
以後、負け犬の遠吠えが続くかもしれませんが、識者はスルーするように。
>>860 もうちょっと苦しくない捨て台詞が吐けないもんなのかね。
>>859 の言うように、不足知識がある場合は思い込みで
書き込まないで各自調べることにしよう。
今日の22:00頃から再開ってことでいかが?
> まったく別々の2つの概念があるのですが ダウト。(古〜
> まったく別々の2つの概念があるのですが では根拠をどうぞ。
>>858 ひとつだけ間違いあるよ。
>>855 の"全セル=シート"は間違い。
Cellsはあくまでも"全セル"であって"シート"ではない。
その他は
>>855 以外も含めて合ってるけど。
867 :
859 :2005/07/18(月) 11:22:47
ただいま検索中です。 しばらくお待ちください。m(_ _)m
元の質問者が戻ってきても引いてしまうような話を 延々とやってるだけということにも気がついてくださいな。
>>868 元の質問者が戻るってどういう意味?
さっきからずっと参加してますけど。
>>870 それは失礼。
俺には起点になってる
>>843 さんがいるようには思えなかったのでね。
実際、お返事ないし。
一つ馬鹿みたいな質問なんですけど WindowsXP HomeとProがあるじゃないですか? ProでもExcelとかWordってついてくるんですか? カタログ見てもいまいちよくわからなくて お願いします
>>872 ProにもHomeにもExcel、Word共に付いていません。
>>873 homeもproも本来はついてないってことですね?ついてないやつは自分でつけろってことですか?
値段はいくら位かかりますか?簡単ですか?