Excel総合相談所 33

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

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

     /)_/)    ( ・質問する人は可能な限り具体的に書いてね。
    < ゚ _・゚> .。oO( ・情報は小出しにせず、きちんと書いてね。
  ノ) /   |    ( ・回答がなくてもキレないで。
  \(_,,,_,,,)   ( ・分かる人はできるだけ回答して下さいませ。
            ( ・自己解決したって人はその解決手段を他の人の参考の為に書いてね。

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

強制ではないがテンプレ推奨>>2
FAQ(よくある質問と答え)は>>3-10くらい。

▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
2名無しさん@そうだ選挙にいこう:2005/05/02(月) 10:25:04
★自分で出来ることは自分でやろう(ヘルプ・Googleの検索など)★
【1     O S の 種 類    】 Windows***
【2 E x c e l の バ ー ジ ョ ン .】 Excel***
【3   V B A が 使 え る か  】 はい・いいえ
【4 Googleでの検索キーワード】
【5 ヘルプでの検索キーワード】
【6 スレのFAQとログを読んだ.】 はい・いいえ
〜〜〜質問内容〜〜〜
3名無しさん@そうだ選挙にいこう:2005/05/02(月) 10:26:09
= FAQ: 列の表示について =
Q.列名がA,B,C,D,Eではなく、1,2,3,4,5になってしまいました。
 アルファベットに戻すにはどうしたらいいですか?
A.ツールメニュー:「オプション」 -「全般」タグで
 『R1C1 参照形式を使用する(C)』のチェックを外せば直ります。

Q:列を256個(IV列)よりたくさん広げることはできませんか?
A:エクセルのシートは65536行×256列が仕様上の上限です。
 シートを分けるとか、行と列を入れ替えるとか、データの方をまとめるとか、
 列数を増やさない方向で工夫するしかありません。
4名無しさん@そうだ選挙にいこう:2005/05/02(月) 10:26:45
= FAQ: 印刷プレビュー =
Q:印刷プレビューではセル内に収まっていた文字が
 実際に印刷してみるとはみ出してしまうのですが、
 何とかなりませんか?
A:「印刷プレビューと印刷結果が一致しない」のは
 昔からのExcelの弱点で、どうにもなりません。
 セルの幅や高さに余裕を持たせるか、
 書式設定で「縮小して全体を表示する」にチェックを入れましょう。


= FAQ: マクロの”””削除””” =
Q.マクロを削除したのに、ファイルを開くたびにセキュリティの確認が出ます。
A.モジュールの解放が必要。
 【モジュールの解放方法】Alt+F11→Ctrl+R→Module1を右クリック→解放
5名無しさん@そうだ選挙にいこう:2005/05/02(月) 10:27:56
= FAQ: 計算したい。角度とか =
Q.例えば、一つのセルに1803329と入力すると
 180度33分29秒と表示されるようにするには
 どうすればいいのでしょうか?
 ついでに計算もしたいです。
A.「1803329と入力すると180度33分29秒と表示される」
 というのと、計算できるというのを両立させるのは無理。
 書式を
 [h]:mm:ss や [h]"度"mm"分"ss"秒".00
 などにしておき、入力するときには
 180:33:29.99
 などとすれば、表示も計算もできる。

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

 日数および日付の表示方法と計算方法 - 基本編
http://support.microsoft.com/default.aspx?scid=%2Fdirectory%2Fworldwide%2Fja%2Fkblight%2Ft009%2F3%2F45.asp
6名無しさん@そうだ選挙にいこう:2005/05/02(月) 10:29:06
= FAQ: 合計から元の数を逆算 =
Q:たくさんの数値のリストがあって、
 リスト中のいくつかの数の合計と思われる数値が与えられました。
 リスト中のどれとどれの合計か調べることはできますか?
A:ナップザック問題(knapsack problem)として知られている難問です。
 一般的には総当りで調べるしかありませんが。
 しかし、データに特徴がある場合(桁数が限られているなど)には、
 うまい方法があって、速く解けることもあります。
 下記のページを参照してみてください。
  ナップザック問題をExcelで解く
   http://www.geocities.co.jp/SiliconValley-Oakland/8139/

= FAQ: 条件によって表示を変更するには? =
Q:セルの内容を判断して、表示を変えたい
A: IF関数を使います。
 =if(条件,条件が成立した場合,成立しなかった場合)

例1:基本
 セルA1が1の場合○、それ以外の場合×を表示
 =IF(A1=1,"○","×")
例2:if文の中にif文
 A1が、1の場合○、2の場合△、それ以外×。
 =IF(A1=1,"○",IF(A1=2,"△","×"))
例3:ANDやOR活用
 A1が、4〜6の場合は、普通と表示
 =IF(AND(A1>3,A1<7),"普通","少ないか多い")
例4:計算も出来る
 A1が10までなら、A1を10倍して表示、それ以外なら2を引く。
 =IF(A1<11,A1*10,A1-2)

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

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

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


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

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


= FAQ: 参照するセルをセルの値で指定する =
Q.A1に「5」とか「6」とか指定する値を変えたら
 B1の関数で「C5」とか「C6」とか参照先が変わるようにできませんか?
A.INDIRECT関数を使ってみましょう。
 詳しくはヘルプで「INDIRECT」を検索
9名無しさん@そうだ選挙にいこう:2005/05/02(月) 10:30:50
= FAQ: ブラウザの変更 =
Q.Excelでアドレスをクリックした時に開くブラウザをIEからSleipnirなどに変更したい。
A.スレ違いです。
 開きたいブラウザの設定画面でそのブラウザを通常使うブラウザに指定してください。


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

A:改行したい位置でAltを押しながらEnterを押せばセル内改行できます。
10質問にはテンプレ必須です:2005/05/02(月) 10:32:45


★質問するときは下記1〜6のテンプレを全て埋めること★
★自分で出来ることは自分でやろう(ヘルプ・Googleの検索など)★

【1 OSの種類】 Windows***
【2 Excelのバージョン】 Excel***
【3 VBAが使えるか】 はい・いいえ
【4 Googleでの検索キーワード】
【5 ヘルプでの検索キーワード】
【6 スレのFAQとログを読んだ】 はい・いいえ
〜〜〜質問内容〜〜〜

質問内容は、具体例や図などを使って第三者にもわかりやすいように説明しましょう。

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

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

A:全角で*と入力し「半角と全角を区別する。」のチェックを外して検索する
 (全角なのでワイルドカードとしては使われないが
  全半角を区別しないので文字として"*"にはヒットする。)
121:2005/05/02(月) 10:58:31
>>10
前スレで賛否両論あって溝が埋まらないまま終わったから
折衷案のつもりだったんだが

FAQ埋めてるうちに連続規制にかかって待ってる間だったよ
代わりに >>11書いてからにしてほしかったな
(´д⊂)グッスン

ちなみにおいらもテンプレは必要だと思うけどね
色々意見もあるだろうから、こんな形にしたんだが
ま、次スレまでに結論が出るだろう
13名無しさん@そうだ選挙にいこう:2005/05/02(月) 11:28:43
33まできたのか
14名無しさん@そうだ選挙にいこう:2005/05/02(月) 21:05:00
オークションで出品した物のデータベースを作っているのですが
今は落札金額や相手の住所などはメールからコピペしています。
メールからエクセルへのデータの移行はできるのでしょうか?
とりあえずメール全文をエクセルに移してそこから必要な箇所を
VBAで抜き出してもいいかのとも思ったのですが・・・
15名無しさん@そうだ選挙にいこう:2005/05/02(月) 21:25:50
【1 OSの種類】 Windows XP
【2 Excelのバージョン】 Excel 98
【3 VBAが使えるか】 いいえ
【4 Googleでの検索キーワード】 前の行まで足す
【5 ヘルプでの検索キーワード】
【6 スレのFAQとログを読んだ】 はい

〜〜〜質問内容〜〜〜
A列をたてに足していって、結果がA5にはいってます。
A5 = sum(A1:A4)となってます。

やりたいことは、データが増えていくので、常にA1から一個上のセルまで足す。
つまりA5 = sum(A1:RC[-1])みたいなこと って出来ないんですか?
16名無しさん@そうだ選挙にいこう:2005/05/02(月) 22:05:26
>>14 >>10


>>15
=SUM(INDIRECT("A1:A"&ROW()-1))

で、Excel98ってMac版じゃなかったか?
Win版も98あったっけ?
まあ、97も98もINDIRECT関数、ROW関数ともに使えるから問題はないと思うけど。
1715:2005/05/03(火) 01:23:25
>>16ごめんなさい。いまバージョン見たらEX2000でした。

INDIRECT関数ですね。
使ったことないので調べて見ます。ありがとうございました。
18名無しさん@そうだ選挙にいこう:2005/05/03(火) 04:16:50
前スレで放置されたので、もう一度質問です。
【1 OSの種類】 Windows○Psp2を使ってます
【2 Excelのバージョン】 Excel2○03を使ってます
【3 VBAが使えるか】 使えるかもしれないけど、使えないかもしれないです
【4 Googleでの検索キーワード】 しめじの炒め方
【5 ヘルプでの検索キーワード】 しめじの和え物
【6 スレのFAQとログを読んだ】 半分読みました

あるエクセルのWEBサイトで、下のようにセルに入力すると、勝手にリンクが張られ、
そのリンクをクリックしただけで、自動的にメールが作成できると書かれてました。
しかし、クリックすると日本語部分が文字化けします。
どうすればいいですか?相手への嫌がらせで、文字化けのままメール送っていいですか?

mailto:[email protected];[email protected][email protected][email protected]&
subject=ありがとうございます&body=当メールサービスをご利用いただきありがとうございます
19名無しさん@そうだ選挙にいこう:2005/05/03(火) 05:13:39
検索キーワードに「 こ の 質 問 はネ タ で す 」って書いてあるから
これはまじめに回答する必要無いよね
20名無しさん@そうだ選挙にいこう:2005/05/03(火) 07:07:31
まったくない。放置で可。
21名無しさん@そうだ選挙にいこう:2005/05/03(火) 08:35:32
ふざけてる奴はテンプレ書き直しても回答する必要なし
この内容の質問は永久に放置
22名無しさん@そうだ選挙にいこう:2005/05/03(火) 08:38:04
テンプレ厨はずいぶんがんばったんだな
そんなに他人に強要したけりゃ自分で別スレたてればいいのに

「僕が責任もってなんでも答えます、その代わりテンプレ必須です」ってね
23名無しさん@そうだ選挙にいこう:2005/05/03(火) 09:13:57
まあ、黄金週には22みたいのも湧いてくるわな
24名無しさん@そうだ選挙にいこう:2005/05/03(火) 09:49:36
黄金厨って椰子?
天婦羅大好きと一緒にウザいから早くどっか逝け
25名無しさん@そうだ選挙にいこう:2005/05/03(火) 10:37:22
天麩羅があると>>16みたいに
「Excel〜なら〜関数が使える」とか
「Excel〜なら〜の機能使えばいい」とかが判るから
やっぱこのくらいの簡単な天麩羅は有った方がいいよ。
某スレみたいに天麩羅だけで、書き込み制限行数の
約半分が埋まるような物だとさずがにウザいけど。
26名無しさん@そうだ選挙にいこう:2005/05/03(火) 10:42:03
項目少し減らしてこのくらいでどうだ?

【1 OSの種類】
【2 Excelのバージョン】
【3 VBAが使えるか】
【4 Googleやヘルプでの検索キーワード】
27名無しさん@そうだ選挙にいこう:2005/05/03(火) 10:52:16
OSとExcelのバージョンを合わせて1行にして欲しい。
28名無しさん@そうだ選挙にいこう:2005/05/03(火) 11:00:37
んじゃかなり気が早いが次スレテンプレ案ということで

【1 OSの種類 / Excelのバージョン】
【2 Googleやヘルプでの検索キーワード】
【3 VBAが使えるか】はい・いいえ
29名無しさん@そうだ選挙にいこう:2005/05/03(火) 11:01:41
【1 OSとExcelのバージョン】 Windows○○、Excel■■
【2 VBAが使えますか】 はい or いいえ
【3 Googleやヘルプでの検索キーワード】(例) Googleで「配列変数」、「使い方」

こんなかんじかな?
30名無しさん@そうだ選挙にいこう:2005/05/03(火) 11:02:16
>>28
かぶった ごめん
31名無しさん@そうだ選挙にいこう:2005/05/03(火) 11:17:47
ここはテンプレの総合相談所でつか?(フ
32名無しさん@そうだ選挙にいこう:2005/05/03(火) 11:18:23
>>22
これぐらいのテンプレも使えないお子ちゃまはExcel使おうなんて思わずにママのおっぱいでも吸って家でネンネでも
してろ
33名無しさん@そうだ選挙にいこう:2005/05/03(火) 11:27:11
>>31
いえ、Excelの総合相談所です。

しかし、回答をするために必要な情報をきちんと書かない人が多いので、
それを書かせるためのテンプレを相談してるだけです。

テンプレの総合相談所なら、テンプレが決まったらそこで打ち切りですが、
ここでは必要な情報を提示した(テンプレを使った)うえでの質問に対する
回答がメインですから。
34名無しさん@そうだ選挙にいこう:2005/05/03(火) 11:31:30
>>32
邪魔だから寝ててください
35名無しさん@そうだ選挙にいこう:2005/05/03(火) 12:01:12
テンプレに関しての話をもう一度前スレからおっかけて気づいたこと
提案者の前スレ>>975のカキコの末尾付近

>最低限このくらいは書かせようぜ。
>「Excelのバージョン、OSのバージョンも書くとレスが付きやすい。」とかじゃ生ぬるいし

…論外、だと感じる

答えたい人が答えればよいのでは?
答えてあげたい人がそのために必要な情報を得る手段としてのテンプレが必要なんじゃ?

>>28に一票
36名無しさん@そうだ選挙にいこう:2005/05/03(火) 12:25:54
37名無しさん@そうだ選挙にいこう:2005/05/03(火) 12:31:02
>>18
自分宛てにメールを送ってみなさい。
38名無しさん@そうだ選挙にいこう:2005/05/03(火) 13:59:02
天婦羅だが、OSが関係あることって滅多にないだろ?
ごくまれにあることは知ってるが。


39名無しさん@そうだ選挙にいこう:2005/05/03(火) 18:03:46
>>38
情報の小出しを防ぐ意味で付けておいてもいいでしょ
40名無しさん@そうだ選挙にいこう:2005/05/03(火) 19:14:13
Macintosh かも知れないしぃ。
4114:2005/05/03(火) 20:33:01
>>14
すみませんでした。
OSはXP、エクセルは2002です。
VBAはそれなりに出来ます。
42名無しさん@そうだ選挙にいこう:2005/05/03(火) 21:28:23
>41
VBAできるならとっくにググって知ってるだろうけど
OutlookならExcelにデータを引っ張ってこられる。
が、本文中の住所や金額だけ抽出してくるのは無理かと。
Excelに本文引っ張ってきた後に抽出するのも
書式が決まってるわけでも無いだろうから難しいんじゃ?
4314:2005/05/03(火) 21:50:35
OutlookExprssを使っていますがOutlookじゃないと移行できないんでしょうか?
主に落札後の主催者からのメールからデータを移行しようと思っているので
引っ張ってこれれば抽出はなんとかなると思います。
ちなみにOutlookからのデータの移行はエクセル側からするんですか?
44名無しさん@そうだ選挙にいこう:2005/05/03(火) 22:05:27
【1 OSの種類】 Windows2000
【2 Excelのバージョン】 Excel2003
【3 VBAが使えるか】 あまり使えない
【4 Googleでの検索キーワード】 ダイアログボックスを表示しない マクロ
【5 ヘルプでの検索キーワード】 ダイアログボックス
【6 スレのFAQとログを読んだ】 半分読みました

csvファイルをシート1に開くマクロを、Google等を参考に
(パクリ同然)書いてみました。
ちゃんと開くようになったのですが、最後にダイアログボックス表示、

<クリップボードに大きな情報があります。[はい] 、[いいえ] >
がでてしまいます。
ダイアログボックスを表示しない マクロコード教えてください。
4514:2005/05/03(火) 22:13:40
何度もすみません。
今思いついたのが・・・
1、OutlookExprssのメールをテキストファイルで保存(これは手動、これ移行はVBA)
2、新しいブックでそのファイルを開く
3、必要な文字を抜き取る
4、データのあるブックに移す
こんな感じならなんとか出来そうでしょうか?
もっと簡単(無駄の無い)方法があったら教えて下さい。
46名無しさん@そうだ選挙にいこう:2005/05/03(火) 22:46:43
>>23
ほんとに湧いてるのは「厨が増えて困るよ」みたいなことを
言いたがる半端野郎なんだけどな。

お前だってアホ丸だしの初心者だったくせに。
47名無しさん@そうだ選挙にいこう:2005/05/03(火) 22:48:27
>>44
DisplayAlerts でヘルプを検索
48名無しさん@そうだ選挙にいこう:2005/05/03(火) 23:03:47
【1 OSの種類 / Excelのバージョン】 WindowsXP/Excel2000
【2 Googleやヘルプでの検索キーワード】 データテーブル
【3 VBAが使えるか】いいえ

グラフを作りデータテーブルを付ける、そのテーブルの行数が多いと
全て表示されず、下のほうが切れてしまいます。
これを修正するのにプロットエリアを広げるのですが、当然、上にある
グラフ本体の部分も広がってしまいます。
グラフを縦に広げずに、データテーブルだけを広げる方法はありませんか?
49名無しさん@そうだ選挙にいこう:2005/05/03(火) 23:08:13
>>47  ありがとうございます!

Application.DisplayAlerts = False

でいけました!
50名無しさん@そうだ選挙にいこう:2005/05/04(水) 00:16:14
【1 OSの種類】 Windows2000
【2 Excelのバージョン】 Excel2003
【3 VBAが使えるか】 あまり使えない
【6 スレのFAQとログを読んだ】 半分読みました

CSVファイル
H1,4,0,0504201
H2,1,,,,,,2,,,,
H3,,,,,,,,,,,,
H4,1,1,1,1,1,1,
1,Aランチ   
1,2,900,2,900,
2,Bランチ    
2,3,1900,3,1900,
3,ラーメン   
2,3,1000,3,100,
HH,29,5710,0,0,
TT,1,0000,,,,,
MM,0,0,0,0,0,0

上記のようなCSVファイルをエクセルで読み込んで、
(1,定食Aから、3,うどんまで)のメニューと売り上げ金等を、
集計表に参照?しているのですが、毎日のことなので売れたメニューの数がかわります。
(4,そば 5,お弁当  6,味噌汁 etc..)
HH,TT,MM,とかがなければ楽なのですが、
こういう指定範囲が毎回変わる場合は、マクロか関数で処理できるのでしょうか?

よろしくお願いします。
説明下手で、すいません。
51名無しさん@そうだ選挙にいこう:2005/05/04(水) 00:18:27
(1,Aランチから、3,ラーメンまで)のメニューと売り上げ金でした。
スマソ
52名無しさん@そうだ選挙にいこう:2005/05/04(水) 00:20:26
>>46
  >>46
    >>46
53名無しさん@そうだ選挙にいこう:2005/05/04(水) 00:23:37
>>50
なんらかの規則があるならなんとでもなるけど
どういう規則なのか説明出来ないなら、何もアドバイスすることは出来ない。
54名無しさん@そうだ選挙にいこう:2005/05/04(水) 03:16:12
前スレで放置されたので、もう一度質問です。

【1 OSの種類】 Windowsを使ってます
【2 Excelのバージョン】 Excelを使ってます
【3 VBAが使えるか】 近頃のVBAは使い物にならないです。目を離すとすぐにサボって・・
【4 Googleやヘルプでの検索キーワード】 インターネットプロダイバー(インターネットに潜る人もいるらしいです)
【5 スレのFAQとログを読んだ】 女心ほどは読めませんでした。

あるエクセルのWEBサイトで、下のようにセルに入力すると、勝手にリンクが張られ、
そのリンクをクリックしただけで、自動的にメールが作成できると書かれてました。
しかし、クリックすると日本語部分が文字化けします。
どうすればいいですか?相手への嫌がらせで、文字化けのままメール送っていいですか?

mailto:[email protected];[email protected][email protected][email protected]&
subject=ありがとうございます&body=当メールサービスをご利用いただきありがとうございます
55名無しさん@そうだ選挙にいこう:2005/05/04(水) 03:55:08
56名無しさん@そうだ選挙にいこう:2005/05/04(水) 04:16:53
ていうか、↓のことでしょ?
ttp://www.still.co.jp/excel/support/077ems.xls
57名無しさん@そうだ選挙にいこう:2005/05/04(水) 08:05:06

【1 OSの種類 / Excelのバージョン】WindowsXP/Excel2002,Excel2003
【2 Googleやヘルプでの検索キーワード】画像 サイズ 取得
【3 VBAが使えるか】基本的なものなら

ユーザーフォームのイメージで開いた画像の高さや幅をPicture.Width、Picture.Heightで取得できますが、
これをユーザーフォームを使わずに取得するにはどうすればいいですか?
具体的にやりたいことは、パスを指定した複数の画像の高さと幅の比率を知りたいだけなんです。
画像は全て横長のもので、幅は必ず高さの倍数になります。
ユーザーフォーム内に開いた画像なら
Image1.Picture.Width / Image1.Picture.Height で簡単に出せるのですが、
ワークシートに書いてあるパスの画像の縦横比をワークシートに返すだけなのに
わざわざユーザーフォームを立ち上げるのもウザいし、画像の内容を確認する必要もないのに
全ての画像を開いていくのはかなり無駄だと思います。

For i = 1 To 100 '←実際には100ではなく可変
 Cells(i, 2).value = Cells(i, 1)に書いてあるパスの画像の幅 / 高さ
Next i
そこで、こんな感じで処理したいを思っているのですが
なにか手段をご存じの方、どうかお知恵をお貸しください。
画像はbmpかpngかjpgで最大高は400、最大幅は3200です。
それと、複数のPC(全てOSはXP、Excelは2002と2003がある)で使うので
何らかのソフトを入れなければならない方法は避けたいです。
APIとか使えば出来そうなんですが、そっちの知識は全く無いもので。
58名無しさん@そうだ選挙にいこう:2005/05/04(水) 11:56:58
>>57
Sub test()
Dim a
Set a = LoadPicture(Cells(1, 1).Text)
MsgBox (a.Height & " x " & a.Width)
End Sub

A1に画像のパスがあるものとします
59名無しさん@そうだ選挙にいこう:2005/05/04(水) 12:06:30
>>58
ちなみにここで取得した数字ってピクセルではないんで、
なんなんでしょうか (ーー゛)
まあ、縦横比を求める分にはどうでもいいですが、、、
6057:2005/05/04(水) 12:55:31
>>58
ありがとうございます。
ユーザーフォームで処理するのと同じようなことが出来るんですね。
でも数十ほど処理してみたらいくつか問題点が、、、
・ピクセル単位では「幅/高さ」で割り切れていた物が割り切れなくなることがある。
・png画像が処理できない

確認したらユーザーフォームの方も同じ仕様だったので、1画像でしか確認をしなかった私が悪いのですが
ピクセル単位の値は返らなくても良いけど、「幅/高さ」の計算でピクセル単位で計算した場合と
同じ結果が出ないと困ります。(画像作成ミスを発見できなくなるため、結果を丸めることは出来ません。)

どうかこの問題点を解消できる方法を教えてください。宜しく御願いします。
61名無しさん@そうだ選挙にいこう:2005/05/04(水) 16:27:21
>60
何が何でもExcelにやらせるんじゃなく、餅は餅屋ってことで
レポート出力機能を持つ画像ビューワ使ったら?
62名無しさん@そうだ選挙にいこう:2005/05/04(水) 16:42:32
それ言い出したら"専用ソフト使え"で済む内容の質問は
いままでも腐るほどあったわけだが
質問者はExcelでやりたい事情があるからここに来るんだろ
63名無しさん@そうだ選挙にいこう:2005/05/04(水) 16:53:46
エクセルのセルに書いてあるメアドをコピペしようとしたりすると、
一々メール送信ウィンドがでて邪魔なんですが、
何とかする方法ありませんか?
64名無しさん@そうだ選挙にいこう:2005/05/04(水) 16:55:54
>>63
あります。
(知りたければ>>10、知りたくなければさようなら)
65名無しさん@そうだ選挙にいこう:2005/05/04(水) 17:06:40
>64
ありがとうございました。
おかげで解決しました。
66名無しさん@そうだ選挙にいこう:2005/05/04(水) 17:11:11
>62
今までだってそれがしたければAccessの方がいい云々のレスがあったので、
別ソフトへの誘導は場合によって可なんだと思ってたが…

自分も以前Excelで画像のサイズを求めようとしたけど、pngやpsdの
画像で躓いて、結局苦労しなくてもサイズを出力できる画像ビューワにたどり着いた。
で、ビューワで出力したテキストファイルをExcelで加工して使ってる。
67名無しさん@そうだ選挙にいこう:2005/05/04(水) 17:41:31
でも>>57ははっきりと
> 何らかのソフトを入れなければならない方法は避けたいです。
って書いてるんだから、代用策しか思いつかん奴は黙ってればいいんじゃない?
結果さえ出ればなんでもいいって奴になら、代用策を提案してやるのもいいけど
こういう質問内容の時には質問者が"イヤだ"と言ってる方法を押しつけるんじゃなくて
わかる奴が回答すればいい
このスレかなりレベル高い奴も来るから、放っておいてもそのうちベテランが回答付けるだろう
6857:2005/05/04(水) 17:49:33
>>61
はい、現在はそのような方法で処理してますが、
事情があってOfficeくらいしか入ってない(入れられない)他のPCでも
同様の処理がしたい為、質問に来た次第です。
どうか宜しく御願いします。
69名無しさん@そうだ選挙にいこう:2005/05/04(水) 17:50:01
【1 OSの種類 / Excelのバージョン】Windows2000,Excel2003 です。
Excelのグラフでy軸に平行な直線(x=5など)を引くにはどうすれば
いいのでしょうか?
よろしくお願いします。
70名無しさん@そうだ選挙にいこう:2005/05/04(水) 18:06:54
>>65

>>1
( ・自己解決したって人はその解決手段を他の人の参考の為に書いてね。
って書いてあるの読んだ?
71名無しさん@そうだ選挙にいこう:2005/05/04(水) 18:27:59
初めまして。初めてエクセルを使用したのですが、表をつくってこれをグラフにしたいと思います。
左の縦軸の数値のスパンを3種類ほど混ぜて見やすく表示したいのですが、こういう事って出来ますか?

具体的には、左は、0〜25(個)まで、30〜40(度)まで、380〜450(円)まで。
下は、日付で、折れ線グラフをつくりたいのです。

まとめてグラフにすると、450が上限値になるので、0〜25が見にくいし、50〜350の数値は使用しないので、
とっぱらいたいのですが。どうか、宜しくお願いします。
72名無しさん@そうだ選挙にいこう:2005/05/04(水) 18:45:48
>>60
ざくっと検索しましたが、世界中でloadpictureではPNGが
読めないと大騒ぎしてます。なにやら直接バイナリから
サイズを取得するのが早道のようです。
そのためのActiveXやらDLLやらはあるようですが、
自力でVBAだけでやるのは難しそうです。
自分ではできませんが、画像フォーマットから研究する
以外ない?
73名無しさん@そうだ選挙にいこう:2005/05/04(水) 19:37:52
>>69
降下線ではダメですか?
74名無しさん@そうだ選挙にいこう:2005/05/04(水) 19:41:41
>>71
数値軸を左右で2軸使用することはできるはずですが…

数値軸の最小値と最大値は任意で指定できますよ
75名無しさん@そうだ選挙にいこう:2005/05/04(水) 21:53:45
過去ログどこにあるかわかりません
だれかおしえて…
76名無しさん@そうだ選挙にいこう:2005/05/04(水) 21:55:09
テンプレにばかり拘って過去ログを忘れるスレでつね
7771:2005/05/04(水) 22:02:48
>>74 レスありがとうございます。
その、任意で数値を変えるやり方というのはどうやるのですか?
7869:2005/05/04(水) 22:18:18
>>73
直線を引きたいとき、降下線を利用する手があること、気づきません
でした。教えてくださりありがとうございます。
他のやり方についても、自分でもう少し調べてみますが、もし何かご
存知でしたら、よろしくお願いいたします。
7974でないが:2005/05/04(水) 22:18:30
>>77
軸を右クリックして書式設定。
しかし74も言っているように3軸はできない。
80名無しさん@そうだ選挙にいこう:2005/05/04(水) 22:25:58
次スレ以降、過去ログのURLがなくなる悪寒。
81過去ログその1:2005/05/04(水) 22:26:23
82過去ログその2:2005/05/04(水) 22:27:14
17 http://pc2.2ch.net/bsoft/kako/1062/10622/1062260735.html
18 http://pc2.2ch.net/bsoft/kako/1067/10672/1067264540.html
22 http://pc5.2ch.net/test/read.cgi/bsoft/1078930810/ (html化待ち)
23 http://pc5.2ch.net/test/read.cgi/bsoft/1083074470/ (html化待ち)
24 http://pc5.2ch.net/test/read.cgi/bsoft/1085756069/ (html化待ち)
25 http://pc5.2ch.net/test/read.cgi/bsoft/1088690113/ (html化待ち)
26 http://pc5.2ch.net/test/read.cgi/bsoft/1091619391/ (html化待ち)
27 http://pc5.2ch.net/test/read.cgi/bsoft/1096068933/ (html化待ち)
28 http://pc5.2ch.net/test/read.cgi/bsoft/1099232633/ (html化待ち)
29 http://pc5.2ch.net/test/read.cgi/bsoft/1102922371/ (html化待ち)
30 http://pc5.2ch.net/test/read.cgi/bsoft/1106829956/ (html化待ち)
31 http://pc8.2ch.net/test/read.cgi/bsoft/1109340075/ (html化待ち)

以前は「dat落ち」って書いてあったヤツが「html化待ち」になってるけど今もhtml化ってやってるのか?
あと、htmlになってたヤツで今は↑のURLで見られなくなってるのがあるね。
ttp://makimo.toで「Excel総合」あたりで過去ログ検索した方がいいかも。
83名無しさん@そうだ選挙にいこう:2005/05/04(水) 22:29:17
=過去ログ=
2 http://pc.2ch.net/test/read.cgi/bsoft/986283001/
3 http://pc.2ch.net/bsoft/kako/1004/10044/1004432306.html
4 http://pc.2ch.net/bsoft/kako/1012/10124/1012439547.html
5 http://pc.2ch.net/bsoft/kako/1018/10180/1018055390.html
6 http://pc.2ch.net/bsoft/kako/1023/10238/1023811906.html
7 http://pc.2ch.net/bsoft/kako/1028/10287/1028725250.html
8 http://pc.2ch.net/bsoft/kako/1033/10339/1033983470.html
10 ttp://pc2.2ch.net/bsoft/kako/1042/10429/1042913355.html
11 ttp://pc2.2ch.net/bsoft/kako/1045/10459/1045997062.html
12 ttp://pc2.2ch.net/bsoft/kako/1050/10500/1050069432.html
13 ttp://pc2.2ch.net/bsoft/kako/1053/10530/1053069026.html
14 ttp://pc2.2ch.net/bsoft/kako/1055/10553/1055342774.html
15 ttp://pc2.2ch.net/bsoft/kako/1057/10577/1057720306.html
16 ttp://pc2.2ch.net/bsoft/kako/1060/10603/1060345528.html
17 ttp://pc2.2ch.net/bsoft/kako/1062/10622/1062260735.html
18 ttp://pc2.2ch.net/bsoft/kako/1067/10672/1067264540.html
22 ttp://pc5.2ch.net/test/read.cgi/bsoft/1078930810/ (html化待ち)
23 ttp://pc5.2ch.net/test/read.cgi/bsoft/1083074470/ (html化待ち)
24 ttp://pc5.2ch.net/test/read.cgi/bsoft/1085756069/ (html化待ち)
25 ttp://pc5.2ch.net/test/read.cgi/bsoft/1088690113/ (html化待ち)
26 ttp://pc5.2ch.net/test/read.cgi/bsoft/1091619391/ (html化待ち)
27 ttp://pc5.2ch.net/test/read.cgi/bsoft/1096068933/ (html化待ち)
28 ttp://pc5.2ch.net/test/read.cgi/bsoft/1099232633/ (html化待ち)
29 ttp://pc5.2ch.net/test/read.cgi/bsoft/1102922371/ (html化待ち)
30 ttp://pc5.2ch.net/test/read.cgi/bsoft/1106829956/ (html化待ち)
31 ttp://pc8.2ch.net/test/read.cgi/bsoft/1109340075/ (html化待ち)
32 ttp://pc8.2ch.net/test/read.cgi/bsoft/1112190520/ (html化待ち)
84名無しさん@そうだ選挙にいこう:2005/05/04(水) 22:29:44
かぶった
85名無しさん@そうだ選挙にいこう:2005/05/04(水) 22:34:21
>>77
2つ目の軸にしたい系列を選択して書式設定→軸→第2軸ですかね
Excel2000でやってみました
バージョン違いでやり方違うかも

できたら次からは使用環境なども書かれたほうが、質問サイドも回答サイドにも有益かと
86名無しさん@そうだ選挙にいこう:2005/05/04(水) 23:00:46
8771:2005/05/04(水) 23:11:07
>>79
>>85
回答ありがとうございます!早速やってみます。
使用環境なども次から書くようにします。助かりました。
88名無しさん@そうだ選挙にいこう:2005/05/04(水) 23:27:49
【1 OSとExcelのバージョン】 Windows2000、Excel2003
【2 VBAが使えますか】 いいえ
【3 Googleやヘルプでの検索キーワード】エクセル 列検索 セルの参照

下表があります。B〜E列にある値を,下のようにの縦に並んだ数字と一致させA列の値を返したいのですが…
やってみた関数はこれです
【=INDEX($A$1:$A$3,$A$10,,$B$1:$HM$3)】
これだとVALUE!で返されてしまいます。
何か他の関数でいい方法(VLOOKUPとHLOOKUPの組み合わせorCHOOSE関数?)
お手数おかけしますかよろしくお願いいたします・・・。

┌─────┬───┬───┬───┬───┬───┬
│        │ A  │ B   │ C   │ D   │ E   │
├─────┼───┼───┼───┼───┼───┼
│  1     │ 121  │  1  │ 3    │ 5    │ 7   │…
├─────┼───┼───┼───┼───┼───┼
│  2     │ 521  │  2  │ 4    │ 10   │ 15  │…
├─────┼───┼───┼───┼───┼───┼
│  3     │ 100  │  1  │ 5   │ 7   │ 8  │…
├─────┼───┼───┼───┼───┼───┼

┌─────┬───┬───┬───┬───┬───┬
│        │ A   │ B   │ C   │ D   │ E   │
├─────┼───┼───┼───┼───┼───┼
│  10     │  1   │  121│ 100  │ 144 │     │…
├─────┼───┼───┼───┼───┼───┼
│  11     │ 2    │ 521 │      │     │    │…
├─────┼───┼───┼───┼───┼───┼
│  12     │ 3    │  121│     │     │    │…
├─────┼───┼───┼───┼───┼───┼
8988:2005/05/04(水) 23:30:06
【=INDEX($A$1:$A$3,match($A$10,,$B$1:$HM$3)】
でした。
90名無しさん@そうだ選挙にいこう:2005/05/05(木) 00:36:51
【1     O S の 種 類    】 Windows xp

|  2|  3|  1|  13|  5|

のようにセルが並んでいるとき
これをそのままにしながら、グラフだけは前の値にそのセルの値を加えて表示させることはできますか?

うーん…上手く説明できないのですが、

セルの表示は

|  2|  3|  1|  13|  5|

のままで、グラフでは

 2| 5| 6| 19| 24|

のように増加させたいんです。
上手い検索ワードも分からないのでググっても分かりませんでした。
よろしくお願いしますm(_ _)m
91名無しさん@そうだ選挙にいこう:2005/05/05(木) 00:42:25
>>90
積み上げグラフ
9248:2005/05/05(木) 10:32:10
>>48 で質問をした者です
わかりにくい文章で恐縮です。


【1 OSの種類 / Excelのバージョン】 WindowsXP/Excel2000
【2 Googleやヘルプでの検索キーワード】 データテーブル
【3 VBAが使えるか】いいえ

お尋ねしたいのは
棒グラフなどにデータテーブルを表示させた際に
データテーブルと上のグラフ表示の部分の縦方向の比率を
任意で変更する方法はありませんか?ということです。

データテーブルのサイズを大きめに、グラフを小さめにしたいのですが、
データテーブルの大きさだけを調整することができません。
フォントサイズを小さくすればテーブルサイズが小さく、
フォントサイズを大きくすればテーブルサイズが大きくはなるのですが。。。

プロットエリア全体のサイズを変更すると両者が一度にサイズが変わってしまい
なかなか思ったとおりの比率にならず、データテーブルの下が切れたりしてしまいます。

93名無しさん@そうだ選挙にいこう:2005/05/05(木) 11:00:49
>>60
ありましたよ画像サイズ取得のコードが。
http://kone.vis.ne.jp/program/#sample32
一番最後のFunctionで Dim l を追加すればそのまま動きました。
Sub test()
Dim h, w, a
h = GetImageSize(Selection.Text, imageUnknown).Height
w = GetImageSize(Selection.Text, imageUnknown).Width
a = GetImageSize(Selection.Text, imageUnknown).Image
MsgBox (a & " : " & h & " x " & w)
End Sub

PNGのSizeもピクセルでばっちり取得できます。
BMP、JPG、GIF、PNGで動いています。
バイナリで画像データから直接取得の方法です。
94名無しさん@そうだ選挙にいこう:2005/05/05(木) 11:11:24
>>93
こっちのほうがいいですね。
Sub test()
Dim h As ImageSize
h = GetImageSize(Selection.Text, imageUnknown)
MsgBox (h.Image & "-" & h.BPP & "bit : " & h.Height & " x " & h.Width)
End Sub

ダウンロードしたファイルのGETIMAGE.BASがVBAでそのまま
使えます。(最上行は削除)
95名無しさん@そうだ選挙にいこう:2005/05/05(木) 11:13:49
>>69
グラフオプション(グラフエリアで右クリック)の目盛線でどぞ
9657:2005/05/05(木) 12:31:33
>>93
ありがとうございます。
とりあえず私が使ってるPCでは正常に動きました。
ただ、一つ気がかりが、、、
> **動作環境**
> VB5のランタイムが必要です。
今、私が使ってるPCにはVB5SP3ランタイムが入ってるからいいのですが、
他のPCには入ってないかも、、、というかたぶん入ってない。
でも、参照設定や外部参照しなくても動いてるところを見ると、
VBA上ではVB5ランタイムの有無に関わらず動くのかな?
(その辺のことよくわかってないです、はい。)

あと、>>58さんから教えていただいた方法を手がかりに
ピクセル単位に変換する方法を見つけました。
Dim buf As StdPicture
Dim x As Integer, y As Integer
Set buf = LoadPicture(Cells(1, 1).Text)
x = CLng(CDbl(buf.Width) * 567 / 15000)
y = CLng(CDbl(buf.Height) * 567 / 15000)
MsgBox x & ":" & y
VBのScreen.TwipsPerPixelX(及びY)という関数があれば、
Width及びHeightプロパティで取得したTwip値から正確なピクセル値を出せるようですが、
VBAでは使えないのでその代用手法のようです。
厳密に言えば正確な値は出ないけど、ピクセル値よりTwip値の方が遙かに大きいので、
計算の段階で丸めてしまえばピクセル単位での整数誤差は0になるようです。
「幅/高さ」の結果は丸められないけど、この方法ならとりあえず問題はなさそうです。
ただ、pngが扱えないという問題は残ったままですが。

>>93さんが探してくれた方法の方が(動くなら)pngも扱え、更に高速かつ正確なようなので
まずこちらを試してみて、ダメならしばらくは>>58さんが紹介してくれた方法の改良版で行こうと思います。
とりあえず今すぐには試せないので、試したら報告に来ます。
(>>93さん紹介の方法がダメなら、また情報提供を御願いすると思います。)
97名無しさん@そうだ選挙にいこう:2005/05/05(木) 12:32:45
顧客名簿とか売上データベースってアクセスでやった方がいいのかな?
プロフェッショナル買ってきたばかりでよくわかんない・・・
98名無しさん@そうだ選挙にいこう:2005/05/05(木) 12:42:13
>>96
どもども。(56=93です)
ExcelのVBAで使う分にはVB5ランタイムは不要です。
このライブラリはVBAではなくVBのソフト作るときのモジュール
見たいですから、VBAの機能だけでまかなっています。

>93のURLからファイルをダウンロードして、当該モジュールを
module1に転記。dim lだけ追加すればtest()が動きましたから、
大丈夫でしょう。
TWIP値というのは知らなかったのでこちらも勉強してみます。
ではでは。
99名無しさん@そうだ選挙にいこう:2005/05/05(木) 13:54:06
【 OSの種類】 Windows2000
【 Excelのバージョン】 Excel2003
【 VBAが使えるか】 あまり使えません
【 スレのFAQとログを読んだ】 半分読みました

CSVファイルを、GetOpenFileNameで開いて、
外部データの取り込みマクロを適用したいのですが、
(Space区切りの文字列データを開く為)

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;D:\D\test\test.csv", _
Destination:=Range("A1"))
.Name = "test"

test.csvに、読み込んだcsvファイルを当てはめるには
マクロをどう書いたらよいですか?
100名無しさん@そうだ選挙にいこう:2005/05/05(木) 14:13:29
>>99
マクロの自動記録を使ってください。
それを自分で加工すればいいですよ。
101名無しさん@そうだ選挙にいこう:2005/05/05(木) 14:22:14
>>99
【 日本語が使えるか】 あまり使えません
ですか?
102名無しさん@そうだ選挙にいこう:2005/05/05(木) 14:27:53
>>101
質問者に普通に質問するかスルーするかどちらかにされたら?
煽りたいだけなら他所でどうぞ
103名無しさん@そうだ選挙にいこう:2005/05/05(木) 14:36:28
>>100  ありがとうございます。

Dim myBookname As String
Dim ReturnBook As Workbook, TargetBook As Workbook

Set ReturnBook = ActiveWorkbook
Application.ScreenUpdating = False

myBookname = Application.GetOpenFilename("(*.csv),*.csv")

If myBookname <> "False" Then
Workbooks.Open myBookname
End If

Set TargetBook = ActiveWorkbook

Application.ScreenUpdating = True

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;D:\D\test\test.csv", _
Destination:=Range("A1"))
.Name = "test"
""""""""""""""""""""""""""""""""""""""""""""""""
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;D:ActiveWorkbook, _
Destination:=Range("A1"))
この部分が赤文字になってしまいます。
浅い知識ですみません。
""""""""""""""""""""""""""""""""""""""""""""""

104名無しさん@そうだ選挙にいこう:2005/05/05(木) 14:47:42
>>103
WithときたらEnd Withがないとおかしいですな。
105名無しさん@そうだ選挙にいこう:2005/05/05(木) 14:54:24
>>104
.Name="test"
End With

とEnd Withを追加すれば動きましたよ
てか、ちゃんとSubの中に入れてるんでしょうか、、、(不安)
106名無しさん@そうだ選挙にいこう:2005/05/05(木) 14:59:07
>>104 すみません
全部書き込めなくて
続きは
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
です どうかご教授ください。
107名無しさん@そうだ選挙にいこう:2005/05/05(木) 15:01:51
End Withの後に、

TargetBook.Worksheets(1).Range("A1:G59").Copy
ReturnBook.Worksheets(1).Range("A1").PasteSpecial Paste:=xlValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Application.DisplayAlerts = False

ActiveWindow.Close
Sheets("Sheets2").Select
Range("E4").Select
End Sub
と書きました。すいません。
108名無しさん@そうだ選挙にいこう:2005/05/05(木) 16:02:24
>>107
この部分が赤文字になってしまいます。

というところは赤字にはなりませんが?
そもそも最初にSub test() とかのSubを書いていますか?
109名無しさん@そうだ選挙にいこう:2005/05/05(木) 16:12:20
>>108
小出しになってしまい、すみません。

先頭に、
Private Sub CommandButton1_Click()
を記入しています。
110名無しさん@そうだ選挙にいこう:2005/05/05(木) 16:21:55
>>109
当方の環境では赤字になりません
111名無しさん@そうだ選挙にいこう:2005/05/05(木) 16:47:17
すみません 改めて書きます
Private Sub CommandButton1_Click()

Dim myBookname As String
Dim ReturnBook As Workbook, TargetBook As Workbook

Set ReturnBook = ActiveWorkbook
Application.ScreenUpdating = False

myBookname = Application.GetOpenFilename("(*.csv),*.csv")

If myBookname <> "False" Then
Workbooks.Open myBookname
End If

Set TargetBook = ActiveWorkbook

Application.ScreenUpdating = True

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;D:myBookname", _
Destination:=Range("A1"))
.Name = "test"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
112名無しさん@そうだ選挙にいこう:2005/05/05(木) 16:47:40
続き
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With

TargetBook.Worksheets(1).Range("A1:G59").Copy
ReturnBook.Worksheets(1).Range("A1").PasteSpecial Paste:=xlValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Application.DisplayAlerts = False

ActiveWindow.Close
Sheets("Sheets2").Select
Range("E4").Select
End Sub
113名無しさん@そうだ選挙にいこう:2005/05/05(木) 16:48:19
上記のマクロがデバックになる。
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;D:myBookname", _
Destination:=Range("A1"))

読み込んだcsvファイルを当てはめるには
マクロをどう書いたらよいですか?

何度も本当に、すみません。
114名無しさん@そうだ選挙にいこう:2005/05/05(木) 16:55:59
>>113
なんかさっきのソースと違ってますが赤字とやらは直ったのですか?

"TEXT;D:myBookname", _

がおかしいです。

"TEXT;" & myBookname, _

ではどうですか?
(試してませんが)
115名無しさん@そうだ選挙にいこう:2005/05/05(木) 16:59:29
見辛いから省略できるプロパティは省略しろ
116名無しさん@そうだ選挙にいこう:2005/05/05(木) 17:10:50
シートに画像(Jepg等)のファイルをドラッグ&ドロップで貼り付ける方法ってありませんか?
117名無しさん@そうだ選挙にいこう:2005/05/05(木) 17:20:14
>>116
ありません。
118名無しさん@そうだ選挙にいこう:2005/05/05(木) 17:33:14
>>114 ありがとうございます
自分なりにいじっているうちに、
ソース違ってしまいました。赤字はなくなりました。

"TEXT;D:myBookname", _を
"TEXT;" & myBookname, _
に変えてみたところ、

実行時エラー '-2147024809 (80070057)':
取り込み先の範囲は、クエリ テーブルが作成された同じワークシートにありません

がでました。
シート5にボタンを作って、シート1に開いたCSVファイルの範囲を
貼り付けるつもりなんですけど。

初心とはいえ、たどたどしい質問に答えて下って、ありがとうございます。
119賢人よ:2005/05/05(木) 17:41:10
エクセルのデータをもうひとつに反映させる場合はなんのマクロを
つかえばよかですかね?

たしかchange何々だったと思うんですが・・・・
だれか賢人よ お願いします。
120名無しさん@そうだ選挙にいこう:2005/05/05(木) 17:49:44
>>118
うちでは別にエラーはでていませんが、、、
121名無しさん@そうだ選挙にいこう:2005/05/05(木) 17:52:12
>>119
Private Sub Worksheet_Change(ByVal Target As Range)

それ以上はテンプレ使って、やりたいことを具体的に書いてから。
122>>99:2005/05/05(木) 18:10:52
私のトコだけエラーなんですね、、、、。

なぜ、このマクロを書いたかというと、CSVファイルをエクセルで
開いて範囲指定した部分だけシート1に貼ってシート5の表に集計
していたのです。すると、カンマ区分の数値は見れたのですが、
スペース区分の文字列が、うまく反映されなかったのです。
で、ググッテいるうちに、外部データのマクロを用いようと思ったのです。
123賢人よ:2005/05/05(木) 18:16:01
ありがとうございます121

がんばってみます。
124名無しさん@そうだ選挙にいこう:2005/05/05(木) 18:21:33
>>122
で、クエリにする理由はあるのか?
自動マクロでやれば、あとはそれを加工すればできる。
あと、エラーが出るのは、Activesheetって概念が分かって
いないからと思われ。
自分の意図した動作をしていないからだよ。
12575:2005/05/05(木) 18:23:38
>>81-83
ありがとうございました
12669=78:2005/05/05(木) 21:14:40
>>95
69=78です。お返事おくれてすみません。
ありがとうございました。
127名無しさん@そうだ選挙にいこう:2005/05/05(木) 23:27:01
セルの書式設定で表示形式を文字列にしているのに、
='シート'!B6 とかになってしまい、文字が反映せれないのは、
なんででしょうか?
128名無しさん@そうだ選挙にいこう:2005/05/05(木) 23:36:12
>>127
入力した文字列が表示されてるんじゃないのか?
129名無しさん@そうだ選挙にいこう:2005/05/05(木) 23:46:19
>>127
表示形式を文字列にすれば、数式が文字列になってしまうのは当然。
130名無しさん@そうだ選挙にいこう:2005/05/05(木) 23:52:10
一つのブックにシートが8枚あります。
1,2,3、4シートはデータです。
5シート目で1,2,3、4データシート分の表をつくりました。
6,7,8、枚目は、シート5のコピーです。
でも、参照したい文字が2,3、4シートのそれぞれから
とりたいのです。=もつけています。なんででしょうか?
131>>127:2005/05/05(木) 23:56:17
ああああああ!!!
すみません!!!
>>129さん! あざーす!
標準でできました。 忘れてください。
132名無しさん@そうだ選挙にいこう:2005/05/06(金) 01:11:04
すみません、エクセルで出した平均って単純に合計値÷回数にならないんですが・・・・
どうしてですか?マジで困ってます。だれかHELP・・・
133名無しさん@そうだ選挙にいこう:2005/05/06(金) 01:19:33
>>132
合計/要素数だよ。
そうならないなら、空セル(0値)を含んでるとか
数値と表示形式が一致しないとか
浮動小数の丸め誤差とかじゃねーの?

どれも違うってなら、数式とセルの値と平均の結果を貼ってみな。
134名無しさん@そうだ選挙にいこう:2005/05/06(金) 01:37:35
>>133
どうやら原因は
範囲の選択のときに異常値を除こうと思ってCtrlキーを押しながらやってたらそれが2重にカウントされていたようです。
それは解決したのですが、今度は
異常値などをのぞくために一部のセルを選択しないで合計や平均をだすにはどうすればいいのでしょう?
初歩的な質問ですみません・・
135名無しさん@そうだ選挙にいこう:2005/05/06(金) 03:17:37
>>134
異常値ってエラー値のこと?
まあ、除外したいセルが固定なら、普通に複数範囲を引数に指定したらいいじゃん。
たとえばA1:A10の範囲でA5のみを除外したいなら
=AVERAGE(A1:A4,A6:A10)
ってな感じで。
範囲に(位置可変で)エラーが有あった場合、それを回避したいなら、
そのエラーが出てるセルの数式を論理関数でエラーが出ないように(Null値を返すように)
式を組み直すか、配列式で数値のセルだけを拾って平均を出すかすればいい。
AVERAGE関数はNull値と文字列はカウントしないから。
(0値は非表示にしてもカウントされるから一見空セルに見えても0かNullかで結果が違う)
136名無しさん@そうだ選挙にいこう:2005/05/06(金) 08:35:54
>>135
まじサンクス
なんとかレポート終わりマスタ
137名無しさん@そうだ選挙にいこう :2005/05/06(金) 11:02:49
エクセル2002(OSはXPのhome)で、
グラフシートの表示をズームさせようとしているのですが、
「表示」→「ウィンドウに合わせてサイズ変更」のチェックがなぜか
外れないために画面固定され、ズームが出来なくなってしまいます。

これまでこのようなことがなかったため、困っております。
ググっても解決法が見当たらず、office再インストールでもだめです。
どなたかお分かりの方お助けをお願いします。
138名無しさん@そうだ選挙にいこう:2005/05/06(金) 11:43:59
139137:2005/05/06(金) 11:59:38
すみませんやり直します。

【1 OSの種類】 Windows XP home edition
【2 Excelのバージョン】 Excel 2002
【3 VBAが使えるか】 いいえ
【4 Googleでの検索キーワード】 excel グラフ サイズ変更 ズーム など
【5 ヘルプでの検索キーワード】 ズーム
【6 スレのFAQとログを読んだ】 はい (めぼしいところのみですが)


グラフシートの表示をズームさせようと
しているのですが、
「表示」→「ウィンドウに合わせてサイズ変更」の
チェックがなぜか 外れないためにサイズが固定され、
ズームが出来なくなってしまいます。

これまでこのようなことがなかったため、
大変困っております。
色々と解決法を探してましたが見当たらず、
office再インストールでもだめでした。
どなたかお分かりの方お助けをお願いします。

なお、エクセル2002を削除して、代わりに
エクセル2000(office2000)をインストール
してみても結果は同じでした。

よろしくお願いします。
140名無しさん@そうだ選挙にいこう:2005/05/06(金) 12:32:57
>>138
書き直してるんだから即レスしてあげなきゃ
やる気ないなら思わせぶりなカキコするなよ
141名無しさん@そうだ選挙にいこう:2005/05/06(金) 12:34:47
142名無しさん@そうだ選挙にいこう:2005/05/06(金) 16:10:51
WinXP Excel2003

「したいこと」
登録したマクロを、ボタンを使って起動したい

「ためしたこと」
シートにボタンを作って、デザインビューでボタンを選択→右クリックで「マクロ登録」
…を、出したいのですが右クリックしても「マクロ登録」なんてものは出てきません。
どうしたらいいでしょうか?
143名無しさん@そうだ選挙にいこう:2005/05/06(金) 16:14:27
>>142
コントロールのボタンなら「コードの表示」

「マクロ登録」はフォームのボタン。
144142:2005/05/06(金) 16:27:21
>>143
ありがとうございます!できました。
145名無しさん@そうだ選挙にいこう:2005/05/06(金) 17:00:38
WindowsXP SP2 Excel2000 の環境です。
Application.Dialogs(5).Showを使って、ファイルの保存先をダイアログで選択・作成させて
そのファイルのパスを取得したいのですが、Application.Dialogs(5).Showを使うと、
パス取得&データ操作をしないまますぐに保存されてしまいます。
InputBoxを使うとパス取得はできるのですが、保存先のディレクトリを手入力に
しなくてはならなくなってしまいます。上手い方法はないですか?

146名無しさん@そうだ選挙にいこう:2005/05/06(金) 17:12:21
>>145
Application.GetSaveAsFilename
基本中の基本です。
147名無しさん@そうだ選挙にいこう:2005/05/06(金) 19:44:45
【1 OSの種類】 Windows XP pro
【2 Excelのバージョン】 Excel 2003
【3 VBAが使えるか】 はい
【4 Googleでの検索キーワード】なし
【5 ヘルプでの検索キーワード】なし
【6 スレのFAQとログを読んだ】 はい かなり前から
〜〜〜質問内容〜〜〜

質問です。質問の度に ↑ こんなのが出てきたら煩くないですか?

148名無しさん@そうだ選挙にいこう:2005/05/06(金) 20:12:34
>>147
教えて君や情報後出し君に悩まされるよりはマシ。
149名無しさん@そうだ選挙にいこう:2005/05/06(金) 21:04:42
>>147
はい、ウザいです

>>148
テンプレ強要してレスできないんじゃ(w
150名無しさん@そうだ選挙にいこう:2005/05/06(金) 21:07:02
151名無しさん@そうだ選挙にいこう:2005/05/06(金) 22:16:49
>>147
ネタ質問に煩わされるくらいなら33倍マシ。
152名無しさん@そうだ選挙にいこう:2005/05/07(土) 00:06:23
言われなくてもテンプレ張る人なら、●買わないと過去ログが見られない
ここよりも、他のエクセルQ&Aサイトで調べたほうが手っ取り早いと思うが。
153名無しさん@そうだ選挙にいこう:2005/05/07(土) 07:24:26
>>151
スルー出来ずに何か一言言いたくなるというのに限って
自称中級者なのだから始末に負えない。
154名無しさん@そうだ選挙にいこう:2005/05/07(土) 08:04:36

(´-`).。oO( 153は自分自身に言ってるのかな・・・ )
155勅令:2005/05/07(土) 09:28:16
テンプレはつけないことに決定しました
156名無しさん@そうだ選挙にいこう:2005/05/07(土) 10:29:05
エクセル使いなら1行で済ますべし

構文
Template  OsVersion/ ExcelVersion/ IsGoogle/ IsHelp/ IsLog

Template 省略可能です。
OsVersion 必ず指定します。文字列型(String)の値を使用します。
ExcelVersion 必ず指定します。整数型(Integer)の値を使用します。
IsGoogle 省略可能です。ネット検索の状況を記述します。
IsHelp 省略可能です。ヘルプ検索の状況を記述します。
IsLog 省略可能です。過去ログ、FAQを読んだかどうか記述します。
157名無しさん@そうだ選挙にいこう:2005/05/07(土) 11:04:13
【1 OSの種類】 Windows 98
【2 Excelのバージョン】 Excel 2000
【3 VBAが使えるか】 いいえ
【4 Googleでの検索キーワード】 罫線 太さ 揃わない
【5 ヘルプでの検索キーワード】
【6 スレのFAQとログを読んだ】 微妙

〜〜〜質問内容〜〜〜
罫線を引いた所、全て同じ線種を指定しているにもかかわらず
必ず一部、太い線になってしまいます。全て削除しいろんな引き方を
試してみましたが印刷プレビューでも同じところだけ太くなってしまいます。
なにが原因なのでしょうか? 過去ログ見れる環境じゃないので
重複でしたらすみません。
158名無しさん@そうだ選挙にいこう:2005/05/07(土) 11:39:29
>>157
テンプレつかうとレスつきませんよん 。。。( ̄ー ̄)ニヤリッ
159名無しさん@そうだ選挙にいこう:2005/05/07(土) 11:45:35
>>157
プレビューではたまにそういうこともありますよ。
実際に印刷してもそうなるなら罫線設定の間違い。
あと、プレビューでなく、通常の入力画面でそうなるときも
単なる間違い。
160名無しさん@そうだ選挙にいこう:2005/05/07(土) 11:47:20
>>155
>>158

と言ってるのは約1名なので気にしないように。
161157:2005/05/07(土) 11:51:41
通常の画面では判別できません。
実はまだ実際に印刷はしていないので実行してみます。ありがとうございます。
162名無しさん@そうだ選挙にいこう:2005/05/07(土) 12:07:15
関係ないけどさ、異動先の部署で
「君もエクセルぐらいは勉強しといてくれよ」
かなんか言ってCD-R渡されたんですよ

なんでCD-R?とか思いながら家で中を覗いてみると、ワークシートが
いくつか入ってるんだけど、開こうとするとPCが落ちるんですよ
何度やっても落ちる

見るとファイルのサイズが50メガとかですよ
どんな膨大なデータが入ってるんだとか考えながら、ページファイルのサイズ
増やしたりして、やっと開くのに成功したんですけどね
なんと中身は簡単なシートがわずかに5枚ですよ

賢明なスレ住人ならピンと来たでしょう、
5枚のシートの全セルに、書式が設定されてたんです
そうとも知らずにここの部署の連中は、ディスクをカリカリ言わせながら
50メガのシートを編集してたんですね

余白の書式を削除して保存し直すと、ファイルのサイズはわずかに50キロでした
1000分の1に縮んだワークシートのアイコンを見ながら、俺は思いましたね

「お前が勉強しろバカ」
163名無しさん@そうだ選挙にいこう:2005/05/07(土) 12:42:43
>>162
試されてるんじゃないの?
つうか、ありがちなミスだがな w
164名無しさん@そうだ選挙にいこう:2005/05/07(土) 13:42:47
>>160
1名じゃないって。
漏れもテンプレつけたやつには答えないことにするか
165名無しさん@そうだ選挙にいこう:2005/05/07(土) 14:07:01
と、また155が言っています。
166名無しさん@そうだ選挙にいこう:2005/05/07(土) 14:23:48

まともな奴なら、テンプレなどなくとも
ここのテンプレから「検索ワード」を除いた程度のものは書くし、
検索してからここに来るので検索ワードくらいすぐに書ける。
しかしそういう必要な情報を書けない子がいるからテンプレってもんが出来る。

つまり質問テンプレなんて本来必要ない物なんだが
おバカな子が多く、情報を小出しにされたり環境を聞き返したりしなくちゃならなくなかったり
スレのFAQにある内容を質問してきたり、ググればすぐわかる質問をしてきたりと
そういったことを回避するためだけのもの。

*まともな奴→テンプレ無くてもテンプレと同等の情報を提示する→テンプレが煩わしいとは思わない
*おバカさん→テンプレ無ければ必要な情報も無しに質問する→書くべき事が増えるので「テンプレうざい」と思う

まぁそんなわけで、「テンプレつけたやつには答えない」なんて言ってるおバカさんが
回答をやめたところで、スレ的にはなんらダメージは無いのでお好きなように。
167名無しさん@そうだ選挙にいこう:2005/05/07(土) 15:16:45
すみません。質問させてください。
DDE通信使ってExcelのブック内からシート名のリストを
抜き出したいんですが、可能でしょうか?
DDE requestコマンドに適当な項目名つければいけそうな気が
するんですが項目名が不明です、、。

どなたかご存知の方いらっしゃいましたら御教授お願いします。
168名無しさん@そうだ選挙にいこう:2005/05/07(土) 16:37:50
質問です。

あるセルに文字が入っていて、その文字が他のシート名と一致してる場合、
数式内でそのセル内の文字を読ませて、そのシートに飛ばすことはできるのでしょうか?

つまり、

1枚目のシートのA1のセルに「成績」という言葉が入っていて、
そのシートとは別に「成績」という名のシートがある場合、
1枚目のシートにある数式で「成績」シートを参照させる時に、
「成績!」という言葉の変わりに「A1!」を使うみたいなことはできるのかなと。。

意味不明だったらすみません。。。

セル内に入っている言葉を「シート名称」として認識させる方法・・・

とでも言えばいいのでしょうか;;
169名無しさん@そうだ選挙にいこう:2005/05/07(土) 16:43:21
170名無しさん@そうだ選挙にいこう:2005/05/07(土) 16:59:28
>>167
たしかにぐぐっても情報がない。
DDEじゃなくて、OLEにすれば?
171167:2005/05/07(土) 17:34:57
>>170
うーむ、それが1つの手ですかね。
実はあまりOLE使ったことなかったんで少し敬遠気味でした、、。
少し勉強して挑戦してみます。どうもでした。
172名無しさん@そうだ選挙にいこう:2005/05/07(土) 18:14:24
質問です

ユーザーフォームのListBoxをColumnCount3にして作ったのですが、
そのうちの2列目だけをTextAlignをRightにすることはできるでしょうか?
可能であればそのコーディングを教えてもらいたいです(XP、Excel2003)
173名無しさん@そうだ選挙にいこう:2005/05/07(土) 18:26:06
できません。
ColumnWidthsとスペースなどで上手く調整してください。
174名無しさん@そうだ選挙にいこう:2005/05/07(土) 19:18:50
>>173
回答ありがとうございました
175167:2005/05/07(土) 19:23:12
度々すんません。
167ですが、一応自己解決しました。
需要少でしょうが念のため、簡単にご報告。
DDEをtopic="System"で接続して、item="Topics"でDDERequest。
これでいけますた。
176名無しさん@そうだ選挙にいこう:2005/05/07(土) 20:23:33
Excell特有なのかOSなどの問題かいまいち判断つきかねるので
こちらでご教授願います。

【1     O S の 種 類    】 WindowsXP
【2 E x c e l の バ ー ジ ョ ン .】 Excel97
【3   V B A が 使 え る か  】 いいえ
【4 Googleでの検索キーワード】 コマンド送信中にエラー
【5 ヘルプでの検索キーワード】
【6 スレのFAQとログを読んだ.】 はい
〜〜〜質問内容〜〜〜
エクセルで作ったあるファイルを開こうとすると、
同名のファイルがすでに開いています。違うフォルダでも同じ名前のファイルは〜と毎回メッセージがでます。
無視(OKをおせば)すれば問題ないのですが、このメッセージが出る前に、ファイルを閉じようとすると、
「プログラムへコマンド送信中にエラーが発生しました」というメッセージがでます。

PC内を検索しても同名のファイルは存在せず、またその問題のファイルをコピーしたファイルを開こうとしても
やはり同じように同名のファイルが開いていますといわれます。
新規につくったファイルではこの問題は起きません。



177名無しさん@そうだ選挙にいこう:2005/05/07(土) 20:37:22
>>176
SP当てて、関連付けの確認。

PC使い始めた当初から同じエラーが出てるんじゃないなら
システムの復元やExcel・OS再インストール試してみれ。
178名無しさん@そうだ選挙にいこう:2005/05/07(土) 20:50:00
オブジェクト名(CodeName)で下のようにループするんですが、うまくいきません。
なんで?
教えてエロイ人

Sub sample()
Dim ws As Worksheet
For Each ws In Array(Sheet1, Sheet3, Sheet5)
  ws.Range("A:A").NumberFormatLocal = "yyyy/mm/dd"
Next
End Sub
179名無しさん@そうだ選挙にいこう:2005/05/07(土) 20:52:07
>>176
例えばこの質問にこんな長い天ぷら要らないって

次スレは
>>28 ベースで簡潔な天ぷらにしたほうがよいと思う
180176:2005/05/07(土) 21:05:21
>>177
即レスども。
やっぱりそのくらいしないとだめですかねぇ。

エラーが出るファイルと問題ないファイルがあるので
ファイルになにか問題があるかなとおもってるんですが、
「プログラムにコマンド送信中にエラー」というメッセージがでる場合っていうのはどういうときなんでしょうか。

CPUがいっぱいいっぱいってことはないんですが・・・
181名無しさん@そうだ選挙にいこう:2005/05/07(土) 21:15:34
>>178
Dim i As Byte
For i = 1 To 5 Step 2
 Worksheets("Sheet" & i).Range("A:A").NumberFormatLocal = "yyyy/mm/dd"
Next i

ちなみにArrayの使い方はこんな感じで。
Array(Worksheets("Sheet1"), Worksheets("Sheet3"), Worksheets("Sheet5"))
まあ、どっちみちFor Eachのコレクションとしては使えないけど。
182名無しさん@そうだ選挙にいこう:2005/05/07(土) 22:42:34
>>166


>>35
183名無しさん@そうだ選挙にいこう:2005/05/07(土) 22:44:35
>>182
35は簡素化した方が良いけどテンプレは必要って書いてるね。
184名無しさん@そうだ選挙にいこう:2005/05/07(土) 23:11:26
レスが200いかないのに、このスレのログを全然読もうとしないやつらがごろごろしているという状態に脱力感を感じますな。
185名無しさん@そうだ選挙にいこう:2005/05/07(土) 23:14:55
>>166の文章って前段と末尾につながりが全くないのは何故?
「そんなわけで」ってどこがどんな訳?
186名無しさん@そうだ選挙にいこう:2005/05/08(日) 01:12:54
すいません、エクセルのソルバーって、ifを使った計算式と組み合わせると正しい答えが出ないのでしょうか?
また、制約条件に区間=整数にしたのに変化させるセルに0.167832167916084などという数が入り正しい答えが出ません。
何か設定の仕方が間違っているのでしょうか?
187名無しさん@そうだ選挙にいこう:2005/05/08(日) 01:35:52
>>186
if使うと普通は駄目です。
188名無しさん@そうだ選挙にいこう:2005/05/08(日) 01:41:33
>>187
そうなんですか、すいません。
区間の方はわかりますでしょうか?
189名無しさん@そうだ選挙にいこう:2005/05/08(日) 05:22:35
>>178
wsをworksheet型でなく、variant型で宣言すると良いよ
arrayだけだとデータ型が不明でコンパイルが通らないだけだから
for...eachとarrayを組み合わせるのは何の問題も無いっす
190名無しさん@そうだ選挙にいこう:2005/05/08(日) 08:14:55
【1 OSの種類】 Windows XP home edition
【2 Excelのバージョン】 Excel 2000
【3 VBAが使えるか】 はい(初めて一週間程度)
【4 Googleでの検索キーワード】 excel vba 名無し
【5 ヘルプでの検索キーワード】 図の書式設定
【6 スレのFAQとログを読んだ】 このスレは読みました。

オートシェイプのサイズ変更についての質問です。
図の書式設定→サイズで、原型のサイズにリセット(倍率を100%に戻す)
をvbaで記述する方法はありますか?

自動記述で試しても駄目でした。(高さ,幅を直接入力していた)
よろしくお願いします。
191名無しさん@そうだ選挙にいこう:2005/05/08(日) 08:21:52
>>190
ScaleWidth
ScaleHeight

現在のサイズを基準に拡大・縮小と、
元のサイズを基準に拡大・縮小が出来る。

詳しくは上記メソッド名でヘルプでも調べな。
引数の詳細や使用例も載ってるから。
192名無しさん@そうだ選挙にいこう:2005/05/08(日) 08:25:40
>>191
回答ありがとうございます。
ScaleWidthとScaleHeightは知ってまいたが、認識が間違っていたようです。
家に帰ったらさっそく試してみます。
193名無しさん@そうだ選挙にいこう:2005/05/08(日) 08:57:38
>>184
奈に逝ってるんだ?テンプレか?
そんなもの書きたいやつは書けばいいし、書く必要ないと思えば書かなくていい。

>>189
ここのラベルを心配したがお前がいて安心したよ。
漏れはどのくらいで正しい回答があるかみてたよ。



194名無しさん@そうだ選挙にいこう:2005/05/08(日) 09:24:43
195名無しさん@そうだ選挙にいこう:2005/05/08(日) 09:40:27
可哀相な子…
196名無しさん@そうだ選挙にいこう:2005/05/08(日) 10:01:51
>>188
区間の設定の仕方がおかしいからでない?
やったけどちゃんと整数になったが、、、
197名無しさん@そうだ選挙にいこう:2005/05/08(日) 11:03:59
>>189
この例の場合はwsはWorksheet型でないとダメじゃね?
Rangeオブジェクトがメンバになれないから。
だから、この場合はFor Each使うの無理じゃね?
198名無しさん@そうだ選挙にいこう:2005/05/08(日) 11:07:46
こんにちは
質問です。
税込値段のリストがあり
それより税抜き価格を出したいのが一つと
その出した税抜き価格を計算式ではなく、数値で他のエクセルファイルに貼り付けを行いたいのですが
よろしくお願いします
199名無しさん@そうだ選挙にいこう:2005/05/08(日) 11:30:08
>>198
税込み価格を1.05で割るだけでいいなら初心者杉。
こんな変人集団の2ちゃんねるで聞かずに、入門書を1回通読することをオススメします。
一応答えると、A1に税込価格があるならB1に=A1/1.05と入力。

その他の処理をご希望なら詳しくかいてね。

値の貼り付けは、形式を選択して貼り付けで「値」を選ぶ。
200名無しさん@そうだ選挙にいこう:2005/05/08(日) 11:41:55
>>197 ヘルプ嫁
[Array 関数]
配列が格納されたバリアント型 (Variant) の値を返します。

だからVariant型を返す。
Variant型の中でWorksheet Objectが格納されるようだ
ウォッチして型見るとそうなっているよ
201名無しさん@そうだ選挙にいこう:2005/05/08(日) 11:43:42
>>199
せめてround()系で整数化したほうがよくね?
てか、せんとあかんやろ。
202名無しさん@そうだ選挙にいこう:2005/05/08(日) 11:55:46
>>200
知ってるよ。
だったらウォッチするだけじゃなく、189のコード完成させて実行してみたら?
内部で格納されていようと、Variant型ではRangeオブジェクトをメンバにできない。
203名無しさん@そうだ選挙にいこう:2005/05/08(日) 11:58:16
>>201
だから、Round系って言っても、切り上げか切捨てか四捨五入か
どうしたいかがわからないでしょう?
そういう希望をきちんと書かなきゃ。
204名無しさん@そうだ選挙にいこう:2005/05/08(日) 12:08:23
>>202
私は200ではないですが、普通にメンバーにできると思いますが・・・
何か勘違いしてませんか?
205名無しさん@そうだ選挙にいこう:2005/05/08(日) 12:47:03
>Rnageオブジェクトがメンバになれない
って言ってる時点でどこかおかしくない?たぶんどこかで勘違いしてるのでは?
189のコードを完成させるって、 >>178
Dim ws As Worksheet  を Dim ws As Variant
に変えるだけじゃん。自分は実行してみたの?それで、どこかでエラーでた?
206名無しさん@そうだ選挙にいこう:2005/05/08(日) 12:48:45
>>202
もう消したけどできたよ。
Arranyの中はSheets(1)とかSheets("Sheet1")にしたけど。
つうか、RangeオブジェクトではなくSheetsオブジェクトですが、、、

てか、なんか勘違いしてる、おれ?
207名無しさん@そうだ選挙にいこう:2005/05/08(日) 12:50:42
>>205
Sheet1とかSheet3とかのままではいけませんが、、、
subの外でSetしてるんだろうけど
208178:2005/05/08(日) 12:52:18
>>197
Variant型でいいんだよ。
釣り質問でラベルを調べて申し訳ない。
209178:2005/05/08(日) 12:54:11
>>207
オブジェクト名(CodeName)って書いたのだが。
210名無しさん@そうだ選挙にいこう:2005/05/08(日) 13:05:32
>>208 ラベルを調べる意味が不明でつが
>>209 ああ,よく読んでませんでつ w
211名無しさん@そうだ選挙にいこう:2005/05/08(日) 13:15:49
>>178
なんだこいつ最悪。せいぜい天狗になってろよ
212名無しさん@そうだ選挙にいこう:2005/05/08(日) 13:29:46
入力用のシートAに会社などの名称,住所,URL,メールアドレスなどを入力します。
ここでは,ハイパーリンクは設定しません。それで閲覧用シートBに下記のようにハイパーリンクを設定します。
=HyperLink(シートA!URLを記入したセル, シートA!URLを記入したセル)
=HyperLink(CONCATENATE("mailto:","シートA!メールアドレスを記入したセル"), シートA!メールアドレスを記入したセル)
そうした上で,シートBを保護すると,クリックしてもブラウザやメーラーが起動しません。
シートを保護した上でリンクを活かすにはどのようにすればよいのでしょうか?
該当部分だけ保護しないということはしたくないので・・・
213名無しさん@そうだ選挙にいこう:2005/05/08(日) 13:37:31
嘘を書いた211が怒ってます
214名無しさん@そうだ選挙にいこう:2005/05/08(日) 13:52:12
>>212
セルを選択出来る状態なら、シートを保護しても
ハイパーリンクは動作するでしょ。
セルの選択を許可してないなら、そもそも
リンク上でクリックしても「リンクをクリックしてない」ことになるわけだから
ハイパーリンクが動作しないのは当然なので、
セルの選択を許可して保護すればいい。
215名無しさん@そうだ選挙にいこう:2005/05/08(日) 14:36:08
【1 OSの種類 / Excelのバージョン】XP/2002
【2 Googleやヘルプでの検索キーワード】編集 入力 キャレット カーソル
【3 VBAが使えるか】はい

セルに文字列を入力した後、←キーやhomeキーを押すと
通常は選択セルが変わってしまいますが、セル内のカーソル(キャレット)を
移動させるにはどうすれば良いですか?
以前、そういうExcelのシートを使ったことがあるのですが、
入力した側から"編集"になっていたか、"入力"のままカーソル移動が出来たかは
覚えてませんが、F2を押さずとも自由にカーソルを移動できました。

過去ログやグーグルで調べても、セルを選択しただけで入力もしてないのに
"編集"になってしまうような方法しか見つからず、
そのシートは以前勤めてた会社で使ってたものですが、今はその会社に居ないので
そのシート自体を調べることも出来ません。
以前使ったシートの操作性を再現したいので、詳しい方どうか方法を教えてください。
216211:2005/05/08(日) 14:42:12
>>213
は?何いってんのあんた?俺は>>197書いた物だけど?
わざわざ質問者のふりしてひっかけの質問する奴が最低と言ってるだけだ
糞くだらねー。そういう奴は自分に酔ってるだけなのが見え見えじゃねーかよ
そういう馬鹿にははっきりお前は馬鹿だっていってやんなきゃわかんねーんだよ
つきあったこっちが恥ずかしい

何が「ラベルを調べて申し訳ない」だ。胸糞わりい
こういう馬鹿がいるからVBAは難しいもんだとか勘違いされんだ
マジで死んだ方がいいんじゃねーのこいつ?
なんの焼くにもたたねー。せいぜいサポートセンターで答えを黙々と答える
ウンコマシーンにでもなるくらいじゃねーの?
余計なことすんじゃねーよ邪魔だから
217名無しさん@そうだ選挙にいこう:2005/05/08(日) 14:48:29
>216
オマエ、ウゼー
218名無しさん@そうだ選挙にいこう:2005/05/08(日) 14:53:55
>>216
>>197で嘘書いてるじゃん。お前馬鹿じゃねーの?
219名無しさん@そうだ選挙にいこう:2005/05/08(日) 15:03:13
>>215
VBAでF2押して操作するとか
220215:2005/05/08(日) 15:08:43
>>219
F2を送る方法くらいはわかりますが、
適当なイベントが見あたりません。
Worksheet_SelectionChange
では、入力しなくてもセルを移動しただけで"編集"になってしまうし
Worksheet_Change
では、内容が確定されないとイベントが動かないので遅すぎます。


どのタイミングでF2を送れば良いのでしょうか?
221名無しさん@そうだ選挙にいこう:2005/05/08(日) 15:10:47
>>220
Sub Macro1()
ActiveCell.FormulaR1C1 = "12345"
SendKeys "{F2}"
SendKeys "{LEFT}"
SendKeys "{LEFT}"
SendKeys "{LEFT}"
End Sub

{ESC}を最後に送ればいいし。
222名無しさん@そうだ選挙にいこう:2005/05/08(日) 15:13:03
>>220
というか、何したいのかが分かりません。
何をしたらF2を行なうかが説明されていないので回答不能
223名無しさん@そうだ選挙にいこう:2005/05/08(日) 15:14:05
>>220
セルに入力中は無理じゃないの?
224名無しさん@そうだ選挙にいこう:2005/05/08(日) 15:23:25
>>220
セル移動してもセルが空欄だったらF2送らなければいいでしょ
225215:2005/05/08(日) 15:43:16
>>221
そういうことじゃないです

>>222
セルに入力開始したら、F2を押さなくても"編集"に切り替わるか
"入力"のままでも、←キーやhomeキーで選択セルではなく
カーソル位置を変更できるようにする方法をさがしてます。

>>220
でも実現してる物があったので。

>>224
それでは何か入力してあるセルを選択しただけで、
入力する必要が無くても"編集"になってしまいます。
226215:2005/05/08(日) 15:44:23
9行目>>220>>223に訂正します。
227名無しさん@そうだ選挙にいこう:2005/05/08(日) 16:05:39
久々にいい釣りを見せてもらった

反応してた奴もGJだ
228名無しさん@そうだ選挙にいこう:2005/05/08(日) 16:08:52
>>225
不完全とおもわれ後は自分で考えろ

Option Explicit
Dim str As String
Dim r As Range
Private Sub Worksheet_Change(ByVal Target As Range)
If str <> r.Text Then
r.Select
SendKeys "{F2}"
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
str = Selection.Text
Set r = Selection
Cells(1, 1) = str
End Sub
229名無しさん@そうだ選挙にいこう:2005/05/08(日) 16:11:57
>>228
したのCells(1,1)=strは削除してくれ
あと、Selectionで複数セルが選択されているとバグルから直せ。
230名無しさん@そうだ選挙にいこう:2005/05/08(日) 16:16:10
>>229
selection→activecellでいいようだ
(なんか、意味なさそうだが w)
231名無しさん@そうだ選挙にいこう:2005/05/08(日) 18:49:32
★自分で出来ることは自分でやろう(ヘルプ・Googleの検索など)★
【1     O S の 種 類    】 mac9.2
【2 E x c e l の バ ー ジ ョ ン .】 Excel98
【3   V B A が 使 え る か  】 いいえ
【4 Googleでの検索キーワード】 シート内 表張り付け 挿入
【5 ヘルプでの検索キーワード】
【6 スレのFAQとログを読んだ.】 はい
〜〜〜質問内容〜〜〜
ワークシートの上部に、コード一覧表をはりつけたいのですが
そういうことはできますでしょうか。
例としてはたんじゅん家計簿というソフトの上部にある
ようなものなんですが。

検索してもワークシートの挿入しかヒットできないのです。
232名無しさん@そうだ選挙にいこう:2005/05/08(日) 18:59:08
>>231
図のリンク貼り付けでヘルプみれ
233名無しさん@そうだ選挙にいこう:2005/05/08(日) 19:10:02
>>231
Window枠の固定じゃいかんのか?
234名無しさん@そうだ選挙にいこう:2005/05/08(日) 20:01:06
【1 OSの種類 / Excelのバージョン】windows2000/2002
【2 Googleやヘルプでの検索キーワード】エクセル 数式エディタ
【3 VBAが使えるか】はい

質問内容
エクセルにて数式エディタを使って数式を表示しています。
今は、ツールバーの「挿入」⇒「オブジェクト」⇒「Microsoft 数式 3.0」から
使っていますが、頻繁に使う為、ツールバーに表示して使おうとした所、
ツールバーに持っていくことが出来ません。

ワードでは、ツールバーの「ツール」⇒「ユーザー設定」⇒「コマンド」タブの
「分類」の中にある「挿入」を選択すると右側に数式エディタが表示され、それを
ドラッグ&ドロップでツールバーに表示する事が出来ました。

しかし、エクセルで同じ事をしても途中の「分類」の中の「挿入」を選んでも
右側に数式エディタが表示されません。
これは仕様なのでしょうか?

スレ汚し的な質問ですが、よろしくお願い致します。
235名無しさん@そうだ選挙にいこう:2005/05/08(日) 20:11:27
【1 OSとExcelのバージョン】 WindowsXP、ExcelXP
【2 VBAが使えますか】 いいえ
【3 Googleやヘルプでの検索キーワード】エクセル グラフ 省略 空白 ギャップ

横軸に年代をとって、途中数年間のブランクがあるばあいに、横からみたら
 〜
 〜
のような省略を入れたいのですがやりかたがわかりません。
236名無しさん@そうだ選挙にいこう:2005/05/08(日) 20:33:03
>>235
できなかった気がしまつ。
グラフ二つ作って重ねて加工するだったような希ガス
237235:2005/05/08(日) 20:52:31
そうですか。わかりました、ありがとうございました
238名無しさん@そうだ選挙にいこう:2005/05/08(日) 21:43:23
水星金星 地球火星木星土星天王星海王星冥王星
扁率000.00340.00590.06490.0980.02290.01710
密度5.435.245.523.931.330.691.271.641.9
自転周期58.65243.020.99731.0260.4140.4440.7180.6716.387

例えばこういったデータがあって、左側の項目を全部並べて縦棒グラフで表示したいのですが
マウスでドラッグをして並べると値があまりにもかけはなれてるのでスゴイ偏ったものになってしまいます。
何か良い方法はありませんか?

それと、グラフの値の上限などを設定したりできますでしょうか?
変な質問かもしれませんが、よいやり方をぜひ教えてくださいm(__)m
239名無しさん@そうだ選挙にいこう:2005/05/08(日) 21:44:50
エクセルのを貼り付けたらとんでもない数字になってたんですが
気にしないでくださいm(__)m
240238:2005/05/08(日) 21:56:45
【1 OSの種類】 WindowsXP
【2 Excelのバージョン】 Excel2003
【3 VBAが使えるか】 使えない
【6 スレのFAQとログを読んだ】 最初の方を読みました
241名無しさん@そうだ選挙にいこう:2005/05/08(日) 22:44:17
>>238
良く分からんが、値の桁が違うデータのときは対数取るのが常識
グラフでもできたんじゃない?
242名無しさん@そうだ選挙にいこう:2005/05/08(日) 23:03:28
その対数の撮り方を教えてください
無知ですみませんm(__)m
243名無しさん@そうだ選挙にいこう:2005/05/08(日) 23:22:43
【1 OSの種類】 Windows2000
【2 Excelのバージョン】 Excel2003
【3 VBAが使えるか】 あまり使えない
【6 スレのFAQとログを読んだ】 途中まで読みました


A B C D E F G

1 1 ハンカチ5003150000
2 2 布巾500150000
3 AA 420000042000
4 BB 1536700
5 CC 0902050470

こういう表がありまして、
横1,2列は表計算のデータとして、
縦D列(売れた枚数)の合計、
縦E列(売れた金額)の合計としてSUM関数で計算したいのですが、
横3,4,5列はAA,BB,CCという、いらないデータ列なので、
計算には入れたくないのです。毎回売れた品によりAA、BB,CCの位地
は上下に変わるのです。50品ぐらいのデータで最後に、AA,BB,CCがついてきます。
なにか、良い手法があれば、ご指導ください。
244名無しさん@そうだ選挙にいこう:2005/05/08(日) 23:23:37
同じ形式のグラフを二つ並べて、お互いの値が干渉しないようにできないでしょうか?
軸を二つとる、など。
しつこくて申し訳ないんですが、できるだけ早く知りたいんです><
245>>243 :2005/05/08(日) 23:28:38
すみません、表が変になってしまいました。
A     B     C     D     E     F     G
1     1    ハンカチ 500    3    1500   0
2     2    布巾   500    1500  0     0
3     AA   420    0     0     0    42
4     BB   15     36    7     0     0
5     CC   09     0     20    50    470
246>>243:2005/05/08(日) 23:36:40
すみません、表が変になってしまいました。改めて

A     B     C      D    E     F      G
1     1    ハンカチ  500   3    1500    0
2     2    布巾    500   1500  0      0
3     AA    420    0    0     0     42
4     BB    15    36    7     0      0
5     CC    9     0     20    50    470

こういう表がありまして、
横1,2列は表計算のデータとして、
縦D列(売れた枚数)の合計、
縦E列(売れた金額)の合計としてSUM関数で計算したいのですが、
横3,4,5列はAA,BB,CCという、いらないデータ列なので、
計算には入れたくないのです。毎回売れた品によりAA、BB,CCの位地
は上下に変わるのです。50品ぐらいのデータで最後に、AA,BB,CCがついてきます。
なにか、良い手法があれば、ご指導ください。

247>>243:2005/05/08(日) 23:38:38
すみません、表が変になってしまいました。改めて

     A      B     C    D    E       F    
1     1    ハンカチ  500   3    1500    0
2     2    布巾    500   1500  0      0
3     AA    420    0    0     0     42
4     BB    15    36    7     0      0
5     CC    9     0     20    50    470

こういう表がありまして、
横1,2列は表計算のデータとして、
縦D列(売れた枚数)の合計、
縦E列(売れた金額)の合計としてSUM関数で計算したいのですが、
横3,4,5列はAA,BB,CCという、いらないデータ列なので、
計算には入れたくないのです。毎回売れた品によりAA、BB,CCの位地
は上下に変わるのです。50品ぐらいのデータで最後に、AA,BB,CCがついてきます。
なにか、良い手法があれば、ご指導ください。
248名無しさん@そうだ選挙にいこう:2005/05/09(月) 00:12:53
>>247
つまり、D列は3+1500で1503、
E列は1500+0で1500ってことだよね。

なら配列数式で
{=SUM(IF(ISNUMBER(A1:A5),D1:D5,0))}
とか、D・E列の値が正数値のみなら
=SUMIF(A1:A5,">0",E1:E5)
とか。

あと、関係ないけど
横1,2列 → 1,2行
縦D列 → D列
って書いた方がわかりやすい。
249>>247:2005/05/09(月) 00:34:36
>>248
すげーーーー!!!!
ありがとうございますーーー!!!
締め切り近くで、テンパッテいて、
表の書き込み方とか、二重書き込みなどのスレ汚しな私に
良きご指導、本当に、ありがとうございました!!!!
助かりました!!!
250名無しさん@そうだ選挙にいこう:2005/05/09(月) 03:08:02
突然のお願いで申しわけございません。
当方はOffice2000でウィンドウズXPです。
私は、教師をしております。

今、少し困っておりまして、こちらで助けていただければなと思って書き込み
させていただきました。
生徒の成績個人票を作成したいと思っております。

エクセルのシートに50名から100名ほどの生徒の成績を入力し、別シートに作った
個人成績表にその成績を反映させたいのです。
ワードに差込み印刷なら今までやった事があります。
でも、ワードだと、グラフとか今までの成績推移とかは作れませんよね。

また、普通にVLOOKUPとかの関数だと、一人分しか反映されませんよね。
出来れば、ボタンを使ってソフトのようにしたいのです。

個人成績表の感じは、名前、クラス、学年、4教科の点数、到達度を表すための
棒グラフ、レーダーグラフ、6回分のテストの点数の一覧、点数推移、
各教科のテストの問題ごとのコメント入力などです。

いきなりの質問です。本当にぶしつけで申しわけございません。
どうぞ宜しくお願いいたします。
251名無しさん@そうだ選挙にいこう:2005/05/09(月) 03:38:42

教師ともあろうものが、基本ルール(このスレに限らず>>1-10程度は読む)も守れないとはねぇ

> 出来れば、ボタンを使ってソフトのようにしたいのです。
VBA使えるなら勝手にやれ、使えないなら諦めるか勉強しろ。
VBAの勉強中にどうしてもわからないことがあったらまたここに聞きに来ればいい。

> また、普通にVLOOKUPとかの関数だと、一人分しか反映されませんよね。
"個人"成績表なんだから反映されるのは一人分でいいんじゃないの?

数十人分の成績を表にしたものから、特定個人のデータを
別シートのテンプレート(個人成績表)に当てはめるなら、
入力規則のリストとVLOOKUPでいいじゃん。
又はDGETやINDEX(使い方はヘルプ参照)でもいいけど。

252名無しさん@そうだ選挙にいこう:2005/05/09(月) 03:56:40
先ほどは人大杉になってしまい、1−10を読む事が出来ませんでした。
申しわけございません。ご指摘ありがとうございます。

【1 OSの種類】 WindowsXP
【2 Excelのバージョン】 Excel2000
【3 VBAが使えるか】いいえ
【4 Googleでの検索キーワード】
【5 ヘルプでの検索キーワード】
【6 スレのFAQとログを読んだ】 はい
〜〜〜質問内容〜〜〜

VBAは使えるようになりたいと思っています。
結構早く作りたいのです。本当に申しわけございません。
253名無しさん@そうだ選挙にいこう:2005/05/09(月) 04:10:08
>>252

>>251の下4行

つーか検索もせずに教えて君ですか…
ゆとり教育の弊害が教師にもでてるのか?
254名無しさん@そうだ選挙にいこう:2005/05/09(月) 07:45:34
>>242
グラフを作ります
作ったグラフの数値軸の書式設定、目盛りというところに
対数目盛りというチェックがありませんか?
あったらそれで
なければまたカキコして誰かが答える、と



>>244

>>7 のQ3でどぞ



>>251、253

十分親切に教えてるような気がしないでもないが餅付
読んでてうんざりする
スルーしたら?
255名無しさん@そうだ選挙にいこう:2005/05/09(月) 07:55:06
>>254
スルーしたら?
256231でつ:2005/05/09(月) 08:10:22
>>232
ありがとうございます!
ネットで図のリンク貼付けで検索し、解決しました!

>>233
上下で幅が違うのでだめだったのです、、
257名無しさん@そうだ選挙にいこう:2005/05/09(月) 11:14:25
>>252
> ボタンを使ってソフトのようにしたいのです
ボタンで何をしたいのか解らんが、
単純に考えるなら、入力用の一覧シートから印刷用の個人シートに、VLOOKUP関数で検索するのが一般的だし、
グラフは、予め個人票に作っておけば、VLOOKUPで抽出された個人だけが表示される。
ボタンで全員の個人票を一括印刷するなら、VBAを使ってFor〜Nextで回していくし、
特定の学年やクラスだけを印刷するなら、If〜End Ifで分岐させるし。。
258名無しさん@そうだ選挙にいこう:2005/05/09(月) 13:33:12
個人ごとの帳票の印刷考えると、Accessの本一冊かって勉強したほうがいいかも
PC上だけだったらVLOOKUPで十分。ボタンつけたければ[フォーム]のスピンボタンとか、
皆さんが言ってるように入力規則使えばいいと思いますよ。
つーか先生に2ch見てて欲しくないなあ。本当に先生だとしても、名乗らないでもらいたいよ。
259名無しさん@そうだ選挙にいこう:2005/05/09(月) 14:01:43
確かに。
Excelでヘルプ読んでもググってもわからないことがあっても、
ここよりまともで頼れるところなんてたくさんある。
教師が「わからない→(ヘルプも読まずググりもせず)→2ch直行」
ってのはなんか悲しい。教師って職業も墜ちたってことかな。
260名無しさん@そうだ選挙にいこう:2005/05/10(火) 01:14:07
教師です。
いろいろご返答ありがとうございます。
えっと、>257さんありがとうございます。
> ボタンを使ってソフトのようにしたいのです
ボタンで何をしたいのか解らんが、
単純に考えるなら、入力用の一覧シートから印刷用の個人シートに、VLOOKUP関数で検索するのが一般的だし、
グラフは、予め個人票に作っておけば、VLOOKUPで抽出された個人だけが表示される。
ボタンで全員の個人票を一括印刷するなら、VBAを使ってFor〜Nextで回していくし、
特定の学年やクラスだけを印刷するなら、If〜End Ifで分岐させるし。。
261名無しさん@そうだ選挙にいこう:2005/05/10(火) 01:14:39
↑ その通りなのです。一人分ならVLOOKUPで出来ることはわかっています。
しかし、一人分印刷と、一括印刷をしたかったのです。VBAがまだわからなかったので、
おしえていただきたかったのです。調べてみます。自力で。他の方にも
いわれてしまったので。。。すみませんでした。皆さん。お手を煩わせて
262名無しさん@そうだ選挙にいこう:2005/05/10(火) 01:15:01
あの・・・少し言わせてください。2chってだめなとこなんですか?
「ここよりまともで頼れるところなんてたくさんある。」
確かに、検索でしらべてみたところ、いろいろHPはありまして、参考になりそうなところ
もありました。
あえてここに書いてみたのは、ふと思い立ってです。
エクセル質問版なるものがあったので、書いてみたのです。
気に食わなかった方はもうしわけございません。
しかし・・・すこし、残念でもあります。
教師は2chに来てはいけませんか?少々教師という職業を買いかぶりすぎです。
教師の立場でいわせてください。教師は神ですか?教師は聖職者ですか?
子どもに教える立場の人間はすばらしいものしか見ては、聞いては、知っては
いけませんか?
263名無しさん@そうだ選挙にいこう:2005/05/10(火) 01:15:42
教師も人間です。もっというなら、善しか知らない人間は教師になるべきではありません。
善も悪も、いいことも悪い事も知っているからこそ、子どもに伝えるべきことが
判断できると思います。私はそう信じています。
大学出たばかりで、社会人経験のない、世間をしらない人間が医者だったら、真摯にその医者の
ことばが胸にのこるでしょうか?
私は否です。苦労して、苦労して、努力して、困難も喜びも知っているからこそ、人のこころを
理解できるのだと思っています。
確かに、だめな教師もいます。ニュースを見ると多くいます。授業中にカッターナイフを出したり、
女生徒に手を出したり・・・
264名無しさん@そうだ選挙にいこう:2005/05/10(火) 01:16:52
でも私はそんな教師と一緒にしないで頂きたい。また、教師に幻滅しないで頂きたい。
その様なニュースの裏には必死になっている教師もおります。
私自身、今までの苦労談や、失敗談をまた成功して嬉しかった喜びなどを生徒に話し、
子どもたちが「心の成長」をもしてもらいたいとおもっています。
私はこのような気持ちで教師をしております。

たくさん話してしまい申しわけありません。しかし、本音です。
このように書くと、またたたかれると思いますが、少しでも気持ちを理解していただけたら、
嬉しく思います。
265名無しさん@そうだ選挙にいこう:2005/05/10(火) 01:17:13
それに2chは教師が見てはいけないような掲示板ですか?私はそうはおもいません。
たしかに、目を覆いたくなるようなものもありますが、すばらしいものもあると思います。
見たことない、あったこともない人間同士が、このようなネットを通じ、気持ちを通じ合わせ、
一つ一つの言葉に一喜一憂する。
日本で有数の規模の2chはそんなすばらしい掲示板だと思います。いいところも悪いところも
あわせた上でです。
私は2ch好きですよ。

大変長々とすみませんでした。
266名無しさん@そうだ選挙にいこう:2005/05/10(火) 01:39:19
2ch見るのは構わないが
「わからない→(ヘルプも読まずググりもせず)→2ch直行」
はダメ過ぎだろ。職業関係なく"人"として。
まあ、2chには人以下の外道も多いけど。
267名無しさん@そうだ選挙にいこう:2005/05/10(火) 02:03:12
いきなり2chはだめなのでしょうか?
多くの人間がいる巨大掲示板だからこそ知恵や知識の共有がはかれるのではないのでしょうか。
ぐぐるってほかのHPと2chはなにがちがうのでしょうか。
2ch直行が人としていけないのなら、2chは何のためにあるのですか?

268名無しさん@そうだ選挙にいこう:2005/05/10(火) 02:04:07
2chが悪と言ってるわけではないよ。
正直、こういう青い人に子供を任せたくないね。
君はおとなしく教科書の事だけを教えてて下さい。
スレ違い失礼。
269名無しさん@そうだ選挙にいこう:2005/05/10(火) 02:35:55
>>267
2chがダメなんじゃなくて掲示板直行がダメ

> ぐぐるってほかのHPと2chはなにがちがうのでしょうか。
2chは掲示板、場合によっては努力せず答えを得ることが出来る。
というか、ヘルプやGoogleで調べずに掲示板に来る奴は
努力せず答えを得ることを望む教えて君。

Googleでの検索は、他人の知識を利用するとはいえ、
目的の答えにたどり着くために、検索キーワードをいろいろ試したり
いろんなページを読みあさったりという努力をしなくてはならない。
掲示板に質問を書いて放置しておくのとは大違い。

わからないことが有ったときに、(解決できるかどうかは別として)
自分で解決しようとしないような人間には、人にものを教える立場に立って欲しくないね。

>2chは何のためにあるのですか?
多様性があるので一概には言えないが、少なくともこのこのスレを含めた2chの質問スレ、
2ch外の質問掲示板は、自力でどうにもならなかったとき、
そして周り人に聞けない(聞く相手が居ない)寂しい人のための最期の砦。

おまえが教壇に立って、一生懸命説明してるときに、
「先生、説明はいいから答えだけ簡潔に教えてください」って言われたらどうよ?
これが問題ないと感じるならマジで教師やめるべき。
そしておまえがやってることはこれと同じようなこと。
極一点の答えを与えたところで、そいつの知識は養われないし、
「極一点の答え」を求めるなら、有料で要望取りのExcelブックを仕上げてくれるところもある。
ここはそういう依頼請負所ではなく、やる気の有る奴の手助けしてやる場だから。


と、言うまでもないことを熱く語ったりしてみる。
270名無しさん@そうだ選挙にいこう:2005/05/10(火) 03:04:42
なるほど、とてもよいご意見ありがとうございます。
私がかんがえてもいなかったご意見を下さりありがとうございます。

それに、とても長い時間を私にかけてくださりありがとうございます。
271名無しさん@そうだ選挙にいこう:2005/05/10(火) 04:29:22
【1 OSの種類】 WindowsXP sp2
【2 Excelのバージョン】 Excel2003
【3 VBAが使えるか】パソコンが使えるかと聞かれたときと同じぐらい困ります
【4 Googleでの検索キーワード】 excel メーラー 操作 マクロ
【5 ヘルプでの検索キーワード】
【6 スレのFAQとログを読んだ】 はい

エクセルのマクロでメーラーを起動し、メーラーを操作できますか?
例えば、エクセルのマクロによってメーラーを起動し、
マクロによってメール本文に「こんにちは、ぶなしめじさん」
と入力するとかです。
上の例の場合は、マクロに何を記入すればいいですか?
272名無しさん@そうだ選挙にいこう:2005/05/10(火) 05:00:00
>>271
スレ違い。

メーラーを操作するためにはどうすればいいかなんてのは、
そのメーラーのスレか作者にでも聞け。
「どうすればいいか」までわかった上で、それをVBAで実現する方法がわからなかったら
またここに聞きに来い。
273名無しさん@そうだ選挙にいこう:2005/05/10(火) 05:24:14
そうギスギスしなさんな。
274名無しさん@そうだ選挙にいこう:2005/05/10(火) 06:01:12
>>273>>273
275名無しさん@そうだ選挙にいこう:2005/05/10(火) 06:44:21
気のせいかVBA教えたがり君に頭が壊れてるのがひとり混じってるような…
276名無しさん@そうだ選挙にいこう:2005/05/10(火) 08:18:17

Do
 If MsgBox("それは>>275のことですね", vbYesNo, ">>275") = vbYes Then
  Exit Do
 Else
  MsgBox "嘘はだめですよ♪"
 End If
Loop
277名無しさん@そうだ選挙にいこう:2005/05/10(火) 20:57:09
>>276

>>273
ちょっと餅穴
278名無しさん@そうだ選挙にいこう:2005/05/10(火) 21:30:54
>>271

メーラー(アウトルックエクスプレス)を起動させるだけなら

Sub macro1()
Dim apli As Variant
apli = Shell("C:\Program Files\Outlook Express\msimn.exe", vbNormalFocus)
End Sub

あとは自分で少し考えてから、また聞いてね
279名無しさん@そうだ選挙にいこう:2005/05/10(火) 21:41:30
Excelを使っているのですが、セルに「1/3」等の/を入れた分数を入力すると、勝手に日付になってしまいます。
これはどうやって直せばいいのでしょうか?
280名無しさん@そうだ選挙にいこう:2005/05/10(火) 21:49:26
>>279
・「'1/3」
・「="1/3"」
・表示形式「文字列」→「1/3」
281名無しさん@そうだ選挙にいこう:2005/05/10(火) 22:11:20
質問させてもらいます。
グラフでx軸を平方根目盛りにしたいんですが、
エクセルで平方根目盛りでグラフは描けるでしょうか?
対数目盛りでの方法は知っています。

ご存知の方ご教授よろしくお願いします。
282名無しさん@そうだ選挙にいこう:2005/05/10(火) 22:33:27
>>279
分数は、予めセルの書式設定で表示形式を分数にしてから入力する。

>>280
それだと日付や文字列になっちゃって分数にならないよ。
283名無しさん@そうだ選挙にいこう:2005/05/10(火) 22:35:52
計算できる必要があるとは書いてないな
284名無しさん@そうだ選挙にいこう:2005/05/10(火) 22:45:26
すみません質問です。
B5サイズで作った表をA4サイズにしたい時は、
手動で列幅&行幅を変更するしかないですか?
285名無しさん@そうだ選挙にいこう:2005/05/10(火) 22:50:54
実は>>280の3つの例はどれも日付として扱われ、計算できるわけだが。
286名無しさん@そうだ選挙にいこう:2005/05/10(火) 22:52:26
>>284
普通に印刷設定で拡大してやればいいじゃん
ファイル > ページ設定 > 拡大/縮小

プレビュー見ながらの方がいいかもな。
あとは用紙合わせにしてもいいし。
287名無しさん@そうだ選挙にいこう:2005/05/10(火) 22:52:50
>>285
をいをい・・・w
288名無しさん@そうだ選挙にいこう:2005/05/10(火) 22:53:44
>>284

ページ設定で用紙サイズをA4にして「次のページ数〜」を横1×縦1

ただし、この場合は線も太くなるし、文字も大きくなる

罫線の太さも文字の大きさも同じで行きたいのなら
手動しかない
289名無しさん@そうだ選挙にいこう:2005/05/10(火) 22:55:41
>>281
できないと思う。
別セルに平方根を計算して、それを目盛としてグラフを書く。
目盛を表示させないようにして、文字列のオブジェクトを一個ずつ置いていくとか。
290284:2005/05/10(火) 23:04:21
>>286,288
ありがとうございます!
勉強になりました。
291名無しさん@そうだ選挙にいこう:2005/05/11(水) 00:05:24
XPでエクセルの中にメールアドレス貼り付けて、アウトルックを起動していない
状態でそのリンクをクリックすると新規メール作成ウィンドウが現れると
思いますが、これをやるとスタートメニューの中の電子メールという
ショートカットのリンク先がおかしくなってしまうのですが、
これを直すことはできないのでしょうか?
292初心者:2005/05/11(水) 00:06:10
フィルタでセルの絞込みで、<空白セル>を選択しようとしています。
だけど、<空白セル>という項目がリストにでてきません。
だけど、空白セルは、確かにその列にあるんです。
その空白セルには、関数等も使用していません。
どうしたら、<空白セル>をリストに表示させて、
絞込みできるんでしょうか?
すいません。教えてください。
excel2003です。
293名無しさん@そうだ選挙にいこう:2005/05/11(水) 00:12:38
>>292
普通に出るけど
下の方に隠れてないかスクロールしてみそ
294名無しさん@そうだ選挙にいこう:2005/05/11(水) 01:57:35
すみません、質問です。
「何も値の入っていない」「行」を
削除して上に詰める、というようなことは
可能でしょうか?
例えば、sheet1をアンケートの回答用紙にして
a、bなどの記号で答えを入力していく。
sheet2はIF関数などで、sheet1の回答を具体化した
ものが表示されるようにしておく。aなら「はい」、bなら
「いいえ」というように。
とばして答えなかった質問のところは「""」、つまり
なにも値が入らないようにしたとして、その行が最終的に
削除されて上につめられる、というような作業なのですが。
いかがでしょうか?
295名無しさん@そうだ選挙にいこう:2005/05/11(水) 02:09:14
>>294
関数の返してる値を隣の列に書き出し
作業列を作って連番を振る
書き出した列でソート
空の部分を一括削除
連番列でソートして不要な列を削除

VBA使えるなら
「対象が空欄ならその行を削除」をForで回すだけ。
296名無しさん@そうだ選挙にいこう:2005/05/11(水) 11:51:56

【1 OSの種類 / Excelのバージョン】XPsp1 2002sp3 WSH5.6
【2 Googleやヘルプでの検索キーワード】Popup WScript Windows Script Host VBA 閉じる 時間
【3 VBAが使えるか】はい

Web上で紹介されてるWSHのPopupメソッドをVBAから使う方法で
Sub Sample2()
 Dim WSH As Object
 Set WSH = CreateObject("WScript.Shell")
 WSH.Popup "1秒後、自動的に閉じます", 1, "Title", vbInformation
 Set WSH = Nothing
End Sub
と待機秒数である第二引数を1にすれば1秒後に閉じるはずなのですが、
実際に閉じるまでには3〜5秒掛かります。
しかしvbsで同じ事をやるときちんと1秒後にポップアップが閉じます。
VBA上でもきちんと指定秒数経過で閉じるにはどうすればいいですか?
VBAから.vbsを呼べってのは無しで御願いします。
297名無しさん@そうだ選挙にいこう:2005/05/11(水) 11:53:24
無理なんじゃないかな
298名無しさん@そうだ選挙にいこう:2005/05/11(水) 12:03:14
わからない質問に無理と答えるのは簡単
299名無しさん@そうだ選挙にいこう:2005/05/11(水) 15:13:18
>>296
VBAから.vbsを呼べ。







ちょっと言ってみたかっただけ。
300名無しさん@そうだ選挙にいこう:2005/05/11(水) 15:34:57
セルそれぞれN、E、S、S、・・・・N、Wという記号を入力します。
その後、一番多く入力されている記号を表示させたい場合に使う関数はありますでしょうか?
301名無しさん@そうだ選挙にいこう:2005/05/11(水) 16:23:01
>>300
COUNTIFを組み合わせるとか。
数値だったらMODEで一発なんだけどな。
302名無しさん@そうだ選挙にいこう:2005/05/11(水) 17:25:02
行き詰ったので質問させてください。

口で説明するのが難しいのですが

212
111
321

211
222
321

というように(実際は30*30くらい)文字列が並んでいて、
上と下を比較し、両方1なら

 1 
   
  1

というように表示したり、両方1になるセルの数を出す方法はありませんでしょうか。
ANDやEXACTを使えばいいのかなとも思ったのですが、綺麗にまとめるとなると
難しくて・・・。ご指導願います。
303名無しさん@そうだ選挙にいこう:2005/05/11(水) 17:43:41
マクロで、以下の様な物を組みました。
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2005/5/11 ユーザー名 : hoge
'

'
Rows("1:2").Select
Selection.PrintOut Copies:=1, Collate:=True
Rows("2:2").Select
Selection.Delete Shift:=xlUp
End Sub

1,2行目を選択してその部分だけ印刷、印刷後に2行目を削除。以下繰り返し。と言う事をやろうと思い組んでみました。
ところが、普通に印刷している時は問題なかったのですが、このマクロを実行すると、プリンタの予約キューに入るだけで印刷されません。
一度その状態になると、他の物(関係ないシンプルテキストなど)もキューに入り、印刷出来ないです。
プリンタが問題なのか、マクロが問題なのか分からない状態なので、アドバイスをくださいませ。
よろしくお願いします。
304名無しさん@そうだ選挙にいこう:2005/05/11(水) 18:13:25
>>302
普通にIFとCOUNTIFでやればいいんじゃないの

単に1を求めるのかANDを取りたいのかで、条件式の中身は変わってくるとは思うが
305名無しさん@そうだ選挙にいこう:2005/05/11(水) 20:01:06
セルの書式設定の表示形式で数値の後ろ2桁を強制的に削るのは可能でしょうか?
もし判るかたいれば教えてください。
306名無しさん@そうだ選挙にいこう:2005/05/11(水) 21:41:21
>>305
通常の方法ではたぶん無理。

強攻策で行くなら、
表示形式>ユーザー定義>#[Ctrl+J]##   注:[]は入力しない、Ctrlを押しながらJを入力
配置>折り返して全体を表示 にチェック
セルの高さを調節する。
以上で、セル内で2行に分割し一部を隠すことが可能です。
表示形式での設定であり、中身はモチロン後ろ2桁が生きています。
307名無しさん@そうだ選挙にいこう:2005/05/11(水) 21:51:17
1/100をかけて小数点以下を非表示にする、ってのはダメなん?
308名無しさん@そうだ選挙にいこう:2005/05/11(水) 22:15:10
>>302
上の行列がA1:C3で、下がA4:C6だとしたら、
A7に =IF(AND(A1=1,A4=1),1,0) と入れて
C9までコピーしたらいいだけと違うの?
309302:2005/05/11(水) 22:37:01
>304&308
返信遅れてすみません。お陰様でなんとかできました。空白のセルもあったことで
手こずっていましたが、IF○○="", を使って空白表示もなんとかなりました。

急いでいたためテンプレに沿わない質問の仕方になってしまい申し訳ありませんでした。
それにも拘わらずご指導いただき、本当にありがとうございました。
310305:2005/05/12(木) 09:27:36
306さん307さんありがとうございます。

データ量が多いのと他の処理の関係でマクロや関数などで再計算させると
もの凄く時間が掛かってしまう為、何かスッキリしたやり方がないかなと
思い相談させてもらいました。
う〜ん、表示形式での通常方法では無いですか。。。なんかあっても良さそうに
思うんですけどね。
311名無しさん@そうだ選挙にいこう:2005/05/12(木) 12:36:31
仕事でマクロ使った資料作成していますが
何をやっているのかわかりません。

はなにをやっているのでしょうか?
お助けを・・・・・・教えて下さい。
会社契約のところに質問したらマクロ説明は対象外といわれた・・・
うう・・・・・

Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveWindow.ScrollRow = 1
ActiveWindow.LargeScroll ToRight:=14
Range("DJ4").Select
ActiveWindow.FreezePanes = True
ActiveWindow.SmallScroll ToRight:=4
ActiveWindow.LargeScroll ToRight:=1
ActiveWindow.FreezePanes = False
ActiveWindow.SmallScroll ToRight:=3
ActiveWindow.FreezePanes = True
ActiveWindow.SmallScroll ToRight:=5
Range("DO4").Select
End Sub
312名無しさん@そうだ選挙にいこう:2005/05/12(木) 13:22:22
【1 OSの種類 / Excelのバージョン】 winXP ・2002
【2 Googleやヘルプでの検索キーワード】選出 選択 並べ替え
【3 VBAが使えるか】いいえ

名簿の行に女性なら2、男性なら1と番号がついているのですが
男性だけ、女性だけ選び出して名簿を作るにはどうすればいいのでしょうか?
313名無しさん@そうだ選挙にいこう:2005/05/12(木) 13:28:43
>>312
オートフィルタで絞ればいいじゃん。
別シートに移したいなら絞った状態でコピペ
314名無しさん@そうだ選挙にいこう:2005/05/12(木) 13:44:28
出来ました!ありがとうございます。
315名無しさん@そうだ選挙にいこう:2005/05/12(木) 14:29:19
セル○○に値があるときのみセル△△の計算を実行する
ということは可能ですか?

例えば、A1〜A10まで数値が入っていて
B列が Bn = An-A(n-1) (nとかn-1は行番号)の場合
B11は-A10になってしまいますよね。
これを、A11に何か入力した時のみB11を計算し
そうでない場合は空欄になるようにしたいのです。
316315:2005/05/12(木) 14:36:43
失礼しました。慌てていました。

EXCEL2002
WinXP Pro SP2
VBAは使えません。
317名無しさん@そうだ選挙にいこう:2005/05/12(木) 14:41:36
>>315
=IF(ISBLANK(A11),"",A11-A10)
318315:2005/05/12(木) 15:37:26
>>317
ありがとうございました。
 ノシ
319名無しさん@そうだ選挙にいこう:2005/05/12(木) 17:46:07
>>311
実行してみたら判るという考えは頭に思い浮かばないのかな?
320名無しさん@そうだ選挙にいこう:2005/05/12(木) 17:55:05
質問です。

特定のセルを選択できないようにするにはどうすれば良いでしょうか?
(例えばセルB3から→キーを押すとセルC3をとばしてセルD3を選択するなど)

教えて下さい。よろしくお願い致します。
321名無しさん@そうだ選挙にいこう:2005/05/12(木) 17:58:57
初めまして、シートに貼ってある画像なのですが、ビットマップなのでJPEGに変更したいのですが、何かいい方法ありますでしょうか?
画像を切り取りペイントでJPEGにしてるのですが、なぜか貼り付けるとJPEGの方がサイズが大きくなってしまいます、、、
元はJEPGの方が小さいはずなのに、、、なぜでしょう??
322名無しさん@そうだ選挙にいこう:2005/05/12(木) 22:21:03
単純なことかもしれませんが・・・

適度に表なんかを作って印刷プレビューでチェックし、また標準画面に戻ると
点線で印刷範囲が示されますが
横線(下)は出るのですが縦線(右側)がでないのです
初めてなったのですが、設定の問題なのでしょうか
それとも良くあること?
323名無しさん@そうだ選挙にいこう:2005/05/12(木) 23:16:36
>>322
> 適度に表なんか
適度に?
表なんか?

表以外でもなるのか?
つか、印刷したらどうなるんだ?
324名無しさん@そうだ選挙にいこう:2005/05/12(木) 23:48:37
>>322
重なってるだけじゃない?
325名無しさん@そうだ選挙にいこう:2005/05/12(木) 23:50:20
>>323
作っているのが罫線を引いた表形式なので。
言葉が悪かったです。
印刷したらちゃんと出るには出るので問題はないのですが
列の幅調整をする時にそれを目安に調整しているので不便といえば不便なので
行側の点線部分は出ているのに
326名無しさん@そうだ選挙にいこう:2005/05/12(木) 23:51:55
>>324
いや、1行目2行目の部分はタイトル部分でそこの部分は罫線自体引っ張ってないので
それはないです
327名無しさん@そうだ選挙にいこう:2005/05/13(金) 02:54:13
>>321
jpgをそのまま貼り付けるときに、付加情報をEXCELがつけちゃう。
bmp形式のファイルを メニュー→図の挿入によって貼り付ける事が一番用量が小さい(とおもう。)
328名無しさん@そうだ選挙にいこう:2005/05/13(金) 02:57:19
マクロを使用しないものでは、
1 プロパティ→ロックにチェックを入れ、
2 シートの保護をする。
が簡単です。
329328:2005/05/13(金) 02:58:25
番号つけるの忘れてました。ごめん、320へ。
>>320
マクロを使用しないものでは、
1 プロパティ→ロックにチェックを入れ、
2 シートの保護をする。
が簡単です。
330名無しさん@そうだ選挙にいこう:2005/05/13(金) 10:59:07
質問です。
シート1 名称:「成績」
シート2 名称:「結果」
とし、
シート2のA1セルに「成績」という文字列が入っているとします。
このとき、シート2のB1セルの数式の中で、シート1の「成績」に存在するZ1セルを参照したい場合、
シート2のB1の数式に、=!成績Z1 とするのではなく、
A1セルに「成績」という文字列があることを利用して、これをシート名称として読ませて参照することは可能でしょうか?

つまり、シート2のB1セルの数式内に、=!(シート2のA1セルの名称)Z1
というような感じにしたいのです。

意味不明でしたら申し訳ありません。。
INDIRECTを使っても、シート名称としては認識させることができなかったので。。
331名無しさん@そうだ選挙にいこう:2005/05/13(金) 11:10:46
>>330
INDIRECTで出来るよ。
出来ないんだとしたら使い方間違ってるだけ。
ヘルプをよく読んでもう一度やってみな。

ちなみに数式(関数)は半角で入力しなくちゃダメだからね。
332名無しさん@そうだ選挙にいこう:2005/05/13(金) 11:35:57
お返事ありがとうございます。
もう一度やり直しています。
シート1を成績という名称として定義し、参照できるか試しています。
=INDIRECT($A$1)!Z1
これだとできないのですねぇ。。。どうやるんだろう@@;

>>330の!の位置が違っていました。。訂正します。
333名無しさん@そうだ選挙にいこう:2005/05/13(金) 11:40:13
>>332
だ〜か〜ら〜、ヘルプ読めって
334名無しさん@そうだ選挙にいこう:2005/05/13(金) 11:51:51
読んでます。。でも出来ないんです。。。
ヘルプは同一シート内でのことしかやってないし。。。;;

335名無しさん@そうだ選挙にいこう:2005/05/13(金) 12:03:32
>>334
参照と実数を同時に使う場合はヘルプでどういう風に記述されてる?
今回は「$A$1」が参照で「Z1」が実数だ。
参照と実数を同時に使う方法が分かってれば、
同一シートか別シートかなんて関係ない。
336名無しさん@そうだ選挙にいこう:2005/05/13(金) 12:15:43
素直に教えてあげりゃぁいいのに。
337名無しさん@そうだ選挙にいこう:2005/05/13(金) 12:24:42
と言いながら自分も教えてあげない336に萌え
338名無しさん@そうだ選挙にいこう:2005/05/13(金) 12:46:57
なんでヘルプに書いている数式はそのままで
要素だけを書き換えるって作業が出来ない子がいるんだろう。

とりあえず簡潔に言えば↓
=INDIRECT($A$1&"!Z1")


応用としてこっちが出来ないってなら話は分かるけど
・行のみ相対参照
=INDIRECT($A$1&"!Z"&ROW())

・行列ともに相対参照
=INDIRECT(ADDRESS(ROW(),COLUMN()+24,1,1,$A$1))
339名無しさん@そうだ選挙にいこう:2005/05/13(金) 13:04:01
これもゆとり教育の弊害かねぇ
定型的な処理は速くなっても、応用ってもんが出来ない奴が増えてる
人間は応用が出来るから時として機械以上の仕事がこなせるわけで
定型処理じゃどんなに早くなっても機械にはかなわないんだから
応用が出来ない人間は機械以下の存在だよ
340名無しさん@そうだ選挙にいこう:2005/05/13(金) 13:08:14
できました。。
ありがとうございます。
私にはこんなの難しいよ。。なんせ中3だし。。関係ないかぁ。
でもよかった、ありがとうございました!

応用として書いていただいた2つ、練習で今から調べてやってみます。
341名無しさん@そうだ選挙にいこう:2005/05/13(金) 16:49:33
エクセルBVAのことなのですが、
検索に使用する[*]や[?]のような任意の文字を使用することができるのでしょうか?
具体的にしたいことが、

If Worksheets(1).Cells(1,1) = "*" & 変数 & "*" Then
            ・
            ・
            ・
のように変数を挟んで[*],[?]などを使いたいのですがどのようにすればいいのでしょうか?
宜しくお願いします
342名無しさん@そうだ選挙にいこう:2005/05/13(金) 17:00:09
>>341
ヘルプでLike演算子調べてみ?
343名無しさん@そうだ選挙にいこう:2005/05/13(金) 17:04:17
>>341
等号演算子を使った場合は、ワールドカードは使えません。
ワールドカードが使いたければLike演算子を使ってください。
344名無しさん@そうだ選挙にいこう:2005/05/13(金) 17:09:16
@ A Bと丸付きの数字をドラッグで連番入力したいのですが
やってもCと続かず再び@からはじまります。

やり方を教えてください
345名無しさん@そうだ選挙にいこう:2005/05/13(金) 17:16:12
>>344
オプション > ユーザー設定リスト > リストの項目
@
A
B
C
とSまで入力していき「追加」ボタンをクリック。
知ってるだろうけど○囲み数字はSまでだから。
346名無しさん@そうだ選挙にいこう:2005/05/13(金) 17:18:31
>>342,343
ありがとうございます♪ばっちりできました。
347名無しさん@そうだ選挙にいこう:2005/05/13(金) 23:26:41
>343
つ、釣られないぞ。
348名無しさん@そうだ選挙にいこう:2005/05/13(金) 23:48:22
349名無しさん@そうだ選挙にいこう:2005/05/14(土) 01:45:00
すみませんこんな夜中に。ずっとわからないで居るのですが、
たとえばシフト作成とかで10−23時と入力してあるデータを
別なシートで10時から23時までマスを作成しその時間まで塗りつぶすみたいなことやりたいのですが
どうしてもできません。ようは10-23時まで線を自動で引きたいのです。いろいろ聞いたらマクロでできると聞いたんですが、
これまたさっぱりでどうしてよいかわかりません。どなたかご教授してください。
350名無しさん@そうだ選挙にいこう:2005/05/14(土) 02:08:57
それぐらいの勉強はしろよ
351名無しさん@そうだ選挙にいこう:2005/05/14(土) 02:41:04
普通にグラフ使えばいいような気もするが、
とりあえず数式でやるなら
C1:Z1に0〜23を入力、A2に10、B2に23、C2に
=IF(AND(C$1>=$A2,C$1<$B2),"■","")
と入力してオートフィルでZ2までコピー。
フォントによ因るが列幅は2くらいにしとけ。

コレを元に別シートに作るなら参照部分にシート名を加えればいいし
「10、23」という数値ではなく「10-23時」という文字列から
数値を取り出したいなら、文字列操作関数を使ったり、
数式を入れるセルの文字色を変えてみたりしろ。
30分単位、15分単位の処理も出来るし
VBA(マクロ)でもこれと同じ考え方でセルの塗りつぶしが出来る。

ここは「ぜんぜんわからないので、俺の変わりにコード書け」ってスレではないので
あとは自分でかんがれ。
がんばる気がないなら上記の数式そのままで満足しとけ。
352kaz:2005/05/14(土) 04:52:48
やってみます!!!ありがとうございます
353名無しさん@そうだ選挙にいこう:2005/05/14(土) 09:20:12
ログを読もうとしない奴が多いみたいなんで

★自分で出来ることは自分でやろう(ヘルプ・Googleの検索など)★
【1     O S の 種 類    】 Windows***
【2 E x c e l の バ ー ジ ョ ン .】 Excel***
【3   V B A が 使 え る か  】 はい・いいえ
【4 Googleでの検索キーワード】
【5 ヘルプでの検索キーワード】
【6 スレのFAQとログを読んだ.】 はい・いいえ
〜〜〜質問内容〜〜〜

354名無しさん@そうだ選挙にいこう:2005/05/14(土) 11:24:06
大会の集計を作ってるんですが、エクセルあんまり使ったことなくて
頭抱えています。

コースが1から7まであって、左に名前、タイム、着順のセルがあり
競技終了後タイムを1.45.32な感じで入力していって、最後に
早い順からコース・名前・タイムを並び替えて、着順を表示させたいのですが、
単純に並び替えをしても着順が表示できないし、行き詰ってしまいました。

VBAを使えばって考えましたけど、さらに使ったことありません

最終的には、着順ごとに表彰状も印刷できるようにしたいのですが
どなたか、ご指導お願いします。

ヒントでも結構です
355名無しさん@そうだ選挙にいこう:2005/05/14(土) 11:51:17
>>354
ヒント
着順表示:RANK、mm.ss.00
表彰状印刷:For Next、Worksheets.PrintOut

これ以上の回答が欲しかったら、一つ上のレスでもよんでみろ
356名無しさん@そうだ選挙にいこう:2005/05/14(土) 12:59:43
シートAにその日の日付とデータを記入して、シートBにそのデータを蓄積して月のデータ表に
したいのですが、データの引用の仕方がいまいちわかりません。

具体的にはシートAに書かれた日付から、シートBで記入される列を自動的に変えていきたいのですが
どのような関数を使えばよいでしょうか?
357名無しさん@そうだ選挙にいこう:2005/05/14(土) 13:08:12
>>356
ワークシート関数は、基本的に関数を入力したセルに値を返すだけのものなので
あなたの想定しているようなことは出来ません。
VBAで処理してください。
358名無しさん@そうだ選挙にいこう:2005/05/14(土) 14:10:22
助けてください。エクセル2003の起動時のトラブルです。
エクセル起動時に、personal.xlsが起動しません。
表示、非表示ではなく実際に開いていないのです。

C:\Program Files\Microsoft Office\Office11\XLSTART

のフォルダ内に、ファイルはあるのですが・・・。

そのせいか、手動でpersonal.xlsを開いても、
アイコンにマクロ登録していたのが使えません。

エクセルを再インストールしても直りませんでした。
359名無しさん@そうだ選挙にいこう:2005/05/14(土) 14:17:04
>>358
Program Files内にpersonal.xlsがあるってことはWin9x/Me系か?
Excel2003はWindows2000以降のOSじゃないとちゃんと動かないよ。
動作対象外の環境で使ってるなら、不都合が起きてもどうにも出来ないな。

http://www.microsoft.com/japan/office/excel/prodinfo/sysreq.mspx
> Excel 2003 のシステム要件
> オペレーティング システム   Microsoft Windows 2000 (Service Pack 3 : SP3) 以降、または Windows XP 以降
360名無しさん@そうだ選挙にいこう:2005/05/14(土) 14:25:42
>>359
返事ありがとうございます。
OSはXP SP1です。

C:\Documents and Settings\<ユーザー名>\Application Data\Microsoft\Excel\XLSTART

の中に移動しても同じ結果でした。

説明不足ですいません。

361名無しさん@そうだ選挙にいこう:2005/05/14(土) 14:33:56
XPならそもそもProgram Files内にpersonal.xlsがある時点でおかしい
XLSTARTフォルダはあっても普通は空のはず。
とりあえずOSも再インストールしてみな。
362名無しさん@そうだ選挙にいこう:2005/05/14(土) 15:45:19
お前ら他人事だと思って簡単に言うよな

OSのインストールなんて生涯しない人が大半なのに
363名無しさん@そうだ選挙にいこう:2005/05/14(土) 15:51:36
うちのデバック機なんて月5〜10回はOS再インストールしてますよ。
メイン機も2ヶ月に1回くらいは再インストールしてるし。
364名無しさん@そうだ選挙にいこう:2005/05/14(土) 18:28:30
質問です

エクセルでE1のセルに=C1+D1の値を入れたいと思って、

=INDIRECT(ADDRESS(ROW(),COLUMN()-2,1,1,"シート1"))+INDIRECT(ADDRESS(ROW(),COLUMN-1,1,1,"シート1"))

という関数を入れて値を出そうとしたのですが、値は出るのですが、エラーが出てしまいます。
どこが間違ってるのでしょうか?
365名無しさん@そうだ選挙にいこう:2005/05/14(土) 18:39:51
>>364
=INDIRECT(ADDRESS(ROW(),COLUMN()-2,1,1,"シート1"))+INDIRECT(ADDRESS(ROW(),COLUMN-1,1,1,"シート1"))
                                                           ↓
=INDIRECT(ADDRESS(ROW(),COLUMN()-2,1,1,"シート1"))+INDIRECT(ADDRESS(ROW(),COLUMN()-1,1,1,"シート1"))

凡ミスだね。ちなみに同一シート内なら
=INDIRECT(ADDRESS(ROW(),COLUMN()-2))+INDIRECT(ADDRESS(ROW(),COLUMN()-1))
でもいける。
366名無しさん@そうだ選挙にいこう:2005/05/14(土) 19:42:41
excelを使って、割り算したいのですが
10/3....3まり1のようなふうに答えをだしたいです。
Mod関数を使うと1しかでてこないので、3も同時に
だすような関数はありますでしょうか?
367名無しさん@そうだ選挙にいこう:2005/05/14(土) 20:35:15
>>365
どうもありがとうございます。
368名無しさん@そうだ選挙にいこう:2005/05/14(土) 22:48:57
>>366
Mod関数のヘルプや関連項目をよく読む。
369名無しさん@そうだ選挙にいこう:2005/05/15(日) 02:24:14
すいません、質問させてください。
あるセルの(あるいは、セルの中の一部の文字列でもいいです)「文字間の間隔」を、
設定するにはどうすればよいのでしょうか?

よろしくお願いいたします。
370名無しさん@そうだ選挙にいこう:2005/05/15(日) 02:42:02
>>369
Excelはワープロではなく表計算ソフトなので、任意で文字間を変えることは出来ません。

代用策
・均等割付
・スペース、あるいは非表示色の文字を入れる
 (文字間用の文字サイズだけを調整することで、かなり細かく設定出来る)
・文字間の違うフォントを使う
371名無しさん@そうだ選挙にいこう:2005/05/15(日) 10:43:44
>>369

2002以降なら

セルの書式設定→配置→横位置→均等割り付けのインデントで調整
372名無しさん@そうだ選挙にいこう:2005/05/15(日) 11:18:05
>>362
マジ?俺今までに、2kを50回は再インスコしているよ。
373名無しさん@そうだ選挙にいこう:2005/05/15(日) 11:33:04
↑異常
374名無しさん@そうだ選挙にいこう:2005/05/15(日) 11:43:16
月1くらいのペースで再インスコするのは正常の範囲。
もちろん数年間入れっぱなしなのも正常の範囲。
PCの使い方なんて多種多様。
自分の使い方と違うからといって他人を異常と判断する奴は異常
375名無しさん@そうだ選挙にいこう:2005/05/15(日) 14:16:32
月1で再インストールって・・なんか問題があるんじゃねーのか?
そんなに不安定ならOS変えれば?
376名無しさん@そうだ選挙にいこう:2005/05/15(日) 14:21:49
不安定だから再インストールする
再インストールは不安定になった時しか必要ない

そういう発想自体がナンセンスですよ
377名無しさん@そうだ選挙にいこう:2005/05/15(日) 14:48:30
んん?それじゃなんにもなくても毎月再インストールするのか?
安定しているのに無駄な作業をする方がナンセンス

再インストールが趣味なのか?
378名無しさん@そうだ選挙にいこう:2005/05/15(日) 14:52:24
わかってないなぁw
379名無しさん@そうだ選挙にいこう:2005/05/15(日) 15:09:59
普段はテンプレにうるさい奴が多い割に、スレ違いどころか板違いには寛容なのか?
再インスコの話してる数名はOS板に「再インストールの頻度」スレでも立てて、思う存分語り合ってくれや。
380名無しさん@そうだ選挙にいこう:2005/05/15(日) 15:11:01
日曜ですから
381名無しさん@そうだ選挙にいこう:2005/05/15(日) 15:15:58
>379
可哀相な奴だな
382名無しさん@そうだ選挙にいこう:2005/05/15(日) 15:57:43
不安定でもなんでもいいんだけどさ、何度もOSを入れ直す人というのは、
結局のところ趣味でやってるというのが本当のところだよな。

趣味を追求するのが悪い事とは言わないが、本来1度行えば永久に不要である(筈の)
インストール作業なんかに労力を割き過ぎるというのは、道具の使い方としては
下手糞と言わざるを得ないな。
383名無しさん@そうだ選挙にいこう:2005/05/15(日) 21:09:01
> 労力を割き過ぎる
OSのインストールって労力使うのか?
難しく考えてるのは素人だけだろ。
あんなもん、インストール自体はCDが勝手にやってくれるし、
環境の復元はバッチやスクリプト回すだけ。

寝る前にCDセットして、朝起きたらスクリプト実行、
仕事から帰れば、既に再インストールは完了している。
こんなもんに労力も糞もねーよ。

OSの再インストールごときに労力だのなんだの言い出すほど振り回されるのは
道具の使い方としては下手糞と言わざるを得ないな。
384名無し:2005/05/15(日) 21:09:15
エクセル2000でオートフィルしたとき式は下方に出てくれるのですが答えがドラッグした位置と同じ答えになってしまいます
セルをダブクリして数式に戻してからエンターを押せば正しい答えには戻ってくれるのですが・・・
385名無しさん@そうだ選挙にいこう:2005/05/15(日) 21:24:47
>>384
質問は日本語でどうぞ
386名無しさん@そうだ選挙にいこう:2005/05/15(日) 21:38:37
>仕事から帰れば、既に再インストールは完了している。

毎月そんなことしなきゃいけないような環境で使ってるとすれば
道具の使い方としては下手糞と言わざるを得ないな。
387名無しさん@そうだ選挙にいこう:2005/05/15(日) 21:43:53
388名無しさん@そうだ選挙にいこう:2005/05/15(日) 21:46:34
>>384
ツール>オプション>計算方法タブ>計算方法
ここの選択が「手動」になってないかい? だったら、「自動」を選択。
389名無しさん@そうだ選挙にいこう:2005/05/15(日) 22:14:33
>>388
なるへそ。
あなたはエスパーですか?
390名無し:2005/05/15(日) 22:14:34
>>388
ありがとうございました
おかげで直りました
391名無しさん@そうだ選挙にいこう:2005/05/15(日) 23:02:39
難しいとかそういう問題じゃないんだよな

現実にインストール作業なんかしなくても済んでいる人が何十万人といる中で、
あえて何度も作業をするというのは、好きこのんでやってるとしか思えないという事なのだな

確かに不具合を解決する為にOSの再インストールを迫られる場合もあるだろうが、本来それは
OSやソフトを組んだ人間が万全を期していれば起こらなかった筈の問題で、ユーザーがわざわざ
骨を折って解決する筋合いの事じゃないんだよな

ユーザーの立場としては、まずは現状の環境で解決策を探す事、それが無理だったら、次は
同じ問題を起こさないよう気を付ける事が、本来向けるべき努力の方向じゃないだろうか
392名無しさん@そうだ選挙にいこう:2005/05/15(日) 23:24:55
> ユーザーがわざわざ骨を折って
再インストールごときで骨を折るのは無能だから

> ユーザーの立場としては、まずは現状の環境で解決策を探す事、それが無理だったら、次は
> 同じ問題を起こさないよう気を付ける事が、本来向けるべき努力の方向じゃないだろうか

そういうことは、ちゃんとしたOS使ってる奴だけに言ってくれ。
Windowsにその理論は通らないよ。
393名無しさん@そうだ選挙にいこう:2005/05/15(日) 23:59:40
だからWindoiwsが糞なのになんでユーザーがその糞OSの尻ぬぐいをしてるんだって話だろ

一度入れたOSを再度入れ直すなんて無駄な作業をユーザーに強いる方がおかしいし、
ユーザーがそんな無駄に付き合ってやる筋合いは無い

それは再インストールが1分で終わろうが一瞬で終わろうが同じだよ
394名無しさん@そうだ選挙にいこう:2005/05/16(月) 00:05:36
Windoiws
395名無しさん@そうだ選挙にいこう:2005/05/16(月) 00:13:34
XPにしてから3年半たつが一度も再インストールせずに快適に
使えているが、それが大半の状況ではないのかね。
9.xのときは最低年一回再インストールしていたが。普段は、
レジストリバックアップをこまめにして、調子悪くなるたびに
書き戻していたけど、、、
396名無しさん@そうだ選挙にいこう:2005/05/16(月) 00:13:42
言い負かされて話題転換か(w
しかもWindoiws
397名無しさん@そうだ選挙にいこう:2005/05/16(月) 00:38:46
391→393だろ?
別に話題転換はしてないんじゃないか?

Windoiwsはともかく
398名無しさん@そうだ選挙にいこう:2005/05/16(月) 06:08:55
今5人のNBA選手のその日の成績をデータベース化しています。
選手ごとに5枚のシートを使って得点、リバウンド数、アシスト数などを毎試合データにしているのですが、
別のシートに得点別、アシスト別、などに分けたランキングを作りたいんです。

得点で言えば、5人の毎試合の得点の中から上位20位とかで抽出してランキングを作りたいのですが方法が分かりません。
範囲内(この場合5人の選手それぞれの毎試合の得点)の数から上位20位だけ取り出してランキングを作れるような式はありませんか?
出来ればその得点だけでなく得点者も並列してランキングにしたいんです。

例を挙げれば、

1. A   56点
2. A   50点
3. B   49点
4. A   45点
5. C   43点
6. E   42点
      ・
      ・  
      ・
みたいな感じにしたいんです。A〜Eは選手名です。アドバイスお願いします。
399名無しさん@そうだ選挙にいこう:2005/05/16(月) 06:55:57
>>398
「別のシート」に作業枠を設けて、5枚のシートの内容を書き出すなら
数式だけで出来るけど、それをやりたくないならVBAで処理した方が楽かな。
一応定義参照と配列式使えば書き出し無しでも数式のみで出来そうだけど。

とりあえず「上位20位だけ取り出してランキングを作れるような式」は
=LARGE(A:A,ROW())
こんなのとか。但し名前も必要だから、RANK関数で順位書き出して、
VLOOKUPで引っ張った方がいいね。B列に名前、C列に得点なら
A1=RANK(C1,C:C)
でデータ範囲行までフィルコピーし、
D1=1、E1=VLOOKUP(D1,A$1:C$100,2,0)、F1=VLOOKUP(D1,A$1:C$100,3,0)
で20行までフィルコピー。
これでD〜F列に君が挙げた例通りの表が完成する。
逆にランキングシートへの書き出しでLARGE関数使えばいい。

元データがどういう風になってるのか分からないからこれ以上のアドバイスは難しいな。
400名無しさん@そうだ選挙にいこう:2005/05/16(月) 08:23:24
>>399
かなり参考になりました!
それでやってみます。感謝します。
401名無しさん@そうだ選挙にいこう:2005/05/16(月) 08:58:14
過去ログ探したのですがうまく見つからないので・・・
例えば90(単位は分)と表示しているセルを1:30とか1.30とか
つまり1時間30分と示すことが出来る表示形式とか関数というものは存在するのでしょうか

90+60+40=190(分)→3時間10分、というような感じで

うまく伝わらないかもしれなくて申し訳ないですが・・・
Excelha2002です
402名無しさん@そうだ選挙にいこう:2005/05/16(月) 09:13:03
>>401
=TEXT(A1/1440,"h:mm")

Excelのシリアル値では24時間が1です。
つまり整数を時間に変換するなら1/24、
分に変換するなら1/(24*60)。つまり1/1440ですよ。
403名無しさん@そうだ選挙にいこう:2005/05/16(月) 09:25:42
合計が24時間を超えたら使えないじゃないですか

駄目ですよこんなの
404名無しさん@そうだ選挙にいこう:2005/05/16(月) 09:35:12
>>403
=TEXT(A1/1440,"[h]:mm")

ちょっとは調べろこのやろー


とか言いながら、
ちなみに
=TEXT(A1,"[m]")
で25:00を1500(分)に変換出来る。
なんてことまで教えちゃう俺はお人好し。
405名無しさん@そうだ選挙にいこう:2005/05/16(月) 09:40:14
403は俺ではないわけだが
406名無しさん@そうだ選挙にいこう:2005/05/16(月) 09:41:10
>405
なんかかんけーあるの?
407名無しさん@そうだ選挙にいこう:2005/05/16(月) 10:34:11
うん
408名無しさん@そうだ選挙にいこう:2005/05/16(月) 10:42:22
404の書き込みは403が"俺"だろうと誰だろうとあまり関係ないわけで
409名無しさん@そうだ選挙にいこう:2005/05/16(月) 10:43:49
うそぴょん
410名無しさん@そうだ選挙にいこう:2005/05/16(月) 10:44:20

【1 OSの種類】 winxp
【2 Excelのバージョン】 2002
【3 VBAが使えるか】 使えません
【4 Googleやヘルプでの検索キーワード】 EXCEL 関数 空白、0を返さない
【5 ヘルプでの検索キーワード】 空白、=、参照
【6 スレのFAQとログを読んだ.】 FAQは読みましたがログは少し
〜〜〜質問内容〜〜〜
シートを越えて、=でリンクさせているのですが、
seet1で、A1が空欄の場合リンク先のseet2のA1で0と表示されるのを
空白に見せかける方法はありますか?
411名無しさん@そうだ選挙にいこう:2005/05/16(月) 11:05:45
>>410
IF ISBLANK ""
412名無しさん@そうだ選挙にいこう:2005/05/16(月) 11:10:58
>>410
すべてのセルで0が消えてもいいなら、
ツール→オプション→ウィンドウオプション
で「ゼロ値」のチェックをはずす。

特定のセルだけで空白にしたいならIFをつかう。
413名無しさん@そうだ選挙にいこう:2005/05/16(月) 11:12:47
>>410
もしsheet1のA1が「""(何もないの意味)」だったら、""を表示。それ以外の場合はsheet1のA1を表示。

IF関数を調べてみましょう。
414410:2005/05/16(月) 11:36:08
ありがとうございました。

IF(Sheet2!B3=""," ","?")
偽の場合にナニを入れればいいのか解らないですが、
これで少し探ってみます。
415名無しさん@そうだ選挙にいこう:2005/05/16(月) 11:46:42
=IF(ISBLANK(Sheet1!A1),"",Sheet1!A1)
416名無しさん@そうだ選挙にいこう:2005/05/16(月) 18:01:47
【1 OSの種類】 winxp
【2 Excelのバージョン】 2002
【3 VBAが使えるか】 使える
【4 Googleやヘルプでの検索キーワード】 EXCEL マクロ 保存
【5 ヘルプでの検索キーワード】 マクロ Personal
【6 スレのFAQとログを読んだ.】 FAQは読みましたがログは少し

〜〜〜質問内容〜〜〜
あるマクロを作ったのでこれを保存します。マクロはメニューバーの自作マクロ という
ボタンから実行できるようになっています。 このエクセルのファイル名を macro.xls とします。
続いて、このmacro.xls を立ち上げて マクロを実行後、結果を out.csv に書き出し
ます。しかし、次に macro.xls を立ち上げると メニューバーも文字とマクロのリンクが外れて
いるのです。


Personal.xls に記録しろ、物の本に書いてあるのですが、 この名前がプロジェクトブラウザ
に存在しないのです

何か間違えていますか?



417名無しさん@そうだ選挙にいこう:2005/05/16(月) 20:22:47
まだ記録してないんだから当然だな
418名無しさん@そうだ選挙にいこう:2005/05/16(月) 20:38:48
excelで日をまたいだ時間を計算する場合、例えば12/31 22:00から1/1 20:00まで何時間かを計算する
場合はシリアル値を使った計算方法しかないのでしょうか?
419名無しさん@そうだ選挙にいこう:2005/05/16(月) 20:54:38
>>416
次の二つの方法がある。
1) メニューバーではなく、macro.xlsのシートの中にボタンを作って
 そのボタンにマクロを登録する。こうすればmacro.xlsを他人の
 PCで使ってもマクロが使える。
 もちろんマクロはmacro.xlsに記載する必要がある。
2) 他人がまったく使わず自分だけで使うマクロなら、parsonal.xls
 にマクロを書く。マクロの自動記録を一回やれば自然にできますよ。
420名無しさん@そうだ選挙にいこう:2005/05/16(月) 21:18:37
>>402
ありがとうございます〜
出来ました〜助かりました〜
421名無しさん@そうだ選挙にいこう:2005/05/16(月) 21:48:56
>>418
いろいろな方法がある。が、シリアル値を使えば楽だと思う。
なお、「12/31 22:00から1/1 20:00」などの場合は本当に減っているのか(マイナスの時間)、
実は翌年で増えているのかなどの処理を考える必要がある。
422名無しさん@そうだ選挙にいこう:2005/05/16(月) 23:27:12
時間計算するためのシリアル値なんでつ
とにかくシリア値にすれば道は開けるぞよ
423名無しさん@そうだ選挙にいこう:2005/05/17(火) 00:07:19
【1 OSの種類】 WindowsXP
【2 Excelのバージョン】 Excel2000
【3 VBAが使えるか】 いいえ
【4 Googleでの検索キーワード】 excel 対数近似 最小二乗法
【5 ヘルプでの検索キーワード】 対数近似
【6 スレのFAQとログを読んだ】 はい
〜〜〜質問内容〜〜〜
Excelの対数近似曲線の補間法って最小二乗法ですか?
もし違うのなら何で補間してるのでしょうか?
よろしくお願いします。
424名無しさん@そうだ選挙にいこう:2005/05/17(火) 02:10:29
>>423
補間法というより、回帰法というべき?思うんだが・・・きっとそうだよ。
y=a logx+ b を
 ↓
Y=a X +b と置き変えて一次式とし、最小自乗法により係数a・bを求める。
元の式に戻して、相関関数を取っている。
の手順だとオモ。数学センスないけどね・・・>ヂブン。

425名無しさん@そうだ選挙にいこう:2005/05/17(火) 06:29:14
1507

707

425

333

333

318

305

253

こういうデータをつかうとき、間の空セルを詰めたいんですが
426名無しさん@そうだ選挙にいこう:2005/05/17(火) 06:39:13
>>425
For
If
Cells().Value = ""
Rows().Delete

はい、あとはがんばってね。
427名無しさん@そうだ選挙にいこう:2005/05/17(火) 06:42:59
なにそれマクロかなんかですか
428名無しさん@そうだ選挙にいこう:2005/05/17(火) 06:44:06
要するに、もし空白セルなら消すということを繰り返すプログラムでしょ

そりゃわかるが、もっと簡便な方法ないの?
なんでプログラム一々かかないといけんのですか
429名無しさん@そうだ選挙にいこう:2005/05/17(火) 07:11:54
てめー番号昇順で詰められた
ざまーみろやったー
430名無しさん@そうだ選挙にいこう:2005/05/17(火) 07:18:08
>>429
それは「データを詰める」とは違いますが、なにか?
「詰める」のではなく順番が狂ってもいいから空白を無くしたいだけなら最初からそうかきましょうね。
431名無しさん@そうだ選挙にいこう:2005/05/17(火) 07:18:38
>>425
1:全部選択
2:[編集]-[ジャンプ]-[セル選択]→「空白セル」
3:納豆に入れるネギをきざむ
4:[編集]-[削除]

これでいけるお
432名無しさん@そうだ選挙にいこう:2005/05/17(火) 07:20:49
単純ソートをするだけのことで、数十分も悩んだ425に萌え
433名無しさん@そうだ選挙にいこう:2005/05/17(火) 07:29:17
>428
あの〜、マクロって面倒な処理を簡単にするためにあるんですけどぉ
434名無しさん@そうだ選挙にいこう:2005/05/17(火) 07:41:17
429かあいい
435名無しさん@そうだ選挙にいこう:2005/05/17(火) 08:08:40
>>431

神キターーーーーーーー


有難い
436名無しさん@そうだ選挙にいこう:2005/05/17(火) 08:21:05
順番気にしないならソートの方が楽じゃね?
なぜソートで問題ないのに>>431で喜ぶのか不思議
437名無しさん@そうだ選挙にいこう:2005/05/17(火) 08:24:03
わーい神が教えてくれたわしょーい
438名無しさん@そうだ選挙にいこう:2005/05/17(火) 08:52:27






























439名無しさん@そうだ選挙にいこう:2005/05/17(火) 12:03:55
>>426より
>>429や  >>431が手間がかからないことだけは確かだな

己の読解力の低さを誇る>>430に萌
440名無しさん@そうだ選挙にいこう:2005/05/17(火) 12:14:03
>439
かわいそうなやつだな
441名無しさん@そうだ選挙にいこう:2005/05/17(火) 12:37:25
426じゃないけど試してみた

>>426
マクロ記述16秒、実行1秒以下、計約17秒
Sub hoge()
For i = 1 To Cells(65536, 1).End(xlUp).Row
If Cells(i, 1).Value = "" Then Cells(i, 1).Delete
Next i
End Sub

>>492
列範囲選択後、ツールアイコンから操作=1秒
同じくメニューから操作=3秒

>>431
1〜4までで21秒

>>492がダントツで簡単なのは間違いないが
順を維持するなら、漏れの場合マクロの方が速い
使い捨てマクロなんで変数宣言しろって突っ込みは無しの方向で
442名無しさん@そうだ選挙にいこう:2005/05/17(火) 12:40:36
>>441
ねぎを刻む時間が難しいよな
俺は入れても入れなくてもいい派なので
>>431はもうすこし短縮可能な希ガス
443名無しさん@そうだ選挙にいこう:2005/05/17(火) 12:54:53
右クリックメニューをカスタマイズしたいのですが
どこで設定できるんでしょうか?
444名無しさん@そうだ選挙にいこう:2005/05/17(火) 13:07:58
>>443
VBAで
詳しくはヘルプ参照
445名無しさん@そうだ選挙にいこう:2005/05/17(火) 13:15:05
>>444
レスありがとうございます
以前にカスタマイズしたことがありツール
バーメニューから設定できたと思うんですが。
右クリックメニューにグラフウィザードボタン
を追加したいと思いまして。
MSのオンラインヘルプを見ても見当たらないので
よろしくお願いします。
446名無しさん@そうだ選挙にいこう:2005/05/17(火) 13:23:24

(´-`).。oO( Excelのバージョンは何なんだろう )
447445:2005/05/17(火) 13:26:39
>>446
2000です
448名無しさん@そうだ選挙にいこう:2005/05/17(火) 14:13:53
時間の入力でたとえば5:00と表示したいのですが
いちいち:を入力する際にシフトを押すと時間がかかります。
もっと効率的な時間の入力方法ってありますか?

よろしくお願いします。
449名無しさん@そうだ選挙にいこう:2005/05/17(火) 14:21:17
>>448
変換用の列を1列作るか、マクロで変換
450名無しさん@そうだ選挙にいこう:2005/05/17(火) 14:24:35
>>448
なぜShiftを押す必要が?
451名無しさん@そうだ選挙にいこう:2005/05/17(火) 14:36:21
うちのパソコンはシフトをおさないと@と出るんです。。。
452名無しさん@そうだ選挙にいこう:2005/05/17(火) 14:37:11
>>442
じゃあこれでどう?
1:選択する
2:キムチと納豆を混ぜる
3:イミディエイトウィンドウに「Selection.Specialcells(xlCellTypeBlanks).Delete」

>>447
CommandBars("Cell").Controls.Add msoControlButton, 436
かな?元に戻すには
CommandBars("Cell").Reset
453名無しさん@そうだ選挙にいこう:2005/05/17(火) 14:39:53
>>452
正解は「卵を割り入れる」でつ
454名無しさん@そうだ選挙にいこう:2005/05/17(火) 14:41:01
>>451
大量に入力するんだったら、「5q00」とか「6q30」みたいに、「:」の代わりに入力がめんどくさくない
文字を入力しておいて、最後に全部選択して、[編集]-[置換]で「q」を「:」に置き換えとかは?
455名無しさん@そうだ選挙にいこう:2005/05/17(火) 14:42:45
>>453
(・c_・`)ソッカー
456名無しさん@そうだ選挙にいこう:2005/05/17(火) 14:51:29
複数種類がある飲み物の杯数表を作りたいのですが
シート1が履歴表 シート2が打ち込み表としてあります。
毎日データを更新し、1週間の履歴がシート1に
残るようにしたいのですが、どうやればいいのでしょうか。

詳しいかた、宜しくお願いします。
457名無しさん@そうだ選挙にいこう:2005/05/17(火) 15:11:26
>>448
オートコンプリートに「..」と入れると「:」になるよう登録。
テンキーの「.」を二回押すと勝手に変換してくれる。
時間入力がたくさんある場合、この方法だとテンキーだけで処理出来るので早いと思います。
458名無しさん@そうだ選挙にいこう:2005/05/17(火) 16:30:54
>>457
質問者じゃないけど感謝!
これ賢い!!
459398:2005/05/17(火) 18:47:36
>>398で質問した者ですが、>>399さんのおかげでランキング作ることが出来ました。ありがとうございます。
1列目にRANK関数で順位を、2列目にVLOOKUPで名前を、3列目にLARGE関数で得点を羅列したのですが、
ひとつ問題が出てきて、全く同じ得点の場合にVLOOKUPが昇順に名前を優先してしまうせいか、同じ名前が続いてしまうんです。

VLOOKUP用に別シートにこんな感じで羅列してるんですが

38点 A
47点 A
22点 C
35点 B
47点 C   (A〜Cは選手名)

ランキングでは

1. 47点 A
1. 47点 A

となって47点をとったもう片方のCの名前が出せません。
どうすれば同じ得点があった場合にそのそれぞれの名前をVLOOKUPで出せるか教えていただけませんか?
460名無しさん@そうだ選挙にいこう:2005/05/17(火) 18:55:28
>>457
ありがとう。でも、ここでいうオ−トコンプリ−トに登録って
どこの話? エクセルにそんな項目はないし、ATOKとかのIMEの
話?
461名無しさん@そうだ選挙にいこう:2005/05/17(火) 18:58:24
>>460
[ツール]-[オートコレクト]で登録できるお
462名無しさん@そうだ選挙にいこう:2005/05/17(火) 18:58:43
>>460
氏ねばいいと思うよ
463質問 ◆y7XYmaFpQA :2005/05/17(火) 19:56:09
すいません。質問です。
「ある」か「無い」かだけを判定する単純な構文というのはあるんでしょうか。

例えば
A     B     C
1 1は? 
5     7は? 
10    13は? 
15    20は? 
20    28は? 

とセルに入力されていて、Cの列に「ある」「ない」を
ダーっと表示するには、C列にはどう入力すればいいのでしょう。
「COUNTIF」と「IF」を組み合わせて判定していたのですが
複雑になってきたので、もっと単純な構文は無いかと思いたって質問しました。
わかるかた、よろしくお願いします。
464名無しさん@そうだ選挙にいこう:2005/05/17(火) 20:01:45
>>463
「ある」と「ない」の基準が判らないので、式なんてたてられませんが。
上の例ではC列に何が返ればいいのでしょう?
判断基準とともに例示してください。
465名無しさん@そうだ選挙にいこう:2005/05/17(火) 20:04:37
セルの中にファイルの名前を売って、そこをクリックすれば
マイピクチャに保存している画像を開くようにしたいんだけど
こんなことって可能ですか?
466名無しさん@そうだ選挙にいこう:2005/05/17(火) 20:06:16
>>464
言葉足らずですいません。
B列にある数字がA列にあるかどうかをC列に返したいのです。
C1は、B1の数字がA列全体の中にあるかどうか
C2は、B2の数字がA列全体の中にあるかどうか・・・
という感じです。

C列が下のように表示されるようにしたいんです。

A     B     C
1      1    ある
5     7    ない
10    18    ない
15    20   ある
20    28   ない
467名無しさん@そうだ選挙にいこう:2005/05/17(火) 20:14:46
>>465
ファイルの名前を打って、
そこにカーソル合わせて「挿入→ハイパーリンク」
で、「参照」を押して表示したい画像ファイルを選べばOK.
468名無しさん@そうだ選挙にいこう:2005/05/17(火) 20:16:30
>>467
ありがとう。やってみます。
469名無しさん@そうだ選挙にいこう:2005/05/17(火) 20:17:22
>>466
C1=IF(COUNTIF($A$1:$A$5,B1)=0,"ない","ある")
下までオートフィル
範囲 $A$1:$A$5 の所は任意で。
470463 ◆y7XYmaFpQA :2005/05/17(火) 20:21:12
>>469
さっそくの回答ありがとうございますー!
ですが、今自分がやっている判定方法がまさにそれなんです・・・
参照先が別ファイルになっているせいか、
参照先ファイルを閉じた途端に
COUNTIFの結果が「#value!」になってしまうんです。
countifを使わない方法があれば・・・と思って質問してみたんですが
何かありませんでしょうか?
471名無しさん@そうだ選挙にいこう:2005/05/17(火) 20:35:02
463よ、>>1は読んだか?
・質問する人は可能な限り具体的に書いてね。
・情報は小出しにせず、きちんと書いてね。

>参照先ファイルを閉じた途端に COUNTIFの結果が「#value!」に
当方再現できず。問題なし。
他ブックの参照範囲をどんな風に記述しているか、晒してみたら。
式を書き込んでいるファイルのアドレスも合わせて。
472459:2005/05/17(火) 20:53:38
失礼しました。出来ました!
データ用の別シートに
A列に「B1+COUNTIF(D1:D1,D1)-1」
B列に「rank(C1,D1:D5)」
を加えて、
ランキングの得点の部分もVLOOKUPで引っ張りました。
入りくちを教えてくださった>>399さん感謝します!
473457:2005/05/17(火) 22:17:31
>>460
>>461さんの言うとおり「オートコレクト」でしたorz スマソ。
外出中に携帯で書き込んでたので、そばにエクセルが無かった
ため、うろ覚えで書いておりました。
「オートコンプリート」って、IEの検索履歴を自動表示する奴ですね。
エロサイト検索してるのが奥さんにばれてしまうという機能ww
474名無しさん@そうだ選挙にいこう:2005/05/18(水) 01:27:07
エクセルは自分で調べるより知ってる奴にきくのが一番なんだよ
そういうわけで、2chでもこういうスレはとくに有意義であるから
住人は誇りに思ってもらいたい


                                      学長
475名無しさん@そうだ選挙にいこう:2005/05/18(水) 01:51:34
まぁExcelに限らずにだけどね。
でもあんまり簡単な質問や
環境を書かずに質問する奴、条件を後出しする奴はどこに逝っても嫌われる。
最低限コレ↓くらいの情報は書こうぜ。

Sub test()
 MsgBox Application.OperatingSystem & vbCrLf & "Excel" & Application.Version
End Sub
476名無しさん@そうだ選挙にいこう:2005/05/18(水) 02:37:39
エクセルをやっててひとつ思うこと。

「あ、こんな式出来ないかな?」
「あ、こんな方法ないかな?」
「あ、もしかしたらこんなこと出来るんじゃないか?」

エクセルで出来なかった試しがない。
奥、深すぎ。
477名無しさん@そうだ選挙にいこう:2005/05/18(水) 02:38:57
あ、俺の発想が浅すぎ、とも言える。
478名無しさん@そうだ選挙にいこう:2005/05/18(水) 07:35:09
すみません。
質問させて下さい。
excelで、セルに入力してある数字にボタン一発で決まった数を足す事は出来るでしょうか?
寸法書きしている数字全部にそれぞれ14ミリづつ足したいのです。
479名無しさん@そうだ選挙にいこう:2005/05/18(水) 07:54:28
>>478
適当なボタン作って
ActiveCell.Value = ActiveCell.Value + 14
を登録する。
ボタンを押したときアクティブだったセルに+14

でも
> 寸法書きしている数字全部に
というならその全てに+14するマクロ使った方がいいね。
Dim RngObj As Range
For Each RngObj In 範囲
RngObj.Value = RngObj.Value + 14
Next RngObj
とか。
ActiveSheet.UsedRangeを指定して
If IsNumeric(RngObj.Value) Thenとしてもいいけど
その辺は条件がわからないので自分で判断して。
480名無しさん@そうだ選挙にいこう:2005/05/18(水) 11:37:54
ツール⇒分析ツール⇒ヒストグラム
でデータ区間を省略すると自動で140分割されますが
この140を変えることはできるのでしょうか?
どなたか分かる方がいましたらお願いします。
481478:2005/05/18(水) 12:28:28
>>479
有難うございます〜〜〜〜〜!!!
めちゃくちゃ感激しました。
あなたさまは神、いわゆるゴッドです。
482名無しさん@そうだ選挙にいこう:2005/05/18(水) 16:03:06
セルの指定で、アクティブセルと同じセルの選択ってできますか?
483名無しさん@そうだ選挙にいこう:2005/05/18(水) 16:22:41
任意のセルにマウスポインタを持って行き、マウスに強力にかかと落としすると出来る
484名無しさん@そうだ選挙にいこう:2005/05/18(水) 16:23:59
>>482
意味がよくわからん・・・
485akira:2005/05/18(水) 16:49:34
エクセルで、サッカーの勝ち点による順位の推移グラフを作りたいです。
縦軸が順位、横軸が時系列です。
各チームの勝ち点を入力するセルは1チームに1つ。
毎試合ごとにセルを増やして作るのは簡単ですが、履歴をグラフにできませんか?
うまく説明できませんが、お願い致します。
マクロは出来れば使いたくないです。
486名無しさん@そうだ選挙にいこう:2005/05/18(水) 18:04:03
>>470
A列に当たる部分が別ファイルと言うことなら
A列部分を外部リンクで手元のファイルに引っ張ると言う方法もある
(COUNTIFで参照するシートはローカル・シートにする)

1.新たにシート(Aとする)を作成
2.作ったシートを参照先外部ファイルの参照先シート(Bとする)と同じ書式に設定
3.Bシート内の「データのあるセル全て」をAシートの同じ位置に外部リンクする
(外部リンクの貼り方はOK?)
4.COUNTIFで見に行くのはAシート

でやってみると、#value!回避できるんでない

蛇足だが、関数レベルで#valueを表示させないには
C1=IF(ISERROR(COUNTIF($A$1:$A$5,B1)),"",IF(COUNTIF($A$1:$A$5,B1)=0,"ない","ある"))
などどすることも可。多少まどろっこしいが。
487名無しさん@そうだ選挙にいこう:2005/05/18(水) 18:12:34
>>470

データ有無の単純な判断の場合、MATCH関数も良い。
例の場合
1行目(C1) =MATCH($A:$A,B1,0)
2行目(C2) =MATCH($A:$A,B2,0)
3行目(C3) =MATCH($A:$A,B3,0)
.
.
.

C1に上記入力した後、C2〜C5にコピペでも良い

尚、$A:$Aの指定の場合、A列にヘッダ相当のデータなどがないと言う前提
(あったらその行も検索しちゃう)

488名無しさん@そうだ選挙にいこう:2005/05/18(水) 18:17:59
>>487
パラメータの書き方逆でした。

1行目(C1) =MATCH(B1,$A:$A,0)
2行目(C2) =MATCH(B1,$A:$A,0)
3行目(C3) =MATCH(B1,$A:$A,0)

失礼
489名無しさん@そうだ選挙にいこう:2005/05/18(水) 19:24:58
すいません。COUNTIFについて質問させてください。
Cドライブに二つのファイルがあり、「計算用」というファイルでは
「元データ」というファイルの数値を元に様々な計算をしています。

「元データ」を開いていない状態で「計算用」ファイルを開くと
「開いているブックには自動リンクが設定されています
すべての情報を更新する場合にははいを押してください」
と出てきますので、データ更新のために「はい」をクリックします。
すると、COUNTIFで計算しているセルだけが「VALUE!」と表示されてしまうのです。

たとえば、「元データ」というファイルはA列はA1から順に
1
2
3
4
5  と入力されているとします。
「計算用」ファイルのA列にはA1から順に
='C:\[元データ.xls]Sheet1'!A1
=IF('C:\[元データ.xls]Sheet1'!A1-'C:\[元データ.xls]Sheet1'!A2<0,"マイナス","")
=SUM('C:\[元データ.xls]Sheet1'!A1:A5)
=COUNTIF('C:\[元データ.xls]Sheet1'!A1:A5,5)
と、入力されているとします。画面表示上はA1から順に
1
マイナス
15
1
になります。この状態で保存し、「計算用」だけを開いて、情報を更新すると
A1、A2、A3はそのまま「1」「マイナス」「15」が表示されますが、
COUNTIFを使っているA4だけが「VALUE!」になってしまいます。
この状態で「元データ」ファイルを開くと、「VALUE!」ではなく、ちゃんと「1」が表示されるようになります
これは一体どういう理由なのでしょうか。もし可能ならば、
「VALUE!」にならない方法を教えてください。よろしくお願いします。
490名無しさん@そうだ選挙にいこう:2005/05/18(水) 19:54:36
エクセルで消費税を計算するときに
1.05を使わないで計算する方法わかる方いますか!?
かなり切実です!!
491名無しさん@そうだ選挙にいこう:2005/05/18(水) 19:58:21
>>491
共産党に投票して政権を取らせる。
すると消費税を3%に下げてくれる。
492名無しさん@そうだ選挙にいこう:2005/05/18(水) 19:59:33
>>490
何故1.05じゃダメなんですか?
493490:2005/05/18(水) 20:06:34
1.05と入力しないで出すよう指定されてるんです↓↓
494名無しさん@そうだ選挙にいこう:2005/05/18(水) 20:12:37
>>490
A1に元の値段が入ってるとして

=A1+A1/20

これでいいのかしら?
495名無しさん@そうだ選挙にいこう:2005/05/18(水) 20:13:13
>>493
=A1*105/100
=A1+A1*0.05
=A1+A1/20
=A1/20*21

1.05を使わない式なんていくらでもあるが。
496490:2005/05/18(水) 20:18:44
5の数字を使った計算方法
わかりますか??
497名無しさん@そうだ選挙にいこう:2005/05/18(水) 20:18:46
消費税率age(sage)に対応させる必要は無いの?
498名無しさん@そうだ選挙にいこう:2005/05/18(水) 20:19:30
実数使っちゃダメとか、後出し条件言い出しそうな悪寒

とか言ってみる。
499名無しさん@そうだ選挙にいこう:2005/05/18(水) 20:25:18
単に 5%を 使用したら

とかいっちゃったりして
500490:2005/05/18(水) 20:42:17
消費税率ゎ関係ないです↓
本当に誰かお願いします!!
501名無しさん@そうだ選挙にいこう:2005/05/18(水) 20:48:16
>>500
1.05ではなぜいけないか(いけないと言われているか)を
書いたほうがみんな回答しやすいとおもうんですが、いかが?
その理由によってはなにか知恵があるかもしれませんよ
502名無しさん@そうだ選挙にいこう:2005/05/18(水) 20:50:44
>>500
何かの問題に対する解答を求めてるのなら
問題そのものを書き込んだ方が早いのでは?
503490:2005/05/18(水) 20:55:03
すいませんでした…
問題載せます!!

問題:果物をいくつか買って、何人かで割り勘するときの、
一人分の支払額を求めてください。
なお、支払い時には、消費税を加える必要があります。
そして、この店では1円未満は四捨五入されます。
また一人分の支払額では、
10円未満は「おまけ」します。

果物
単価購入数購入人数消費税支払い総額一人分
12525145



 
注意:消費税は「*1.05」と入力するのではなく、
セルD3を参照する数式を考えてください。
504名無しさん@そうだ選挙にいこう:2005/05/18(水) 20:55:20
>>500
「5」を使えばいいってなら
=A1+INT(A1*5/100)
とか。(消費税って小数切り捨てでいいんだよね)

ユーザー定義関数だとこんな感じ。
Function hoge(buf As Currency) As Currency
 Const foo As Byte = 5 '税率(%)
 hoge = Int(buf * Round(1 + foo / 100, 3))
End Function

税率を外部参照したいとかなのかなぁ。
505490:2005/05/18(水) 20:57:39
図はこれなんですけど…


果物
単価 購入数 購入人数 消費税 支払い総額 一人分
125 25 14 5
506名無しさん@そうだ選挙にいこう:2005/05/18(水) 20:59:23
>>505
まず入門書買え。
507名無しさん@そうだ選挙にいこう:2005/05/18(水) 20:59:29
うはww 宿題かよww ジュクでも行ってろwww
508名無しさん@そうだ選挙にいこう:2005/05/18(水) 21:00:00
>>505
果物より入門書を買って来い。
509名無しさん@そうだ選挙にいこう:2005/05/18(水) 21:01:05
>>505
ここをお前の学校の宿題解決用にしようというわけですね(プゲラ
510名無しさん@そうだ選挙にいこう:2005/05/18(水) 21:09:59
あらら、リロードせずに書いたらなにやら条件が。

皆の言うように「宿題、課題は自分でやれ」ってのが筋だろうけど、
こういう厨房は教えなければ粘着してウザいだけだと思うので
簡潔に答えを書いておく。

=ROUNDDOWN(ROUND(A3*B3+A3*B3*D3/100,0)/C3,-1)

本当はもうちょっと短い式にも出きるんだけど、コレが一番基本的な解き方だと思うので。
511名無しさん@そうだ選挙にいこう:2005/05/18(水) 22:02:27
【1     O S の 種 類    】 Windows2000
【2 E x c e l の バ ー ジ ョ ン .】 Excel2003
【3   V B A が 使 え る か  】 ただ今、修行中
【6 スレのFAQとログを読んだ.】 途中まで読みました


Private Sub CommandButton1_Click()

Dim myBookname As String
Dim ReturnBook As Workbook, TargetBook As Workbook

Set ReturnBook = ActiveWorkbook
Application.ScreenUpdating = False

myBookname = Application.GetOpenFilename("(*.csv),*.csv")

If myBookname <> "False" Then
Workbooks.Open myBookname
End If

Set TargetBook = ActiveWorkbook

Application.ScreenUpdating = True

上記のマクロで、ダイアログボックスでファイルを開いて
ファイル処理しているのですが、キャンセルボタンを押すと、
マクロファイルが閉じてしまいます。
キャンセルボタンを押した場合のコードは、
どこにどう書けばいいか、
ご指導下さいませ。
512名無しさん@そうだ選挙にいこう:2005/05/18(水) 22:15:16
>>511
Else
513名無しさん@そうだ選挙にいこう:2005/05/18(水) 22:54:38
【1 OSの種類】 Windows 2000
【2 Excelのバージョン】 Excel2000
【3 VBAが使えるか】 いいえ
【4 Googleでの検索キーワード】経験分布関数 excel グラフ
【5 ヘルプでの検索キーワード】分布関数
【6 スレのFAQとログを読んだ】 はい

経験分布関数のグラフを書きたいのですが
どのグラフを使えばいいのかわかりません。
具体的なグラフの概形は
|              __________
|        ____________
|     ______
|  ______
|______________________________________
こんな感じになります。
作り方を教えていただきたいです。
514名無しさん@そうだ選挙にいこう:2005/05/18(水) 23:10:56
散布図の折れ線でつないだタイプでいけるのではないでしょうか。
515>>511:2005/05/18(水) 23:29:51
すみません、
Elseの使い方がういまいち、書けません。

If myBookname <> "False" Then
Workbooks.Open myBookname

の後に、Else ですか?
516名無しさん@そうだ選挙にいこう:2005/05/18(水) 23:37:45
>>515
yes
517名無しさん@そうだ選挙にいこう:2005/05/18(水) 23:54:53
【1     O S の 種 類    】 xp home
【2 E x c e l の バ ー ジ ョ ン .】 Excel2000 
【3   V B A が 使 え る か  】 微妙
【4 Googleでの検索キーワード】 変数の結合 vbe 
【5 ヘルプでの検索キーワード】 
【6 スレのFAQとログを読んだ.】 はい 
〜〜〜質問内容〜〜〜 
for 〜next等でテキストボックスのtextbox1を
for i = 1 to 12
if textbox & i = true then
end if
がtextbox1~12と認識してくれません
なにかいい方法はないでしょうか?
518名無しさん@そうだ選挙にいこう:2005/05/19(木) 00:00:41
Control("TextBox" & i)
519名無しさん@そうだ選挙にいこう:2005/05/19(木) 00:24:03
>>517
Controls("TextBox" & i)
520名無しさん@そうだ選挙にいこう:2005/05/19(木) 02:52:35
わけあって、Excelを英語で使いたいのですが、英語版をインストール
以外に方法はありますのでしょうか。

 メニュー、ボタンがすべて英語表示されればオッケーです。
521名無しさん@そうだ選挙にいこう:2005/05/19(木) 04:27:59
英語版をインストールするのが一番簡単で確実だと思いますよ
画面を作りたいだけだったら、VBAで自作のメニューを英語で作るしか
ないんじゃないかな。Commandbarまわりのヘルプ読んでチャレンジしてみてください。
522名無しさん@そうだ選挙にいこう:2005/05/19(木) 05:06:37
【1 OSの種類】 WindowsXP
【2 Excelのバージョン】 Excel2002
【3 VBAが使えるか】 いいえ
【4 Googleでの検索キーワード】
【5 ヘルプでの検索キーワード】
【6 スレのFAQとログを読んだ】 はい
〜〜〜質問内容〜〜〜

データの並び替えをしたいのですが、
一番上の行(項目名など)も一緒に並び替えに
組み込まれてしまいます。
一番上の行を巻き込まない並び替えはどうやるのでしょうか?
523名無しさん@そうだ選挙にいこう:2005/05/19(木) 05:36:05
>>522

メニューバーの「データ」→「並び替え」

「範囲の先頭行」のところの「タイトル行」のチェックが外れているようなら
チェック。で、いけるはず。
524名無しさん@そうだ選挙にいこう:2005/05/19(木) 05:56:10
>>523
うまくいきません…。なんでだろう
525名無しさん@そうだ選挙にいこう:2005/05/19(木) 06:35:48
それじゃ、タイトル行を除いて範囲指定(ドラッグして反転)させといて
ツールバーに(523さんの環境では出てるか解らないけど)
「AZ↓」なり、「ZA↓」ボタンでは?
526名無しさん@そうだ選挙にいこう:2005/05/19(木) 06:57:11
525の括弧内は523じゃなくて522さんの間違い。
それじゃ自分だわ。
527名無しさん@そうだ選挙にいこう:2005/05/19(木) 09:17:53
>>515
If myBookname <> "False" Then
  Workbooks.Open myBookname
else
hogehoge
end if

こんな感じで。
528名無しさん@そうだ選挙にいこう:2005/05/19(木) 10:16:29
地震?
529名無しさん@そうだ選挙にいこう:2005/05/19(木) 12:45:57
   A   B   C   D
1
2  9:00 17:30  8:30
3
4

上記のような表がありまして、何れも書式は時刻型になっております。
C2の計算式は =B2-A2 となっています。
ここでC2の結果を8.5にしたいのですが。
時間30分を0.5として出力する方法などご存知ありましたら教えてください。
530名無しさん@そうだ選挙にいこう:2005/05/19(木) 12:59:00
>>529

方法A : 関数を利用
1.A1 に時刻(例、8:30 )を入力
2.A2 に次のような数式を入力
=(DAY(A1)*24+HOUR(A1))+(MINUTE(A1)/60)
3.A2 の表示形式を標準に戻す
(自動的に日付の表示形式が設定されてしまうため)

方法B : 1時間分のシリアル値で除算
1.A1 に時刻(例、8:30 )を入力
2.A2 に次のような数式を入力
=A1/"01:00:00"
3.A2 の表示形式を標準に戻す
(自動的に日付の表示形式が設定されてしまうため)
531名無しさん@そうだ選挙にいこう:2005/05/19(木) 12:59:51
>>530
文中のA1とかA2とかは置き換えて考えてね
532名無しさん@そうだ選挙にいこう:2005/05/19(木) 13:04:20
質問です。
請求書を作成する際に消費税の項目を入れたいのですが、
自動的に税額を算出するような設定は可能ですか?
当方、excel98 (Office 98)/macOS9.1を使用しています。
よろしくお願いします。
533名無しさん@そうだ選挙にいこう:2005/05/19(木) 13:27:17
A B C
1 元金 税込 税額
2  100  105 5

の「税額」を求めたいみたいな感じですか?
もしそうなら C2に =A2*0.05 です。
んな簡単な質問じゃないかな?
(もう少し具体的に)
534名無しさん@そうだ選挙にいこう:2005/05/19(木) 13:59:56
>>529
=C2*24

そのまま(時刻表示形式)だと12:00になるだろうけど
表示形式を数値にすれば8.5になる。
時間と分を別々に処理しようとか難しく考えること無いよ。
表示指定も数式内でやりたければTEXT関数で。
535名無しさん@そうだ選挙にいこう:2005/05/19(木) 14:08:26
>>529
C2の計算式を =(B2-A2)*24 にして、表示形式を標準にする。
536532:2005/05/19(木) 14:36:02
>>533さん
ありがとうございます。
具体的に申しますと、↓のような感じです。

1, A商品 10,000
2, B商品 10,000
  ・
  ・
  ・
  ・
小計 50,000
消費税
合計 52,500

という風に、商品の金額を打ち込めば、
消費税の税額も自動的に計算してくれるように設定したいのです。
例えば、小計や合計は「Σ」を設定しておくことによって自動的に計算してくれますよね。
それと同じようにしたいのです。

ところで「A2*0.05」とはどういう事でしょうか?
A(横軸)の2(縦軸)で、0.05(5%)というのはわかるのですが、
これをどうすればよいのかがわかりません。
初歩的な質問で申し訳ないです。

以上、引き続きよろしくお願いします。
537532:2005/05/19(木) 14:38:11
>>536
すみません、上記の表の消費税額を入力し忘れました。
失礼しました。
538名無しさん@そうだ選挙にいこう:2005/05/19(木) 14:48:46
初歩的以前だな。
単純に数式の使い方が分かってないだけじゃん。

とりあえず「小計」の行が10で数値が入ってる列がB列なら
消費税の右となりのセルに「=INT(B10*0.05)」って入れとけ。
539532:2005/05/19(木) 15:11:50
>>538さん
ありがとうございました!
大変よくわかりました。

ただ、最後に一つだけ質問させて頂きたいのですが、
消費税が算出されると金額が非常に細かくなるので、
「小数点以下は表示しない」という設定に致しました。
すると、税額の表示が右詰めではなくなってしまいました。
右から一桁分だけ左に寄ってしまったのです。
これを直すにはどのようにしたらよいのでしょうか?
540名無しさん@そうだ選挙にいこう:2005/05/19(木) 15:12:29
>>536>>537
538さんの書かれているとおりですね。
「消費税」の行が10行目(A10)としての話しです

ちなみに「Σ」をクリックすると =SUM(......) とか入りますよね。
今回のは、それを手で入力して下さいと言うことです。
541名無しさん@そうだ選挙にいこう:2005/05/19(木) 15:15:37
>>539
被りました、失礼

書式設定で 分類を「通貨」 小数点以下の桁数を「0」
にしてみたらどうですか?(金額のセル全部)
542532:2005/05/19(木) 15:21:41
>>541さん
修正できました。

>>ちなみに「Σ」をクリックすると =SUM(......) とか入りますよね。

今まで↑が何なのか疑問でしたが、今回ようやく意味がわかりました。
皆さんお忙しい中、本当にありがとうございました。
543名無しさん@そうだ選挙にいこう:2005/05/19(木) 16:42:13
>>505>>510の人に対して礼とかしないのか?

こういう厨って自分の問題解決の為には、いくらでもスレを消費するけど、礼の一つもしやがらねぇんだよな。(>O<)カァーッ ( -.-)ペッ
544名無しさん@そうだ選挙にいこう:2005/05/19(木) 17:33:43
っていうか、そんな奴に答えるなよ。
545名無しさん@そうだ選挙にいこう:2005/05/19(木) 20:36:23
てか、こいつ電卓すら使えないやつなんだろうな w
生活していけるんだろうか、、、
546名無しさん@そうだ選挙にいこう:2005/05/19(木) 21:19:34
>金額が非常に細かくなるので、
>「小数点以下は表示しない」という設定に致しました。

消費税の小数点以下をどうするかって結構面倒だと思うんだけど…
切り捨てるか、四捨五入するかとかまちまちだし。
もしレジ使ってるならそれにあわせたほうが良くないか?
ただ表示しないだけにしとくと、最終的な合計(レジでいうところのグランドトータル)を出したときに
差が出てくるし。まあ本人がいいならそれでいいんだろうけどさ。

547名無しさん@そうだ選挙にいこう:2005/05/19(木) 22:24:18
>>546
round関数・・・って言っても、
ご本人はsum関数すら理解していなかったみたいですからねぇ
>>532さんは500円のでもいいから何か一冊参考書買ったほうが
ご自身の為にはいいかもしれませんね。

>>543
まぁまぁ。こういう人は、理解しようとせず、単にその問題に答える
だけできればOK→いつまでたっても知識として蓄積されない→結
局せっかく学んでもそれを活かす事のできないかわいそうな人で
すから、腹を立てるよりも憐憫の情で接してあげましょう。
548名無しさん@そうだ選挙にいこう:2005/05/19(木) 22:55:04
つうか、金額計算では必ずround()使え。
見積もりでroundも使わず表示された数字と合計が合わないという
馬鹿なことがよくあるんだよな。
roundつかってね。round知ってるよね?−「はい、しっています」
といわれて、それが何度も裏切られることがあったよ。
549名無しさん@そうだ選挙にいこう:2005/05/19(木) 23:30:54
【 OSの種類】 Windows2000
【 Excelのバージョン】 Excel2003
【 VBAが使えるか】 それなりに
【 スレのFAQとログを読んだ】 一応一通り検索かけました

分析ツールとVBAを使わずに、標準で使える関数のみで16進数→10進数、10進数→16進数をやりたいのですが
どういった手順の式を書けば良いのでしょうか?
分析ツールが使えればそれ用の関数があるのですが、ナシでやることになったので・・・・・。
よろしくお願いいたします。
550代理:2005/05/20(金) 00:33:06
なんか無茶苦茶言ってるな
解が用意されてるのに使うなって

つか関数書いたって1行だろ
そんなのプログラムですらないよ
551名無しさん@そうだ選挙にいこう:2005/05/20(金) 00:46:58
また宿題なんだろうよ。n進数の計算方法かなんか教えてもらってんじゃない?
情報処理系の参考書を自分で探して読みなされ。
552名無しさん@そうだ選挙にいこう:2005/05/20(金) 01:07:00
暖かくなると変なのが湧くねぇ
549みたいのは以後放置で
553名無しさん@そうだ選挙にいこう:2005/05/20(金) 02:26:00
【1     O S の 種 類    】 Windows2000
【2 E x c e l の バ ー ジ ョ ン .】 Excel2000
【3   V B A が 使 え る か  】 ある程度
【4 Googleでの検索キーワード】 excel 計算されない
【5 ヘルプでの検索キーワード】
【6 スレのFAQとログを読んだ.】 ある程度

大き目のファイルをいじっていると、ごくたまに計算されない
数式ができます。
再計算はおわります。
空白セルに適当な数字入れる等しても変わりません。
同じルールの数式をコピーしてはりつけると計算されます。
自動計算はオンになってます。
回避可能でしょうか?
554553:2005/05/20(金) 02:32:55
すいません、補足です。
「計算されない」ではなく「再計算されない」です。
参照元の数値を変えても参照先の数式の値が変化しないです。
参照元と参照先はシートまたぎです。ブックまたぎは
してないです。
よろしくお願いいたします。
555名無しさん@そうだ選挙にいこう:2005/05/20(金) 09:45:07
__│____A_________B____C____D_____E_____F_____G
1│入力値___________ km
2│
3│距離(km)__0.3___0.5___1.0___1.5__2.0__3.0
4│日数(日)_0.6___0.7___0.8___0.9__1.0__1.2

B1に距離を入力し、表上段の数値以下なら下段の数値を返すようにしたいので
例) 0.6km→0.8日、1.5km→0.9日、1.8km→1.0日

=HLOOKUP(B1,B3:G4,2)

という式を組んだのですが、
0.6km→0.7日、1.5km→0.9日、1.8km→0.9日という結果になってしまいます。
どこが間違っているのか教えてください。
556555:2005/05/20(金) 10:09:59
追記

省略しましたが表の項目は8個以上あるので
IF関数ではできません。
557名無しさん@そうだ選挙にいこう:2005/05/20(金) 10:26:33
質問よろしいでしょうか。
Excelのハイパーリンクでは、○○.xlsファイルの『どのタブ』というところまでは指定できないのでしょうか。
なんかできそうな気がするんですけど、なかなか見つかりません。どなたかご存知でしたらお願いします。
秘密兵器とか言ってExcelVBA完全制覇買ったけど役に立ってないよ〜〜
558名無しさん@そうだ選挙にいこう:2005/05/20(金) 10:34:14
>>555-556
間違ってるというかHLOOKUPの仕様がわかってないだけ。
HLOOKUPの場合「表上段の数値"以下"なら」ではなく
「表上段の数値"以上"なら」ってのが仕様。

表現的には表の値ではなく検索値を基準にするので
「検索値未満で最も大きい値」となるわけだが、(実際には未満じゃなくて以下みたいだね)
 0.6:検索値0.6以下→0.3、0.5 /  最も大きい値→0.5 / その2行目→0.7
 1.5:検索値1.5以下→0.3、0.5、1.0、1.5 /  最も大きい値→1.5 / その2行目→0.9
 1.8:検索値1.8以下→0.3、0.5、1.0、1.5 /  最も大きい値→1.5 / その2行目→0.9
というのが仕様。なので距離の方を
 0.3, 0.5, 1.0, 1.5, 2.0, 3.0
   ↓
 0.0, 0.31, 0.51, 1.01, 1.51, 2.01
と直せば望み通りになると思うよ。

表をそのまま使いたいならそれこそIF関数使うしか無いかな。
たとえばこんな感じで。(↓の式を入れてCtrl + Shift + Enterで確定、式が{ }で囲われればOK)
=MIN(IF(B1<=B3:G3,B4:G4))
559555:2005/05/20(金) 10:51:56
>>558様、ありがとうございました。

HLOOKUPの仕組みと対処法、理解できました。

で、下の {MIN(IF…}の式ですが、
最初の表(距離0.3〜3.0)ではうまくいったんですが
項目を12個に増やしたらエラーが出ました。

IF関数だから8個までしかダメなんですか?
項目を増やすにはどうしたらよいでしょう。

よろしくお願いします。

560名無しさん@そうだ選挙にいこう:2005/05/20(金) 11:04:54
>>558様。追加で質問です。


> 0.6:検索値0.6以下→0.3、0.5 /  最も大きい値→0.5 / その2行目→0.7
> 1.5:検索値1.5以下→0.3、0.5、1.0、1.5 /  最も大きい値→1.5 / その2行目→0.9
> 1.8:検索値1.8以下→0.3、0.5、1.0、1.5 /  最も大きい値→1.5 / その2行目→0.9
> というのが仕様。なので距離の方を
> 0.3, 0.5, 1.0, 1.5, 2.0, 3.0
>   ↓
> 0.0, 0.31, 0.51, 1.01, 1.51, 2.01
> と直せば望み通りになると思うよ。

との事ですが、この場合

0.6:検索値0.6以下→0.31、0.51 /  最も大きい値→0.51 / その2行目→0.7
1.5:検索値1.5以下→0.31、0.51、1.01 /  最も大きい値→1.01 / その2行目→0.8
1.8:検索値1.8以下→0.31、0.51、1.01、1.51 /  最も大きい値→1.51 / その2行目→0.9

となってしまいます。

正解は
0.6km→0.8日、1.5km→0.9日、1.8km→1.0日
なんですよね。

何度もすいませんがよろしくお願いします。
561名無しさん@そうだ選挙にいこう:2005/05/20(金) 11:10:43
>>559
いや、いくらでもいけると思うよ。
配列式組んでるだけで、IF関数は1段しか使ってないから。
もしかして参照範囲書き換えてないとか
参照範囲書き換えた後、Ctrl + Shiftを押さずに確定したとかは無いよね?
距離を日数の表がB3:M14までの12項目なら
=MIN(IF(B1<=B3:M3,B4:M4)) でCtrl + Shift + Enter
でいけると思うけど。
それでもダメならちょっとわからんがエラー内容でも書いてくれれば糸口が見つかるかも。

>>560
頭に0.0入ってるの見えない?
書き換えは0.5→0.51ではなく0.5→0.31だよ。

>>557
シート名(タブ名)だけの参照は出来ないと思う。
やるならセルまで指定して
○○.xls#シート名!セルアドレス
って感じで。
562名無しさん@そうだ選挙にいこう:2005/05/20(金) 11:32:16
>>561

うわ、はやっ!ありがとうございます。

というか、こんなに簡単にできたんですね。なんでひっかからないかなあ。。。情報の氾濫?
奔流にのみこまれてちっとも狙った岸にとりつくこともできなかったです。助かりました。
ありがとうございましたー m(..)mペコリ♪(^^)/~~~
563555:2005/05/20(金) 11:38:47
>>561

ありがとうございました。
559、560両方とも解決できました。

560は0.0を無視してました。
一つずらすんですね。

559は恥ずかしながらご指摘の通り「Ctrl+Shift+Enter」をしてなくて…。
で、今日初めて見たのですが、「Ctrl+Shift+Enter」って
どういう意味があるのですか?
564名無しさん@そうだ選挙にいこう:2005/05/20(金) 11:54:42
>>563
まあ、配列式に慣れていても偶にやらかす凡ミスではあるな。
で、「Ctrl+Shift+Enter」は数式を配列式として解釈させる為のもの。
そして配列式として解釈されてる式は目印として{ }で囲われる。

配列式が如何なるものかはここじゃ説明しきれないので、
興味があるなら「Excel 配列数式」とかでググるかヘルプでも見れ。
565名無しさん@そうだ選挙にいこう:2005/05/20(金) 15:19:52
下記の実行前に「選択されている行があれば」という条件をいれたいんですが
書き方がわからないです〜

If MsgBox("このデータを削除しますか?", vbYesNo + vbDefaultButton2) = vbYes Then
Sheet10.Protect , userinterfaceonly:=True
Selection.Rows.Delete
End If
566名無しさん@そうだ選挙にいこう:2005/05/20(金) 15:35:26
あんまり上手い方法じゃないけど
If Selection(Selection.Count).Column - Selection.Column = 255 Then
とか
If IsNumeric(Replace(Selection.Address(0, 0), ":", "")) Then
とか。
567名無しさん@そうだ選挙にいこう:2005/05/20(金) 15:49:44
>566
ありがとうございます〜
568名無しさん@そうだ選挙にいこう:2005/05/20(金) 18:23:46
隣り合う2つの列に分けて入力された文字列のリストがあります。

AAA | BBB
CCC | DDD
・・・

例えば↑の例で、”AAAとBBBがある行の位置”を取得するための
簡単な方法はあるのでしょうか?
まずAAAを探してその隣にBBBがあるかないか・・・というような
ループと条件判断で組む方法は思い付きますが、そうではない方法を
ご存知の方、ご教授ください。
569名無しさん@そうだ選挙にいこう:2005/05/20(金) 18:48:06
また宿題か?

というか、VBAでやりたいのかワークシート関数でやりたいのかも
はっきりしないし、(ループと言ってるあたりから、VBAかなとも思うが)
位置ってのが行番号なのかアドレスなにかもわからないし、
取得したものをどうすればいいのかもわからないし
条件に一致するものが複数あった場合にどうすればいいのかもわからない。

VBA使って良いなら方法なんていくつもあるけど
条件がはっきりしなければ何も教えられない。
570名無しさん@そうだ選挙にいこう:2005/05/20(金) 19:18:10
>>569
VBAで行番号を得る方法です。
文字列に重複はありません。

解決に使えるキーワードだけでも良いです。
571名無しさん@そうだ選挙にいこう:2005/05/20(金) 19:33:19
何故ループがダメなのか気になるなぁ
マクロのメリットとして同じ処理の繰り返し(ループ)が
手動でやるより遙かに高速ってのがあるんだけど。
つまりループはマクロの要ってこと。
572名無しさん@そうだ選挙にいこう:2005/05/20(金) 19:42:17
>>570
今現在どういう処理してるのか書いてみそ
573名無しさん@そうだ選挙にいこう:2005/05/20(金) 19:45:04
>>571
ただ目的が果たせれば良いということなら、質問する必要も無いんですよ。

AAAを下方検索して、右のセル値がBBBでなければ再検索、BBBなら1つ確定。
これでは1回の検索自体にループが必要になりますが、自分の今の作業では
数万回の検索を行います。

2列に並んだ文字列の行位置を1度の処理で求められれば、多重ループを1つ解いて
処理を早く終わらせることができるので、質問をしています。
574名無しさん@そうだ選挙にいこう:2005/05/20(金) 20:06:44
>>572 まずはソース

  Dim lDataBottom As Long
  lDataBottom = Cells(65536, 2).End(xlUp).row
  
  Dim lDataNum As Long
  lDataNum = lDataBottom - 1
  
  Dim lDeleteCount As Long
  lDeleteCount = 0
  
  Dim findResult As Variant
  Dim strKeyLeft As String
  Dim strKeyRight As String
  Dim lStrGetRow As Long
  lStrGetRow = 2
  
575名無しさん@そうだ選挙にいこう:2005/05/20(金) 20:06:59
  Do While lDeleteCount <= lDataNum / 2
  
    strKeyLeft = Cells(lStrGetRow, 2).Value
    strKeyRight = Cells(lStrGetRow, 3).Value
  
    Set findResult = Range( _
      Cells(lStrGetRow + 1, 2), _
      Cells(lDataBottom, 2) _
    ).Find(strKeyRight, LookAt:=xlWhole)
    
    If findResult Is Nothing Then
      lStrGetRow = lStrGetRow + 1
    Else
      If Cells(findResult.row, 3).Value = strKeyLeft Then
        Cells(findResult.row, 1).EntireRow.Delete
        lDeleteCount = lDeleteCount + 1
      Else
        lStrGetRow = lStrGetRow + 1
      End If
    End If
  
  Loop
576名無しさん@そうだ選挙にいこう:2005/05/20(金) 20:11:44
2行目以降の、2列目と3列目に

DDD  CCC
AAA  BBB
CCC  DDD
BBB  AAA
EEE  FFF
FFF  EEE

というようなデータがあります。
この例でもそうですが、"AAA BBB"と”BBB AAA"のように
順序が入れ替わったペアがこのデータを構成しています。
データ順序に規則性はありません。

このデータはペアのうち一方だけあれば良いので、ペアの他方を
削除してしまう処理が必要で、今のやり方が↑に示すようなVBAコードです。

577名無しさん@そうだ選挙にいこう:2005/05/20(金) 20:16:48
>>572で書いてみそ、と言われてから書いてみましたが、この処理自体は
1重ループで済む話でしたね。それでも片方の列だけでキーワードを検索し、
見つかれば右隣の文字列を見てみるという流れは変わりません・・・
578名無しさん@そうだ選挙にいこう:2005/05/20(金) 20:19:31
>>577
C列にA列とB列を結合した文字列入れとけば?
579名無しさん@そうだ選挙にいこう:2005/05/20(金) 20:20:30
・・・多重ループという前提が単なる勘違いだったので、2文字列を
1度に検索できたからといって速度が大きく変わる気はしなくなりました。
>>568 〜の質問はスルーしてくださいorz
580名無しさん@そうだ選挙にいこう:2005/05/20(金) 22:08:32
>>579
つうか、そもそも今書いているコードでは目的が達成できませんが w
581名無しさん@そうだ選挙にいこう:2005/05/20(金) 22:15:16
>>579
つうか、やはり多重ループしないとだめでしょ。
で、
BBB|CCC は BBBCCC
CCC|BBB は BBBCCC(BBBとCCCを比較して並べ替え)
をしてから同一データチェックをしたらどうですか?

データの取得はいちいちセルから一回一回読み出すのではなく
Dim r
r=range(データ範囲)
としてデータを一気に配列として読み込んで、必要なデータだけを
残して、r1という配列に格納(rの次元を減らしてもいいが)
そして、もとのデータを削除の上、r1の配列を貼り付ければ、
求めるデータがセルに書き込まれる。

高速化はアルゴリズム以上に、配列格納して処理するほうが
早くなったと思いますよ。
582名無しさん@そうだ選挙にいこう
>>581
よく考えたら、並べ替えるより素直にそのまま比較と入れ替えた
ものを比較したほうが早い気がしてきた(つうか差はなさそう)