Excel総合相談所 82

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

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

▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に>>2-20あたりの注意書きやQ&Aを必ず読むこと。
★4 質問テンプレ(雛形)は必須じゃないけど、
   OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。

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

※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
  VBAを使うのは避けたいって場合は「否」にしましょう。丸投げする場合は、必要に応じてブックをアップすること。

※【5】は、あなたがGoogleやヘルプで検索した際に使ったキーワードを書いてください。
  まだ検索してないなら、質問の前にGoogleやヘルプで検索してみてください。
  ttp://www.google.co.jp/

前スレ
Excel総合相談所 81
http://pc11.2ch.net/test/read.cgi/bsoft/1239169475/
2名無しさん@そうだ選挙にいこう:2009/05/09(土) 08:25:23
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F)
・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意
・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。
・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。
・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。
  ここは技術的な質問のみで。
・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ないことも出来ます。
  Excelの操作に関係ない部分は、スレ違いなのでここで聞かずにVB言語やAPI、COMについて自分で勉強し、
  どうしてもわからない部分はVBスレやAPIスレなどの該当スレで質問しましょう。
  但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。
  ここみたいに丸投げはダメですよ。
・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。
  例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。
  その上で、どううまくいかないのかを具体的に書きましょう。
  エラーが出るなら、何処でどういうエラーが出るのか、
  想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。
・9 マルチはダメ。一度マルチしたら、謝っても他のスレの質問を取り下げても回答は得られないと思ってください。
・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、
  チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、
  ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。
・B 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。
3名無しさん@そうだ選挙にいこう:2009/05/09(土) 08:26:41

★ルールを無視すると…
 >>1-2あたりのルールに従うか否かは自由だけど、従わないと以下のような不利益があるよ

 ★1.マルチをしてしまったら…
 A.謝っても他での質問を取り下げても、以後その質問に対する回答は付かない物と思ってください。
   それが嫌なら初めからマルチなんてしないように。>>2にマルチ禁止と書いてあり、
   マルチの意味が分からなければ検索すれば出てくるので、「知らなかった」は通用しません。

 ★2.>>1★4に従わず、必要な情報を出さないと…
 A.自分の使用しているバージョンで使えない機能を答えられたり、VBA使えないとか使いたくないと書かないと
   VBAでの解決OKで自分でコード書けるものと勝手に解釈されて、「VBAで出来るから自分でコード書いて」程度の
   適当な回答を返されたりします。また、ここではVBAコード書けない人の丸投げ依頼を許可してますが
   これはきちんとルールに従って質問、依頼した人のみの特権です。

 ★3.情報・条件を後出しすると…
 A.後から出された情報は意図的に無視されたり、質問自体を放置されたりします。
   >>1★4の必須情報はもちろんのこと、要望や条件、既に試したことなどは、
   長文になってもいいので詳細かつ明確かつ具体的に書きましょう。


★VBAについて
 VBAとは、『Visual Basic for Application』の略で
  Application
  ├Workbooks
  |└Workbook
  |  ├Worksheets
  |  |└Worksheet
 というApplication以下のオブジェクトを、VB言語で操作するものを指します。 
 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。
4名無しさん@そうだ選挙にいこう:2009/05/09(土) 08:27:43

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

 ▼環境・書式
  ・ 列数を256列以上、行数を65'536行以上に増やす (Excel2007では16'384列、1'048'579行扱える)
  ・ Excel2003以前で条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA)
  ・ 行の高さを0.25きざみ以下の単位で指定する
  ・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト)
  ・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける)
  ・ 祝日を判断する (作業セルに祝日を列挙、VBA)
  ・ 同一列内でセル(行)ごとに列幅を変える、同一行内でセル(列)ごとに列高を変える (セルの結合)
  ・ ヘッダー・フッターのページ番号の開始番号任意指定、ページ番号演算、同シート内で違ったものを指定など
  ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
  ・ 罫線幅の自由指定
  ・ 表示形式で「10/ 1」といった書式を指定し、日付が一桁の場合のみ日付の前にスペースを入れる (TEXT関数、VBA)
  ・ 書式設定の「折り返して全体を表示する」と「縮小して全体を表示する」を同時に使う (折り返しを有効にして、手動で文字サイズを調整)

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

5名無しさん@そうだ選挙にいこう:2009/05/09(土) 08:28:37

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

 ▼数式・関数
  ・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数)
  ・ 関数式でセルの選択状態を取得する (VBA)
  ・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA)
  ・ 入力したセルに結果を返す (VBA)
  ・ 範囲を引数にしての文字列連結 (ユーザー定義関数)
  ・ 値の書き換え、値の保持 (VBA)
  ・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む)
  ・ 空白のセルの部分を上詰め、左詰めなどで表示する (作業セルを使って別セルに詰めて表示なら可能、それ以外はVBA)
  ・ VLOOKUP,HLOOKUP,MATCH等の関数で、検索語を全半角両方にマッチさせる (ユーザー定義関数)

 ▼VBA
  ・ ExecuteExcel4Macroの参照で空セルと0値を区別する
  ・ セルの値や変数値で直接変数名を指定する (配列、コレクション)
  ・ VBのコントロール配列と同じような操作をしたい
   (イベント以外ならコントロール名を「同名+連番」にしてControls(名前 & インデックス)で処理、イベントはクラスでWithEvents)

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

 ▼グラフ
  ・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる
   (オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入)
  ┌┐
  〜〜
  ||
6名無しさん@そうだ選挙にいこう:2009/05/09(土) 08:29:30

上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。
間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。
Excel2007についても未確認な項目が多いので変更点が有ればご指摘下さい。

また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。
ここに書かれてないからといって必ず出来るはずだなんて思わないように。

>▼環境・書式
> ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
補足
2007ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、
指定も同じくcm単位でできる。
ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように
近い値に勝手に丸められる。
7名無しさん@そうだ選挙にいこう:2009/05/09(土) 17:44:30
1乙
前スレ1000ファインプレイ乙
8名無しさん@そうだ選挙にいこう:2009/05/09(土) 18:13:14
Office2003を使用ています
vlookup関数で”シチズンホールディングス”が返ってきたとすると
頭から5文字の表示”シチズンホ”までを表示したいと思っております
xxxxx(vlookup(,,,), xxxx)みたいなかんじで何かいい関数ないでしょうか?
9名無しさん@そうだ選挙にいこう:2009/05/09(土) 18:19:27
>>8
LEFT
10名無しさん@そうだ選挙にいこう:2009/05/09(土) 18:37:45
XP、Excel2000使用です。
100%積み上げ横棒グラフにて縦軸1月と2月とし、それぞれの月で複数項目の増減がどれくらいかを
見られるように作成しました。
ですが、縦軸はグラフ上下の端に1月2月と入っていますが、横棒グラフが上端と上下端の中間にきており
2月のグラフがずれていて見づらいのです。これを下端にもって行きたいのですが、
どのようにすればいいのでしょうか。
よろしくお願いします。
11名無しさん@そうだ選挙にいこう:2009/05/09(土) 19:42:28
たとえばA1のセルに
「あああ、いいい、ううう、えええ」の場合カウント4
「ははは」の場合カウント1
空白の場合カウント0
みたいにB1に出したいのですが
Findを使ったりいろいろ試しているのですが
どうしてもうまくいきません
何か良い方法とかありますでしょうか?
12名無しさん@そうだ選挙にいこう:2009/05/09(土) 19:53:38
>>11
文字は「、」で区切られてるとして「、」の数を数えてみた。
=IF(ISBLANK(A1)=TRUE,0,LEN(A1)-LEN(SUBSTITUTE(A1,"、",""))+1)
空白なら0、そうでなければ「、」の数+1
13名無しさん@そうだ選挙にいこう:2009/05/09(土) 21:13:51
>>12
前半の「=TRUE」は余分だな
14名無しさん@そうだ選挙にいこう:2009/05/09(土) 21:24:36
>>13
そうだった。ifの真だから
=IF(ISBLANK(A1),0,LEN(A1)-LEN(SUBSTITUTE(A1,"、",""))+1)
でOKだね。
15名無しさん@そうだ選挙にいこう:2009/05/09(土) 21:30:30
意味のない短縮
=(A1>"")*(LEN(A1)-LEN(SUBSTITUTE(A1,"、",))+1)
16名無しさん@そうだ選挙にいこう:2009/05/09(土) 21:30:37
>>1
17名無しさん@そうだ選挙にいこう:2009/05/09(土) 21:35:18
>>15
それならこっちの方がよくない?
=(A1>"")+(LEN(A1)-LEN(SUBSTITUTE(A1,"、",)))
18名無しさん@そうだ選挙にいこう:2009/05/09(土) 21:37:20
19名無しさん@そうだ選挙にいこう:2009/05/09(土) 21:39:01
>>17
それなら後半の式をくくるカッコも不要だな
=(A1>"")+LEN(A1)-LEN(SUBSTITUTE(A1,"、",))
20名無しさん@そうだ選挙にいこう:2009/05/09(土) 21:40:58
>>19
スッキリしていいね。
21名無しさん@そうだ選挙にいこう:2009/05/09(土) 21:43:39
ISBLANKで判定しないとA列のデータが数値だったときにおかしくなるぞ
「1、2」ならちゃんと2になるけど「1」だと0になってしまう。
22名無しさん@そうだ選挙にいこう:2009/05/09(土) 21:44:39
>>21
じゃあこれなら文句ないだろ
=(A1<>"")+LEN(A1)-LEN(SUBSTITUTE(A1,"、",))
23名無しさん@そうだ選挙にいこう:2009/05/09(土) 21:46:20
なるほど
24名無しさん@そうだ選挙にいこう:2009/05/10(日) 00:31:13
>>10
今どういう状況になってて、どうしたいのかがいまひとつ理解できない。
もし良かったら、ブックをうpかグラフの画像うpかどちらかしてみてくれないか?
25名無しさん@そうだ選挙にいこう:2009/05/10(日) 17:33:03
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 まったくの初心者
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 リスト 削除

ユーザーフォームを設置しています。
このユーザーフォーム上の削除ボタンをクリックすることによって元のデータを削除したいんです。

ユーザーフォームの元の情報はSheet3のB2〜G2、B3〜G3、B4〜G4などに行ごとにならんでおり、このSheet3のBなんとかからGなんとかの情報を削除するようにしたいのです。
ちなみにSheet3のA列には番号が振ってあり、この番号自体は削除したくありません。
BからGまでの情報を行ごとに削除したら、上に詰めるようにしたいです。

ちなみにユーザーフォームへの出力は少々ややこしく、Sheet1上にリストボックスをつくりSheet3から転載してリスト内容を表示、
Sheet1のC19に選択したリスト番号(A列の番号)を出力、VLOOKUP関数でSheet1のAA19〜AE19に選択した情報を表示するようにしてます。(なおAA19にはSheet3A列の番号)
さらにユーザーフォームを開いた際にSheet1のAA19〜AG19までのデータをSheet2のA3〜G3にコピーして、そこからユーザーフォームの内容を表示するようにしています。
ユーザーフォームの内容を書き換えて編集ボタンを押す際にSheet2を編集した情報を、たとえばSheet2のA3の値が5であったとすると、Sheet3のB5〜G5の値を上書きするようにしています。

いったんSheet2のB3〜G3を空白にしてSheet3のBなんとか〜Gなんとかを空白で上書きして上に詰めたほうがいいのか、直接Sheet3の指定行を削除して上に詰めたほうがいいのかはわかりませんが、可能な方法でやりたいと思います。
ただ、Sheet2のA列には情報の番号があるんですが、ユーザーフォームには情報の番号を出力していませんので前者のほうが簡単かとは思います。

少々わかりにくかったかもしれませんが、何卒よろしくお願いいたします。
26名無しさん@そうだ選挙にいこう:2009/05/10(日) 18:16:55
>>25
数が合わないよ。AEじゃなくてAFじゃないの?
27名無しさん@そうだ選挙にいこう:2009/05/10(日) 18:20:37
>>25
たとえばVBAで3行目のデータを削除してそれ以降を上に詰めるってのはこれ1行だけでできる
Range("B3:G3").Delete Shift:=xlUp
28名無しさん@そうだ選挙にいこう:2009/05/10(日) 18:52:39
すいません、返事遅れました。

>>26
ごめんなさいAGでした。申し訳ありません。
なぜかというと、AA19は、Sheet3のA列の番号がはいっているんです。
Sheet3には正確に言うとAからGまではいっているんですが、削除するのがBからGということです。

>>27
ありがとうございます。
3行目と行数が決まっているわけではなく、リストから選択した行数を削除したいんですね。
その場合はどうすればよろしいでしょうか?

>>
2925:2009/05/10(日) 19:10:12
まえにこちらで教えていただいて、Sheet2の内容をSheet3へ上書きするには下記のようにしています。
要するにこれを空欄で上書きできればそれが一番いいのですが・・・
ただしA列以外を空欄で上書きという風にできれば。

Private Sub Command2_Click()
g = Sheets("Sheet3").Range("A65536").End(xlUp).Row
a = Sheets("Sheet2").Range("a3").Value
Sheets("Sheet3").Select

For i = 1 To g
If Cells(i, 1).Value = a Then
Range("b" & i).Value = Sheets("Sheet2").Range("b3").Value
Range("c" & i).Value = Sheets("Sheet2").Range("c3").Value
Range("d" & i).Value = Sheets("Sheet2").Range("d3").Value
Range("e" & i).Value = Sheets("Sheet2").Range("e3").Value
Range("f" & i).Value = Sheets("Sheet2").Range("f3").Value
Range("g" & i).Value = Sheets("Sheet2").Range("g3").Value
End
End If
Next
MsgBox "管理番号なし"
End Sub

すいません。どなたか助けてください。ぜひよろしくお願いします。
3025:2009/05/10(日) 19:18:59

こういうのを後出しっていうんですね…
申し訳ありません。。。
整理できてませんでした。
31名無しさん@そうだ選挙にいこう:2009/05/10(日) 20:24:12
>>28
削除したい行の番号が変数DelRに入ってるとして
Range("B" & DelR & ":G" & DelR).Delete Shift:=xlUp

いちいち聞いてたんじゃなかなか進まないでしょ
どこを修正したらいいのかよく見て、これぐらい自分で応用できるようになろうよ
3225:2009/05/10(日) 20:38:22
>>31
ありがとうございました!!できました!

DelR = Range("Sheet2!A3").Value
Sheets("Sheet3").Range("B" & DelR & ":G" & DelR).Delete Shift:=xlUp


ですね!!
たすかりました。
変数の応用、できるようになりたいです!
がんばります。
33名無しさん@そうだ選挙にいこう:2009/05/10(日) 21:23:30
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】Excel イコール無し 四則演算

あるブックの他の人が作ったシートのデータ入力欄で キーボード入力する際に
1+2+3[Enter]
といった具合に入力すると、自動で「=」が付加されて、セルの数式の部分には
=1+2+3  
セル自体には 6 と表示されるのですが、
新しく作ったシートで同じように入力しても、セルの数式の部分とセル自体には
1+2+3 としか表示されません。
自動で=を付加させて、セル自体には計算結果を表示させたいのですが、どうすればいいのでしょうか。
34名無しさん@そうだ選挙にいこう:2009/05/10(日) 21:42:20
>>33
他の人が作ったシートにはマクロが設定されてるんじゃないのかな。
= を使いたくないなら + を使うか
その人が作ったシートをコピーして使うとか。
35名無しさん@そうだ選挙にいこう:2009/05/10(日) 23:29:57
>33
とりあえずなら、
そのブックに新しいシート追加して、それ以外のシート削除して、
名前をつけて保存、でテンプレートとして保存するといいよ。
そっから先は↓読んで
ttp://office.microsoft.com/ja-jp/excel/HP051995961041.aspx
36名無しさん@そうだ選挙にいこう:2009/05/11(月) 00:12:12
>>33
セルの設定を"="##### でオケ
37名無しさん@そうだ選挙にいこう:2009/05/11(月) 00:19:56
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 否
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 ユーザーフォーム 空欄 0

ユーザーフォームで参照セルが空欄の場合0が表示されてしまいます。
これを表示しないようにしたいのですが。
よろしくお願いします。
38名無しさん@そうだ選挙にいこう:2009/05/11(月) 00:30:22
>>37 " "
3937:2009/05/11(月) 01:06:00
>>38
ありがとうございます。

すみません。大変恥ずかしいのですが、どうしてもわかりません。
" "を参照元の書式設定してみましたがだめでした。
それとテキストボックスのコントロールソースも" "で囲おうとしましたが入力できませんでした。
他に思いつきません…
どうか教えてください。お願いします。
40名無しさん@そうだ選挙にいこう:2009/05/11(月) 04:23:44
>>37
ユーザーフォームの何に何を表示させてるの?
テキストボックス?
41名無しさん@そうだ選挙にいこう:2009/05/11(月) 04:36:39
>>37
その参照してるセルにはどんな数式が入ってる?
42名無しさん@そうだ選挙にいこう:2009/05/11(月) 05:24:31
>>35
>>33で「新しく作ったシートでは表示されない」となってるから
Worksheet_Changeに何か入ってそう。
もしそうならシート追加だとWorksheet_Change部分はコピーされないから
シートコピーがいいと思う。
43名無しさん@そうだ選挙にいこう:2009/05/11(月) 06:39:01
>>39
空白セルにスペースを入れろと言うことだろ。
44名無しさん@そうだ選挙にいこう:2009/05/11(月) 06:48:51
再現しねえ。
普通に
TextBox1.ControlSource = "A1"
ってやっただけなら、セルが空白ならテキストボックスもそのまま空白になんだけど。
4537:2009/05/11(月) 10:43:15
>>40>>41
ユーザーフォームのテキストボックスに、Sheet2のA1からX1の値を表示させています。
セルには数式は入っていません。しかし、マクロでSheet1のA1からF1の値を表示させています。

Sub ユーザーフォーム2起動()
Range("Sheet2!A1:Sheet2!F1").Value = Range("Sheet1!A1:Sheet1!F1").Value
UserForm2.Show
End Sub

ただ、Sheet1のA1には
=IF(Sheet1!$C$19="","",VLOOKUP(TOP!$C$19,Sheet3!$A$1:Sheet3!$F$65536,1,0))
という数式が入っています。

>>43
空白セルにスペースをいれてみましたが、空白が入りません…
というのがユーザーウォームを立ち上げた瞬間にSheet1のセルA1からF1の値を反映するようにしています。


>>44
ControlSource に Sheet2!A1 と入れています。
"Sheet2!A1"といれようかと試みましたがだめでした。
「ControlSourceプロパティーを設定できません。プロパティーの値が無効です。」
とエラーになります。

4637=45:2009/05/11(月) 10:46:26
すいません。

ユーザーフォームのテキストボックスに、Sheet2のA1からF1の値を表示させています。

の間違いです。。
4737=45:2009/05/11(月) 10:50:50
これも間違いです。何度もすいません。

ただ、Sheet1のA1には

=IF(Sheet1!$C$19="","",VLOOKUP(Sheet1!$C$19,Sheet3!$A$1:Sheet3!$F$65536,1,0))

という数式が入っています。

でした。
48名無しさん@そうだ選挙にいこう:2009/05/11(月) 13:10:59
何を質問してるのか俺にはさっぱり分らんが、Sheet1!とかSheet2!とかは1回でいいよ?
律儀に2回も書くことない。
49名無しさん@そうだ選挙にいこう:2009/05/11(月) 13:16:31
ファイルアップロードして何をしたいか書いたほうが早いかもねぇ
50名無しさん@そうだ選挙にいこう:2009/05/11(月) 13:30:08
テキストボックスじゃないんじゃないの?
どうやってA1:X1の値を入れてるんだ?
出来ないことはないけどね。
51名無しさん@そうだ選挙にいこう:2009/05/11(月) 18:34:55
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2003 SP3
【3 VBAが使えるか    .】 使えません
【4 VBAでの回答の可否】 可(VBAは全く分かりませんが、コードを書いていただければ内容を調べて理解に努めます)
【5 検索キーワード     】 Excel VBA セル 上書き 条件 等を色々と組み合わせて。

F列に有る年月情報を、G列にある年月の方が大きい場合、G列の年月で上書きし、G列の数値をクリアする(削除では無くクリア)。
G列のセルが空白の時はスキップ。

という作動をシート全体にさせたいと思います。
単純に言うとF列の年月情報をG列の年月情報が新しい場合、それで更新したい。
という感じです。よろしくお願いします。
52名無しさん@そうだ選挙にいこう:2009/05/11(月) 18:40:50
クリアって何?
5337:2009/05/11(月) 18:42:39
>>48>>49>>50
ユーザーフォームの中のテキストボックスの参照もとの値が空白の場合にテキストボックスに0が表示されるのをされないようにしたいということです。
テキストボックスにはControlsours に参照セルを入れて引っ張ってきてます。

関係があるシートを下にアップしました。よろしくお願いします。
http://up.87op.com/getfile.php?md5=b0528e68b4b4b56c961dc5aadfb54e25&ls=upp

LDkey=0120
54名無しさん@そうだ選挙にいこう:2009/05/11(月) 18:53:45
>>53
30もユーザーフォームがあるじゃねーかよ。
どのユーザーフォームのTextBoxなんだ?
5537:2009/05/11(月) 19:00:37
すいません。
UserForm17です。
56名無しさん@そうだ選挙にいこう:2009/05/11(月) 19:27:18
そんな大がかりなブックみても分らんよ。
現象が再現できる最低限の小さなブックをアップしろ。
57名無しさん@そうだ選挙にいこう:2009/05/11(月) 19:29:04
>>53
シートの値が0になってっりゃそこを参照してるTextBoxも0になるのは当然だと思うが?
58名無しさん@そうだ選挙にいこう:2009/05/11(月) 19:31:13
フォーム起動ボタンを押すと、0が補完されるし。
59名無しさん@そうだ選挙にいこう:2009/05/11(月) 19:47:07
しかしまぁコードみるかぎりかなり初心者だと思うが、よくこんな大がかりなブック作るよな。
しかもクラスモジュールまで使ってる形跡もあるし。
6037:2009/05/11(月) 20:08:29
>>56
いま、準備してますが、現象が出てこないんです。

何が原因でこうなったのか…

TOPのVLOOKUPが原因なのかVBが原因なのか…
普通にしてたら0は出てきません。

もう少しがんばって現象を出して見ます。
6137:2009/05/11(月) 20:15:10
>>57>>58
ひょっとしてフォーム起動が原因なんですね!
>>59
お察しのとおりです。
62名無しさん@そうだ選挙にいこう:2009/05/11(月) 20:20:47
>>60
TOPのVLOOKUPの式が#REF!になってるのは何で?
63名無しさん@そうだ選挙にいこう:2009/05/11(月) 20:27:02
>>51
Sub test()
Dim i As Long
Dim r As Long
'6列目(F列)の最終行を調べる
r = Cells(Rows.Count, 6).End(xlUp).Row
'↓1行目が項目行と考えて2行目からにしたが適宜変更すること
For i = 2 To r
If Cells(i, 7).Value <> "" And Cells(i, 7).Value >= Cells(i, 6) Then
Cells(i, 6).Value = Cells(i, 7).Value
Cells(i, 7).ClearContents
End If
Next i
End Sub
64名無しさん@そうだ選挙にいこう:2009/05/11(月) 20:27:30
すごいなブックをみた
まさか会社からかっぱらってないよね
65名無しさん@そうだ選挙にいこう:2009/05/11(月) 20:28:50
2000使用です
先ほどの起動から、突然矢印操作がおかしくなってしまいました
普通ならセル移動なんですが、表全体がスクロールするようになってしまいました
これはいったいどこに不具合が出たんでしょうか
起動したらこうなってました、設定変更は一切してません
小遣い表に使ってる程度なので、設定変更もせいぜい色や幅を変えるぐらいしかしませんし
非常に困っています、どうやったら直せますか
再起動してみましたが直りませんでした
6637:2009/05/11(月) 20:31:13
>>62
本当はもうひとつリストがあって、その情報を別のユーザーフォームに表示させようとおもっていたんですが、さすがに面倒になってやめました。
その名残で残ってます。紛らわしくてすみません。

たぶん、UserForm17を立ち上げる際にTOPから見積一時シートに転記するときに0が入ってしまうと思うんですが、これを入らないようにするにはどうしたらいいでしょうか?
67名無しさん@そうだ選挙にいこう:2009/05/11(月) 20:31:22
>>65
キーボードの右上にScroll Lockというキーがあるだろうから押してみて
6851:2009/05/11(月) 20:38:28
>>52さん
セルのコンテキストメニューで出てくる削除ではなく、数式と値のクリアということです。
69名無しさん@そうだ選挙にいこう:2009/05/11(月) 20:42:16
あっ・・・キーボードのキーLockランプが光ってる・・・なぜ?
>>67
ありがとおおおおおおおおおおおお!
この機能なのか_| ̄|○
使う必要の無いキーが知らないうちに押されてると全く違う動きになって悩むことしばしば
ほんとにありがとう
70名無しさん@そうだ選挙にいこう:2009/05/11(月) 20:42:37
>>66
プロパティウインドウ開いてプロパティのTextに0が入ってるから消す。
7137:2009/05/11(月) 20:52:06
>>70
ありがとうございます。
しかし、いったん0をけしてもUserForm17を立ち上げるときにまた0が入ってしまいます…
7251:2009/05/11(月) 20:59:59
>>63
ありがとうございます
内容見ながら把握して実験してみます。

※現在アク禁中に付き、他スレにて代理書き込みをお願いしており、
※返事が前後してしまいました。
73名無しさん@そうだ選挙にいこう:2009/05/11(月) 21:11:02
>>72
知ってるw
74名無しさん@そうだ選挙にいこう:2009/05/11(月) 21:14:14
>>66
TOPシートのAB15が空白のように見えるとき実際の値は0になってる。
表示形式が[=0]"";G/標準になってるので空白に見えるだけ。

VLOOKUPの式を見直すか、見積一時シートへ代入するときValueプロパティじゃなくTextプロパティを代入すればいい。
ただしValueと違っていっぺんには代入出来ないからループを回すことになる。
式を見直す場合はAB15を例にとると
=IF(TOP!$C$19="","",IF(VLOOKUP(TOP!$C$19,車両見積一覧!$A$1:車両見積一覧!$BL$5666,2,0)="","",VLOOKUP(TOP!$C$19,車両見積一覧!$A$1:車両見積一覧!$BL$5666,2,0)))
となる。
数値が数字(文字列)になってもかまわなければ
=IF(TOP!$C$19="","",VLOOKUP(TOP!$C$19,車両見積一覧!$A$1:車両見積一覧!$BL$5666,2,0)&"")
と""を後ろにくっつければいい。
75名無しさん@そうだ選挙にいこう:2009/05/11(月) 21:26:15
=IF(TOP!$C$19="","",VLOOKUP(TOP!$C$19,車両見積一覧!$A$1:$BL$5666,2,0)&"")だったな。
前にも書いたようにシートの指定は一回でいい。

ただ車両見積一覧の番号が1からの連番になってるのでVLOOKUPを使うのは愚の骨頂だ。
INDEX関数だけでいい。
VLOOKUP使いは馬鹿が多いから気をつけろ。
7637:2009/05/11(月) 21:36:24
ありがとうございます!
できました!
ループを回すやり方がよくわからなかったので、VLOOKUPを見直しました。
=IF(TOP!$C$19="","",IF(VLOOKUP(TOP!$C$19,車両見積一覧!$A$1:車両見積一覧!$BL$5666,2,0)="","",VLOOKUP(TOP!$C$19,車両見積一覧!$A$1:車両見積一覧!$BL$5666,2,0)))
のほうでやってみたら0が消えました。

かなり時間食ったので本当にうれしいです。ありがとうございました!

そのほかの皆さんもお騒がせしました。
7737:2009/05/11(月) 21:44:41
>>75
シートの指定は
=IF(TOP!$C$19="","",IF(VLOOKUP(TOP!$C$19,車両見積一覧!$A$1:$BL$5666,2,0)="","",VLOOKUP(TOP!$C$19,車両見積一覧!$A$1:$BL$5666,2,0)))
ってことですね?

INDEX関数ですか?
勉強のためにやってみます!
ありがとうございます。

78名無しさん@そうだ選挙にいこう:2009/05/11(月) 21:49:58
【1 OSの種類         .】 WindowsVISTA
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 EXCEL セルの書式 数式

相談させてください
H3の値がQ3より大きい、かつ、H3が未入力ではない 場合
H3のセルの背景を赤で塗りつぶす
には、どのように設定したらいいでしょうか?

また?3列で設定後、同じ設定を4列〜30列まで設定したいのですが、
セルの中に数式を入れる場合と違い、セルの書式の場合は、手動で一つ一つ設定していくしかないでしょうか?
79名無しさん@そうだ選挙にいこう:2009/05/11(月) 21:58:42
>>77
ヒントだがB3:B5666の100番目の値は =INDEX(B3:B5666,100)
80名無しさん@そうだ選挙にいこう:2009/05/11(月) 22:03:09
>>78
H3を選択して書式→条件付書式→数式が→=AND(H3<>"",H3>Q3)→書式で赤を選択

条件付書式もコピーできる。書式のコピーすればいい。
81名無しさん@そうだ選挙にいこう:2009/05/11(月) 22:04:35
>>78
セルH3を選択し、ツールバーの書式→条件付書式

「セルの値が」をクリックし、「数式が」に変更
「=and(h3>q3,h3<>"")」と入力   ・・・普通にセルを選択して入力した場合、絶対参照になってしまうので注意
「書式」をクリックし、「パターン」タブを選んだあと、色を設定し「OK」

そのままH3をコピーし、H4〜H30まで「形式を選択して貼付け」の「書式」で貼り付ければOK。

82名無しさん@そうだ選挙にいこう:2009/05/11(月) 22:08:04
>>79に続いてもう一つヒント。
$B$3:$BL$5666の上から100番目で左から10番目は
=INDEX($B$3:$BL$5666,100,10)
$B$3:$BL$5666は名前定義した方が楽だけどな。
83名無しさん@そうだ選挙にいこう:2009/05/11(月) 22:13:11
>>78
H3が未入力かどうかは見なくていいんじゃないの?
H3が未入力なら当然Q3の値より小さいことになる。
84名無しさん@そうだ選挙にいこう:2009/05/11(月) 22:15:54
>>83
Q3がマイナスだったら?
8583:2009/05/11(月) 22:16:04
すまん、Q3が負の数値のケースを失念した。
8683:2009/05/11(月) 22:17:08
お、上は>>84は見ずに書きこ。
87名無しさん@そうだ選挙にいこう:2009/05/11(月) 22:18:19
空白は0か
8883:2009/05/11(月) 22:21:39
>>87
そういうことだな。
条件付き書式に「空白セルは無視する」とかあったような気がしたが探してもないな。
89名無しさん@そうだ選挙にいこう:2009/05/11(月) 22:24:22
>>88
「空白を無視する」は入力規則のリストのときに使うね。
2007はわからんが。
90名無しさん@そうだ選挙にいこう:2009/05/12(火) 10:45:12
助言願います。

Excel2003

ユーザーフォーム内で作成したテキストボックス内の文字列位置の
上下センター付けはどのように設定すれば良いのでしょうか?
91名無しさん@そうだ選挙にいこう:2009/05/12(火) 13:50:56
>>90
(コントロールの高さ - フォントの高さ) / 2
を、上下のマージンとして設定すればいいんじゃね?
Win32APIで。

あとはそこまでしてでもセンタリングしたいか
プロパティとかで手軽に設定出来ないならキッパリ諦めるかはお好きなように。
9237:2009/05/12(火) 22:41:44
>>82
ありがとうございます。
INDEX関数難しいです…
ヒントの意味すらよくわかりません 泣
VLOOKUPはB3からBL5666の中を検索して同じ番号の行の○列目を表示するって意味ですよね?
INDEXの場合はB3からBL5666の中を検索して同じ番号の行の配列を表示するって意味ですよね?

う〜〜ん。
INDEX関数検索してみましたが…
=INDEX(TOP!$C$19,車両見積一覧!$A$3:$BL$5666,3,1)
といれたらREF!になってしまいました。
93名無しさん@そうだ選挙にいこう:2009/05/12(火) 23:56:19
質問させてください。

【1 OSの種類】 WindowsXP
【2 Excelのバージョン】 Excel2000
【3 VBAが使えるか】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード】 EXCEL セルの一部 リンク

A1に、「2009年10月1日〜10月31日」
B1に、「2009年11月1日〜11月30日」

A1の一部「2009」を、「2010」に変えると
B1の「2009」も「2010」に変わるよう連動させたいのですが・・

セルの一部をリンクすることは可能でしょうか。
94名無しさん@そうだ選挙にいこう:2009/05/13(水) 00:03:08
>>93
直接リンクさせるのは無理。
どこかに年を入れるセルを用意して、A1とB1を両方ともそこへリンクさせるしかない。
さもなくばVBA
95名無しさん@そうだ選挙にいこう:2009/05/13(水) 00:27:52
>>93
無理矢理だけど。
=LEFT(A1,4)&("年11月1日〜11月30日")
自分ならひとつのセルにはひとつの年月日だけ入れて書式設定で表示する。
96名無しさん@そうだ選挙にいこう:2009/05/13(水) 00:41:03
ごめん。質問の意味勘違いしてた。
2009年11月1日〜11月30日は固定だとしたらリンクは無理だね。
>>94の言うとおり。
97名無しさん@そうだ選挙にいこう:2009/05/13(水) 01:12:28
>>95
更に無理やりな式。
=TEXT(DATE(LEFT(A1,4),MID(A1,6,FIND("月",A1)-6)+1,1),"yyyy年m月d日〜")&TEXT(DATE(LEFT(A1,4),MID(A1,6,FIND("月",A1)-6)+2,0),"yyyy年m月d日")
98名無しさん@そうだ選挙にいこう:2009/05/13(水) 02:11:03
>>92
VLOOKUPで検索するのは左端の列。
見つかった同じ行の○列目を表示する。
しかし検索する左端はの列は1からの連番になってるから検索する必要はないんんだよ。
たとえば5を検索しても5番目にあるって決まってるからね。
15を検索したら15番目だ。

これでも分らなければ、君はVLOOKUPの式をINDEXとMATCHの式に置き換える勉強をした方がいい。
そうしたら分るようになるかも知らん。
99名無しさん@そうだ選挙にいこう:2009/05/13(水) 06:47:43
>>94
いい事言うなあお前。
みんなが頭じゃわかっててもなかなか実践できない事を口に出して言えるなんざ大変な自信だよ。
それで出来てなかったらあのインチキ占いのバアさんと一緒だぞお前。
そんなに当たり前の事を言いたかったら尼さんにでもなってから説教したらどうだ。
100名無しさん@そうだ選挙にいこう:2009/05/13(水) 08:34:57
どこを誤爆?
101名無しさん@そうだ選挙にいこう:2009/05/13(水) 13:37:34
元のファイル見てないんであれだけど
慣れないVBAや関数使って苦労するぐらいなら運用と手計算でカバーした方が確実なんじゃないかね。
ここで何度も何度も質問を繰り返すレベルだとそのうち致命的なうっかりミスしそうで怖いんだが。
102名無しさん@そうだ選挙にいこう:2009/05/13(水) 18:01:17
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2007(多分)
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 EXCEL 文字化け ハングル
excelで自動計算する表を作りました。単位 kg/?の?のところがハングルに文字化けします。
グーグルで調べてニューグリムフォントを削除したら、ハングルは表示されなくなったのですが、
今度はkg/rと表示されてしまいます。きちっとkg/?と表示させるには、どうしたらよいでしょうか?
103名無しさん@そうだ選挙にいこう:2009/05/13(水) 18:02:41
?のところは、全角立方メートルです。
104名無しさん@そうだ選挙にいこう:2009/05/13(水) 18:06:15
>>102
文字化けしてるぞ。何の単位だ?
ここに書き込めないということは、ユニコードにしかない記号だと思うが
とりあえずMS UIゴシックにしてみ。
105名無しさん@そうだ選挙にいこう:2009/05/13(水) 18:11:42
全角 立方メートル m3ってシフトjisにもあると思うのですけど。
106名無しさん@そうだ選挙にいこう:2009/05/13(水) 18:12:21
>>102
挿入→記号と特殊文字→CJK互換文字
107名無しさん@そうだ選挙にいこう:2009/05/13(水) 18:13:25
>>105
平方メートルはあるけど立法メートルはJISコードには含まれてない
108名無しさん@そうだ選挙にいこう:2009/05/13(水) 18:38:49
?
109名無しさん@そうだ選挙にいこう:2009/05/13(水) 18:53:59
この板はユニコード使えんよ
110名無しさん@そうだ選挙にいこう:2009/05/13(水) 19:14:31
m3って書いて3を上付きにすればいいじゃない
機種依存文字を使うのはあんま良くないし(実際文字化けもしてるわけだし)

まあExcelで上付き文字使うのちょっとめんどいけどさ、何かコピペとかするたびに元戻っちゃうしね
でも文字化けするよりはいいと思う
111名無しさん@そうだ選挙にいこう:2009/05/13(水) 20:48:18
>>109

112名無しさん@そうだ選挙にいこう:2009/05/13(水) 21:09:51
cm?
113名無しさん@そうだ選挙にいこう:2009/05/13(水) 21:27:20
>>112

cm³
114名無しさん@そうだ選挙にいこう:2009/05/13(水) 21:39:46
m³ m³ m³
115名無しさん@そうだ選挙にいこう:2009/05/13(水) 21:41:31
よくわからんが、IE8だと書けるのか?
テスト→?
116名無しさん@そうだ選挙にいこう:2009/05/13(水) 21:42:35
orz
117名無しさん@そうだ選挙にいこう:2009/05/13(水) 21:43:53
ocz ←キンタマにボールが当たったキャッチャー
118名無しさん@そうだ選挙にいこう:2009/05/13(水) 22:27:59
ユニコード不可の板でも、ごく一部の記号だけは判定の関係で書けてしまう。
上付き文字はユニコードには0〜9まで全部あるけど、書き込めるのは 1 2 3 a の4つだけ。
一文字で「m3」みたいな記号は無理。
119名無しさん@そうだ選挙にいこう:2009/05/13(水) 22:28:46
¹ ² ³ ª
120名無しさん@そうだ選挙にいこう:2009/05/13(水) 22:54:19
?
12193:2009/05/13(水) 23:42:35
レス遅くなり申し訳ありません。

>>94
「どこかに年を入れるセルを用意して、A1とB1を両方ともそこへリンクさせるしかない。」
ぁ!それです!!それで構いません。
そのセルからのリンク方法ってどうしたらいいんでしょうか。
そのやり方もググってみたもののヒットせず・・。
122名無しさん@そうだ選挙にいこう:2009/05/14(木) 00:09:02
>>121
年を入れるセルをC1としたら(C1に例えば2009と入れておいて)

A1に =C1&"年10月1日〜10月31日
B1に =C1&"年11月1日〜11月30日

とかでいいわけ?
123122:2009/05/14(木) 00:10:35
おっとごめん

A1に =C1&"年10月1日〜10月31日"
B1に =C1&"年11月1日〜11月30日"

後ろの"が消えてたわ
124名無しさん@そうだ選挙にいこう:2009/05/14(木) 00:12:56
>>121
単純に別のセルに「2009」と入力するだけじゃね?
C1とか。
そのままC1に12月が入るのなら、例えばSheet2のA1にするとか。
(sheet2にした場合)
A1を「=Sheet2!$A$1&"年10月1日〜10月31日"」
B1を「=Sheet2!$A$1&"年11月1日〜11月30日"」
でどう?
ついでに言えば、D1に1月が入るのなら、
「=Sheet2!$A$1+1&"年1月1日〜1月31日"」
と、「A1+1」にしておけば、そのまま2010年1月になるし、
SHEET2を2010年にした場合は2011になる。
125名無しさん@そうだ選挙にいこう:2009/05/14(木) 00:28:07
>>121
2009じゃなくて2009/10/1とか年月日ならリンク先の日付も変更しなくてすむよ。
A1に2009/10/1と入れる。
B1に
=TEXT(DATE(YEAR($A$1),MONTH($A$1)+COLUMN()-2,1),"yyyy年m月d日〜")&TEXT(DATE(YEAR($A$1),MONTH($A$1)+COLUMN()-1,0),"yyyy年m月d日")
と入れる。右にコピーしてもよし。

横じゃなくて縦の場合
A2に
=TEXT(DATE(YEAR($A$1),MONTH($A$1)+ROW()-2,1),"yyyy年m月d日〜")&TEXT(DATE(YEAR($A$1),MONTH($A$1)+ROW()-1,0),"yyyy年m月d日")
126名無しさん@そうだ選挙にいこう:2009/05/14(木) 11:09:17
ちょっと質問なんですが
OSはXPでExcel2002を使ってます
複数のシート(8枚くらい)全部のA1:BT1000に
びっしり計算式が入れてあるのですが
全部のセルの左上肩に緑の三角が出てて
「エラーですよ・∀・」って教えてくれているんですが
これを全部「エラーを無視する」にして三角を消すと
計算速度が上がったりとか
メモリ的に軽くなったりとか
そういうメリットはありますか?
それとも見た目だけでこの三角はなんにも労力を使っていませんか?
127名無しさん@そうだ選挙にいこう:2009/05/14(木) 11:30:21
緑の三角って2002以降で、文字型セルに数値が入ってる時に出てくるあれ?
128名無しさん@そうだ選挙にいこう:2009/05/14(木) 12:03:39
>>126
体感できるかどうかはわからんが、理論上は動作が少し重くなる
129名無しさん@そうだ選挙にいこう:2009/05/14(木) 14:46:33
文字でも図形でも、画面に何か表示するにはそれなりの処理が必要なんだが
実用上問題ないってんならわかるけど、労力ゼロってのはありえない
130名無しさん@そうだ選挙にいこう:2009/05/14(木) 15:09:00
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

Sub Test()
If vbNo = MsgBox("ページを追加しますか?", vbYesNo) Then
Exit Sub
Else
Dim i As Integer

i = 98
Do
If Not Cells(i, 5).MergeCells Then
Range("A1:Y58").Copy
Cells(i - 39, 1).PasteSpecial Paste:=xlPasteFormats
Exit Do
End If
i = i + 58
Loop
End If
i = i + 18
ActiveSheet.PageSetup.PrintArea = "$A$1:$Y$i" ' ここの部分でエラー

End Sub

上の文で印刷範囲の変更の部分でエラーが出てしまい
自力では解決できませんでした
お力添えお願いいたします
131名無しさん@そうだ選挙にいこう:2009/05/14(木) 15:45:55
EXCEL一家の楽しい会話
質問無いけど重宝してます
皆さん
多謝
132名無しさん@そうだ選挙にいこう:2009/05/14(木) 17:01:06
>>130
"$A$1:$Y$i"
133名無しさん@そうだ選挙にいこう:2009/05/14(木) 17:04:21
"$A$1:$Y$" & i
134130:2009/05/14(木) 17:18:11
助けていただきありがとうございました
135名無しさん@そうだ選挙にいこう:2009/05/14(木) 20:29:54
すみません。
2003を使ってますが、物の数だけカウントして
何が一番多いか、二番目は何かを調べたいのですが、
分かる方いますか?

例えば
お皿
はし
はし
コップ


と千行以上あり、毎日追加されています。
上の方に上位五までを自動ででるように
したいのですが。。
136名無しさん@そうだ選挙にいこう:2009/05/14(木) 20:33:03
上の方にと言うのは
表示用のセルを作るという事です。



よろしくお願いします。

フィルターは使わず関数だけで解決できればと思います。
137名無しさん@そうだ選挙にいこう:2009/05/14(木) 21:03:01
>>135
作業列にCOUNTIF関数で個数表示して
表示用セルにLARGE関数で上位5を表示させるとか。
138名無しさん@そうだ選挙にいこう:2009/05/14(木) 21:08:26
なんでも関数でやろうと考えない方がいい。
とくにCOUNTIFなんか使うのはやめた方がいい。
ピボットテーブルで個数を数えて個数で降順にソートして、別のセルにピボットテーブルの上位5個にリンクを張るだけだな。
データが変わっても、更新すりゃちゃんとピボットテーブルは多い順に並ぶ。
5番目のデータが複数ある時を考慮するなら、リンクする式にLARGE関数を使ってちょい工夫するだけ。
139名無しさん@そうだ選挙にいこう:2009/05/14(木) 21:10:01
上は>>137は読まないで書いたからね。
ごめんな。
140138:2009/05/14(木) 21:16:20
>>138で最後に書いたLARGE関数だが、これは要らんな。
6行目以下の式はピボットテーブルの5番目のデータと比較すりゃいいだけだ。
141名無しさん@そうだ選挙にいこう:2009/05/15(金) 00:18:15
特定する行の値に対して値を返したいのですがどうすればいいでしょうか?

例えばA1に1と入力されればB1に「あ」、A1が2の場合はB1に「い」と自動で入力されるような感じです。
どなたかご教授ください…。
142141:2009/05/15(金) 00:37:51
たびたびすいません。
IF関数使おうとしたのですが返す値が一つなので困っています。
143名無しさん@そうだ選挙にいこう:2009/05/15(金) 00:38:32
リストを作れば簡単だろ?
C1以下に





とリストがあれば
=INDEX(C:C,1)とすりゃ"あ"が返る。
間違っても番号を振ってVLOOKUPなんか使うなよ。
144名無しさん@そうだ選挙にいこう:2009/05/15(金) 00:43:46
数がすくなけりゃCHOOSE関数でもいいか。
=CHOOSE(3,"あ","い","う","え")なら"う”だ。
145名無しさん@そうだ選挙にいこう:2009/05/15(金) 01:00:40
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

同一ブックでのコピペなんですが、その1はOKなのに、その2は
どこがダメなのでしょうか?

'その1
Worksheets("DATA").Select
Range("A1", Range("C65536").End(xlUp)).Copy
Worksheets("集計").Select
Range("A2").Select
ActiveSheet.Paste

'その2
Worksheets("DATA").Range("A1", Range("C65536").End(xlUp)).Copy _
 Destination:=Worksheets("集計").Range("A2")
146名無しさん@そうだ選挙にいこう:2009/05/15(金) 01:05:10
なんで馬鹿って上から目線なんだろうな馬鹿な回答もどき書き散らしてんのに
147名無しさん@そうだ選挙にいこう:2009/05/15(金) 01:05:36
わかりやすく書けよ・・

B1に=CHOOSE(A1,"あ","い","う","え","お")と入れ、以下必要なセルまでコピー

A1に1と入れれば、”あ”が返るし、2は”い”になるってことだ。
148名無しさん@そうだ選挙にいこう:2009/05/15(金) 01:11:41
>143.144.147様
ありがとうございます。
明日試してみます!助かります!
149名無しさん@そうだ選挙にいこう:2009/05/15(金) 01:13:21
>>146
同意。

>>143,144の回答わかりずらいし、偉そうなのがむかつく
150名無しさん@そうだ選挙にいこう:2009/05/15(金) 01:13:57
>>146
自己紹介オツ
151名無しさん@そうだ選挙にいこう:2009/05/15(金) 01:18:01
オツとか懐かしいな
昭和の香りだ
152名無しさん@そうだ選挙にいこう:2009/05/15(金) 01:19:15
145ですが、誰か教えてください。
153名無しさん@そうだ選挙にいこう:2009/05/15(金) 01:25:14
>>152
Worksheets("DATA").Range(Worksheets("DATA").Range("A1"), Worksheets("DATA").Range("C65536").End(xlUp)).Copy _
 Destination:=Worksheets("集計").Range("A2")

って指定すればいけんじゃね?
with Worksheets("DATA")
range(.Range("A1"),.Range("C65536").End(xlUp)).copy Worksheets("集計").Range("A2")
end with
でもいいかな。どこのrangeかいうのをきっちり指定してやればおk
154145=152:2009/05/15(金) 01:31:10
>>153
ありがとうございます。
2時間くらい、ずっと悩んでました。
155名無しさん@そうだ選挙にいこう:2009/05/15(金) 01:34:17
>>143
>間違っても番号を振ってVLOOKUPなんか使うなよ

なんで?
156名無しさん@そうだ選挙にいこう:2009/05/15(金) 01:37:25
>>153みたいな長ったらしいコード書くくらいなら・・・

Sub test()
Dim myR As Range
Set myR = Worksheets("DATA").Range("A1", Range("C65536").End(xlUp))
myR.Copy Destination:=Worksheets("集計").Range("A2")
End Sub


157名無しさん@そうだ選挙にいこう:2009/05/15(金) 01:41:06
さすが馬鹿は何もわかってねーなw
斜め上すぎてちょっと感心したわw
158名無しさん@そうだ選挙にいこう:2009/05/15(金) 01:42:52
馬鹿が悩むのがかわいそうだから書いておくけど
それじゃどこのシートのC列の最終セルなのかわかんねーだろ
頭冷やせ
俺もう寝るわw
159名無しさん@そうだ選挙にいこう:2009/05/15(金) 01:53:58
>>157
アンカー付けろや、ヴォケ!!
160名無しさん@そうだ選挙にいこう:2009/05/15(金) 01:56:13
馬鹿が悩むのがかわいそうだから書いておくけど
それじゃどこのカキコ宛てのレスなのかわかんねーだろ
頭冷やせ
俺もう寝るわw
161名無しさん@そうだ選挙にいこう:2009/05/15(金) 02:00:06
どっちが馬鹿なのか?あー!
>それじゃどこのシートのC列の最終セルなのかわかんねーだろ

だから頭にWorksheets("DATA")があるだろ!連続した範囲指定の場合他のシートにまたがる
ことはありえねーし、Rangeオブジェクト内でAからCってあるから問題ねーんだよ、ボケ!!
162名無しさん@そうだ選挙にいこう:2009/05/15(金) 02:08:59
Worksheets("DATA").Range(Worksheets("DATA").Range("A1"), Worksheets("DATA").Range("C65536").End(xlUp))

俺もこんな書き方はしねーなwww
163名無しさん@そうだ選挙にいこう:2009/05/15(金) 02:47:00
ちと笑ったんでマジレスしてみる。

普通、先頭にシート指定がある場合はRangeプロパティでしつこくシート指定する
必要は全くない。

>>153のコードは間違いではないが無駄。
それに対して、>>156のコードはSetステートメントで一シート内の範囲を連続範囲
をあらかじめオブジェクトとして変数に格納しているのでこちらの方が無駄がない。

164名無しさん@そうだ選挙にいこう:2009/05/15(金) 02:54:13
↑の一部文章がおかしかったので訂正

×一シート内の範囲を連続範囲
○一シート内の連続範囲
165名無しさん@そうだ選挙にいこう:2009/05/15(金) 07:15:36
馬鹿馬鹿言ってるのは俺じゃねーがたしかにそうらしいなw
それとも>>156>>163はネタで書いてるの?
標準モジュールに書いてるならDATAシート上から実行しないと動かんぞ?
シートモジュールに書いてるならDATAシートのシートモジュールじゃなきゃ動かん。

下が正しい。
Sub test()
Dim myR As Range
With Worksheets("Data")
  Set myR = .Range("A1", .Range("C65536").End(xlUp))
End With
myR.Copy Destination:=Worksheets("集計").Range("A2")
End Sub
166名無しさん@そうだ選挙にいこう:2009/05/15(金) 07:19:44
>>161>>156>>163の同類みたいだな。
この人たちあまりにひどすぎて、どうも釣りで書いてるような気もするんだが考えすぎ?
167名無しさん@そうだ選挙にいこう:2009/05/15(金) 07:27:23
ちなみに>>158はまったく正しい
168名無しさん@そうだ選挙にいこう:2009/05/15(金) 07:29:21
試せば分かるだろうから納得しているはず
169名無しさん@そうだ選挙にいこう:2009/05/15(金) 07:38:33
>>153>>166に書いた3人よりは分ってるがちょっと足りなかったね。
下の方はシートモジュールに書いてるなら動かんケースがある。
頭のRnageの前にApplication.とかExcel.とか修飾すれば問題ないが。
多分知ってはいると思うが、気を悪くするなよ。
170名無しさん@そうだ選挙にいこう:2009/05/15(金) 07:40:41
>>168
いやぁ、たまたまDATAシート上で試してうまくいったから間違いないと信じ込んでた可能性もある。
171名無しさん@そうだ選挙にいこう:2009/05/15(金) 07:48:18
>>155
C列の何番目かを求めるだけだから1からの抜け番無しの連番書いてVLOOKUPなんて意味ないだろ?
なんかVLOOKUP使いの人たちもうすこし頭を柔軟にした方がいいと思う人が多いな。
基本がどうも出来てない。
172名無しさん@そうだ選挙にいこう:2009/05/15(金) 08:00:36
>>149も足りない人たちの仲間だったか。
困ったもんだね。
173143:2009/05/15(金) 08:36:04
>>146
俺に言ってるのかい?
俺が今朝書いたやつをあげると>>165以降は>>168を除けば全部俺だ。
どこかに馬鹿な回答もどきがあるかい?
174名無しさん@そうだ選挙にいこう:2009/05/15(金) 08:48:26
>>173
>>146が君向けに書いたか知らんがあまりムキにならない方がいいんじゃないの?
175名無しさん@そうだ選挙にいこう:2009/05/15(金) 09:20:22
たぶん、>>156は単に標準モジュールに書いてDATAシート上からの実行しただけじゃね
そんで同調してるやつもそれが絶対に正しいと思ってるなwww
どこのシート上からマクロを実行するかわからないんだからそれらも考えなけりゃいかん


176名無しさん@そうだ選挙にいこう:2009/05/15(金) 09:33:42
>>174
すまんね。
しかし>>146が実は馬鹿馬鹿言ってる>>157-158と同じ人で、>>156を俺だと勘違いしてるんじゃないかと心配になってきたわ。
177名無しさん@そうだ選挙にいこう:2009/05/15(金) 09:35:53
>>175
多分そうだろうね。
178名無しさん@そうだ選挙にいこう:2009/05/15(金) 09:47:04
なんか質問スレと言うより、
知識自慢のオナニー合戦スレになってきたな。
「今朝の書き込みは全部俺」なんていう、馬鹿と言うより「少し病んでそう」な奴もでてきたし。
179名無しさん@そうだ選挙にいこう:2009/05/15(金) 09:49:57
>>178
お前昨夜から嘘書いてる人の一人か?
おれの書いたことなんて常識的なことだから何も自慢になるようなことじゃねーよ。
180名無しさん@そうだ選挙にいこう:2009/05/15(金) 09:50:02
すみませんがちょっと教えてください。
Set 変数名 = Nothing と書くケースと書かないケースの違いが分かりません・・

素人丸出しの質問かもしれませんがお願いします。



181名無しさん@そうだ選挙にいこう:2009/05/15(金) 09:51:28
>>180
分らなければ全部書け。
182名無しさん@そうだ選挙にいこう:2009/05/15(金) 10:02:03
>>178
いやな奴でも内容が正しけりゃ我慢しろ。

183名無しさん@そうだ選挙にいこう:2009/05/15(金) 10:19:05
まさしくそれだ!
184名無しさん@そうだ選挙にいこう:2009/05/15(金) 10:21:01
>>179
その「常識的なこと」を語りたいだけのために朝一番から必死に張り付いて連投することの気持ち悪さを指摘してるだけだよw
世間一般ではそこまでするのは「自分の書いたことの反応が気になって気になって仕方ない=俺ってすげー!と思ってる」からだと考えると思うが?
185名無しさん@そうだ選挙にいこう:2009/05/15(金) 10:23:38
俺は別に全然すげーって思ってないけど?
朝から張り付いてるって、今日は非番で休みだから遊んでるだけだが何か?
186名無しさん@そうだ選挙にいこう:2009/05/15(金) 10:27:16
まあいいじゃん。
どんだけ人間性が最低のコミュニケーション不全のやつでも、
おだてておけば調子にのってペラペラ回答を語るんだし。
自分に酔ってるやつはおだてて利用しつつ、
影で馬鹿にするに限るぜwww
187名無しさん@そうだ選挙にいこう:2009/05/15(金) 10:27:44
なんだかねぇ。
書いてる内容だけを云々すりゃいいんだよ。
技術板ではそれが掟だ。
188名無しさん@そうだ選挙にいこう:2009/05/15(金) 10:29:08
>>186
鏡ある?
189名無しさん@そうだ選挙にいこう:2009/05/15(金) 10:31:34
186は人間性の達人なんだねきっとw
190名無しさん@そうだ選挙にいこう:2009/05/15(金) 10:33:39
正しいこと言ってても、性格がこんなじゃ誰からも相手されないだろw
こんなところでしか自己主張できない可愛そうなやつなんだからもうほっとけ
191名無しさん@そうだ選挙にいこう:2009/05/15(金) 10:36:03
>>190
187嫁
192名無しさん@そうだ選挙にいこう:2009/05/15(金) 10:46:16
おまいら本領発揮だなw
193名無しさん@そうだ選挙にいこう:2009/05/15(金) 10:52:26
>>180
オブジェクト変数の場合
オブジェクトへの参照を解除して、初期化するにはオブジェクト変数にNothingキーワードを入れる。
通常はプロシージャが終了すると自動的にオブジェクトへの参照は解除されるが、明示的に解除
するにはNothingキーワードを使用する。

194名無しさん@そうだ選挙にいこう:2009/05/15(金) 11:05:13
>>189
ネタにまじレスすると人間性をとやかく言うやつは実は人間性は最悪。
195名無しさん@そうだ選挙にいこう:2009/05/15(金) 11:10:52
人間性の劣るもの同士がバトルをやってるスレはここでつか?
ちなみにおれは人間性は最高レベルです。
196152:2009/05/15(金) 11:18:52
>>193
なるほど、プロシージャの最後(Endの直前)に書いてあったりするものでも
実際は無くても問題ないと言うことですね。

勉強になりました、ありがとうございました。<(_ _)>
197名無しさん@そうだ選挙にいこう:2009/05/15(金) 11:21:57
>>196の名前欄152は180の間違いでした・・
俺なにやってんだろ・・152さんすみません。
198名無しさん@そうだ選挙にいこう:2009/05/15(金) 11:55:17
>>184
部外者だがおまえ少し病んでない?
199名無しさん@そうだ選挙にいこう:2009/05/15(金) 11:56:40
その他にも病んでそうなのがいるな。
200名無しさん@そうだ選挙にいこう:2009/05/15(金) 12:29:56
もう、技術的な話題以外はよせ!
ここをどこだと思ってるんだよ、煽り・貶し合いは他所でやってくれ
201名無しさん@そうだ選挙にいこう:2009/05/15(金) 12:51:26
昨晩>>145関連で間違い書いた人たち、昼間はいなくて書き込めないのかもしれないが、夜はちゃんと謝り入れるんだろうか?
>>161とかはボケ!!とか書いたらかっこ謝れないかもな。
202名無しさん@そうだ選挙にいこう:2009/05/15(金) 12:52:15
かっこ悪くてあやまれないかもな。だった。
203名無しさん@そうだ選挙にいこう:2009/05/15(金) 13:39:57
おっさんどもは犯人探しが大好きだよな
気持ち悪いわー
204名無しさん@そうだ選挙にいこう:2009/05/15(金) 13:42:59
馬鹿が自分の事馬鹿だと気づいてくれりゃそれでいいんだよ
同じ勘違いしてたROMの連中の役にも立つだろうし
馬鹿が上から目線で馬鹿回答を正しいみたいにして勘違いするROMが増えるのが一番問題だ
誰が間違ってるかとかどーでもいい

犯人探しになぜか執着しちゃう奴は病院行ってこい
205名無しさん@そうだ選挙にいこう:2009/05/15(金) 14:11:24
Rnageって何?
技術的に教えてください
206名無しさん@そうだ選挙にいこう:2009/05/15(金) 14:13:15
犯人探しってだれかしてる?
おまえこそ病院行った方がいいんじゃね?
207名無しさん@そうだ選挙にいこう:2009/05/15(金) 14:20:39
>>205
>>169でのタイプミスだろうが・・つまらんことで今更つっこむなよw
208名無しさん@そうだ選挙にいこう:2009/05/15(金) 14:25:18
>>207
ですよねw
そうだろうとは思ってたんですが、「常識的」とか「基本だろ」とか「間違っても○○するなよ」とかおっしゃる方の書込だけに、自分のしらないプロパティかと思いましたw
209名無しさん@そうだ選挙にいこう:2009/05/15(金) 14:32:11
つまらんことで突っ込むしかないのかねw
210名無しさん@そうだ選挙にいこう:2009/05/15(金) 14:37:01
おまいら会って喧嘩しろよ。
勝った奴がただしいんだから。
211名無しさん@そうだ選挙にいこう:2009/05/15(金) 14:37:35
遅レスですまんが
>>143 >>171は何でA1に入力されるのが1以上65536(2007だったら約100万)以下の整数だと思いこんじゃってるんだ?
さらに言うとA1に数値が入力されるとも限らないぞ?
212名無しさん@そうだ選挙にいこう:2009/05/15(金) 14:44:12
>>211
つまらんつっこみするなよ。
おまえ病気だぞ。
213名無しさん@そうだ選挙にいこう:2009/05/15(金) 14:53:34
病気かどうかはどうでもいいがそんなこと言い出したらCHOOSEに対する突っ込みもしなきゃならん。
#REF!と#VALUE!の違いだけどな。
214名無しさん@そうだ選挙にいこう:2009/05/15(金) 15:03:28
正確に文章を読む読解力や論理的に考える能力が無い人間は
無理に回答する側にまわらなくていいのに
215名無しさん@そうだ選挙にいこう:2009/05/15(金) 15:10:29
>>214
論理的に考える力がない奴は多いね。
論理的に無駄なロジックの式平気で書くやついるもんな。
216名無しさん@そうだ選挙にいこう:2009/05/15(金) 15:14:59
ところで>>214は能力あるの?
217名無しさん@そうだ選挙にいこう:2009/05/15(金) 15:17:27
なんかしらんがプログラミング板と勘違いしてる奴が常駐し始めたか。
うざいな。
218名無しさん@そうだ選挙にいこう:2009/05/15(金) 15:20:33
やたらとVLOOKUPを否定してINDEX勧める奴って何が言いたいのかよく分からんなあ。
俺は用途によって使い分けるが、彼は何でもかんでもINDEXって感じだからなあ。
219名無しさん@そうだ選挙にいこう:2009/05/15(金) 15:22:28
だよね。
INDEX覚えてうれしくてしょうがないんじゃね?
220名無しさん@そうだ選挙にいこう:2009/05/15(金) 15:24:57
>>218
VLOOKUPの便利な使い方しらないんじゃね?
221名無しさん@そうだ選挙にいこう:2009/05/15(金) 15:30:50
VLOOKUPの便利な使い方教えて
222名無しさん@そうだ選挙にいこう:2009/05/15(金) 15:33:16
223名無しさん@そうだ選挙にいこう:2009/05/15(金) 15:34:36
>>221
飯のタネだからなぁ。
224名無しさん@そうだ選挙にいこう:2009/05/15(金) 15:56:38
VLOOKUPがメシのタネになるのかよ。
225名無しさん@そうだ選挙にいこう:2009/05/15(金) 19:23:29
昨日から盛さんざん馬鹿呼ばわりしてるやつ、いったい誰と戦ってるのか分らねぇ。
情報の間違ってる方、それとも気に食わないやつのどっち?
なんかどっちとも戦ってるっぽいね。
226名無しさん@そうだ選挙にいこう:2009/05/15(金) 20:18:02
>>136
ごめん、ラベルフィルタでトップテンってのがあった。
5番の人が複数いたらちゃんと全員表示してくれるみたい。
227名無しさん@そうだ選挙にいこう:2009/05/15(金) 20:20:46
すまん、上だがラベルフィルタじゃなく値フィルタだった。
228名無しさん@そうだ選挙にいこう:2009/05/15(金) 20:22:36
>>226-227はピボットの話だから。
229名無しさん@そうだ選挙にいこう:2009/05/15(金) 20:25:11
>>228

お前が

落ち着きのない
思ったことはやらずには気が済まない

性格であることはよくわかったw

言いたいことまとめてから書く癖つけた方がいいよ
230名無しさん@そうだ選挙にいこう:2009/05/15(金) 20:52:00
今日は病人が多いなw
231名無しさん@そうだ選挙にいこう:2009/05/15(金) 20:53:04
回答にせいを出せばいいのにね
232名無しさん@そうだ選挙にいこう:2009/05/15(金) 20:56:56
先生、言い忘れた時はどうしたらいいですか?
233名無しさん@そうだ選挙にいこう:2009/05/15(金) 21:06:45
WindowsXPでExcel2003を使用してます、
四角形のオートシェイプがセルのサイズに
固定されます、自由なサイズで描きたい
のですが、どうすれば良いでしょうか?
234名無しさん@そうだ選挙にいこう:2009/05/15(金) 21:08:03
>>233
Alt押してるんじゃなくて?
235名無しさん@そうだ選挙にいこう:2009/05/15(金) 21:13:14
>>233
図形ツールバーの図形の調整(R)→位置合わせ(S)→グリッド(G)が選択されてない?
236名無しさん@そうだ選挙にいこう:2009/05/15(金) 21:14:40
「グリッドに合わせる」を有効にしてるんじゃないの?
237名無しさん@そうだ選挙にいこう:2009/05/15(金) 21:18:51
オートシェイプ直りました!
ありがとうございます!
238名無しさん@そうだ選挙にいこう:2009/05/15(金) 22:17:37
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 ピボットテーブル 編集
ピボットテーブルについて質問します。
ピボットテーブルでを複数項目を入れると

項目1  項目2  項目3
AAAA  BBB  CCCC   (合計値)
(空白) DDD   CCCC  (合計値)
(空白) (空白) EEEE   (合計値)
FFFF  BBB  CCCC   (合計値)
(空白) (空白)  EEEE  (合計値)
(空白) DDD  CCCC   (合計値)

のように項目名が上列と重なるところでは空白になってテーブルが出来上がります。

これを

項目1  項目2  項目3
AAAA  BBB  CCCC   (合計値)
AAAA  DDD  CCCC   (合計値)
AAAA  DDD  EEEE   (合計値)
FFFF  BBB  CCCC   (合計値)
FFFF  BBB  EEEE    (合計値)
FFFF  DDD  CCCC   (合計値)

のように全ての項目名を列毎に簡単に表示させるような方法はないでしょうか?
239名無しさん@そうだ選挙にいこう:2009/05/15(金) 22:32:40
あ、すいません。列じゃなくて行ですね、、、
解答よろしくお願いします。
240名無しさん@そうだ選挙にいこう:2009/05/15(金) 22:51:09
ピボットテーブル(ニヤリ
241名無しさん@そうだ選挙にいこう:2009/05/15(金) 23:11:46
>>238
ピボットテーブルではどうしても空白できると思うよ。
私ならこの場合SQL使います。
242名無しさん@そうだ選挙にいこう:2009/05/15(金) 23:18:35
>>241
やはりダメですか、、、

では
ピボットテーブルでできた表を値・書式をコピーペーストした後に
比較的簡単に>>238のように加工する方法はありますか?

SQLをググって見たけど自分には到底無理そうです。
243名無しさん@そうだ選挙にいこう:2009/05/15(金) 23:36:23
>>242
ここの人には馬鹿にされそうな方法だけど
自分はE列に
=IF(A2="",E1,A2)
といれて横にコピーしてる。
244名無しさん@そうだ選挙にいこう:2009/05/15(金) 23:42:00
あ、この場合E2に
=IF(A2="",E1,A2)
ってことね。
245名無しさん@そうだ選挙にいこう:2009/05/16(土) 04:15:11
すまあとじゃないけど6行だけなら。

=A1
=IF(A2="",A1,A2)
=IF(A3="",IF(A2="",A1,A2),A3)
=IF(A4="",IF(A3="",IF(A2="",A1,A2),A3),A4)
=IF(A5="",IF(A4="",IF(A3="",IF(A2="",A1,A2),A3),A4),A5)
=IF(A6="",IF(A5="",IF(A4="",IF(A3="",IF(A2="",A1,A2),A3),A4),A5),A6)
246名無しさん@そうだ選挙にいこう:2009/05/16(土) 06:25:56
皆さん解答ありがとうございます。

ただ、実際の表ではピボット後で1000行以上ありまして(汗)
その関数だと普通にコピーした方がはやいかも…
わがままですみません。

もう少し自分で考えて見ます。

お手数をおかけしました。
247名無しさん@そうだ選挙にいこう:2009/05/16(土) 06:40:41
あ、243さんのやり方が今理解できました。
これなら全コピーでいけそうですね

ありがとうございました
248名無しさん@そうだ選挙にいこう:2009/05/16(土) 06:42:15
>>246
横方向は何列?
>>244をオートフィルじゃだめなの?
249名無しさん@そうだ選挙にいこう:2009/05/16(土) 07:15:38
列には項目入れてません。

243さんので解決出来ますね。
246書いてた時はやり方を誤解してました…
申し訳ないです。
250名無しさん@そうだ選挙にいこう:2009/05/16(土) 15:48:04
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel ふりがな ソート できない

住所録を作成しているのですがふりがな通りソートできません。
原因は、入力形式が混在しているためで、Phoneticで確認したところ
1.ATOKのF3機能で「マルノウチ」のまま入っているもの、
2.オートコンプリートのまま入力した「東京都千代田区マルノウチ」
3.そのまま一から入力した「トウキョウトチヨダクマルノウチ」
すべて混在していて並び替えがうまくいってないのです
「トウキョウトチヨダクマルノウチ」して1.2.の欄に貼り付けようにも、関数が入ってるせいか貼り付けられません

また、データの並び替えで「ふりがなを使わない」にしたところ、一応は並び替えられましたが
港区が北区の前に来たりして非常に気持ち悪いです。(というのは、さらにエリアごとに区分しているため丸の内エリア日本橋エリアなど)

うまく並び替える方法はないでしょうか。
251名無しさん@そうだ選挙にいこう:2009/05/16(土) 16:05:59
ふりがなを別の列に入力
252名無しさん@そうだ選挙にいこう:2009/05/16(土) 19:14:18
>>250
ふりがなはふりがなで別の列に入力してその列をキーにして並べ替えする。
ふりがな入力の手間を省くために一時的にPhonetic関数を使うのはいいが
最終的には値貼り付けして関数は残さないようにした方がいい。
253名無しさん@そうだ選挙にいこう:2009/05/16(土) 19:16:38
>>250
selection.setphoneticで無理矢理フリガナを振ることはできる。
ただ人名など特殊な読み方をするものに対しては正確な読み方にはならない。

範囲選択して
イミディエイトウインドウに
selection.setphonetic
と入れてEnterするか標準モジュールに↓貼り付けて実行

Sub test()
Selection.SetPhonetic
End Sub
254名無しさん@そうだ選挙にいこう:2009/05/17(日) 00:08:56
相談させていただきます。
WindowsXP、Excel2003です。
VBAは使えないので、回答もVBAなしでお願いします。

実験での測定値から双曲線に近似(最小二乗法で)して、理論式での定数を求めようとして、ソルバーを使いました。
求める定数は式中に2つあるのですが、ソルバーを実行する際、初期値によって2つの定数の結果が変わってしまいます。
これはなぜなのでしょうか?
適切な値を出すためにはどのようなことに気をつければよいのでしょうか?
255名無しさん@そうだ選挙にいこう:2009/05/17(日) 00:42:22
>>254
数学キター

最小2乗法の数式 2種類あるんだけどどの数式を使ってるの?
定数が2つあるのなら 数式は2個必要だよ

数式が1個しかなければ、適切な数値は自分で決めると思うが(冷たいようだけど)
256名無しさん@そうだ選挙にいこう:2009/05/17(日) 08:43:24
>>255
何言ってるのかわからない。
知らないなら回答するな。
257名無しさん@そうだ選挙にいこう:2009/05/17(日) 09:46:34
>>256
そんな言い方はないだろ。
質問で情報不足を聞いてるんだよ。

エクセルの質問の前に数学を理解してなくて乗法不足なんだよ。
258名無しさん@そうだ選挙にいこう:2009/05/17(日) 10:21:34
式や設定によっては、ある程度正解に近い初期値を与えておかないとローカルミニマム等にはまったりするからいけないよな。
259名無しさん@そうだ選挙にいこう:2009/05/17(日) 10:26:16
>>257
お前は能力が不足している。ひっこんでろ。
260名無しさん@そうだ選挙にいこう:2009/05/17(日) 12:06:08
そもそも理論式で求めるならエクセル使う必要がないだろ。
楽したいのは分かるけどさ。
引っ込みます。
261名無しさん@そうだ選挙にいこう:2009/05/17(日) 12:25:49
能力がある人がなんでわからないんだろ?
262名無しさん@そうだ選挙にいこう:2009/05/17(日) 13:17:38
>>261
お前には>>255がわかるのか?
263名無しさん@そうだ選挙にいこう:2009/05/17(日) 13:26:22
能力があるなら>>255を無視して、>>254の情報だけで質問に答えられるだろ。
答えられない理由を255にするなよ。
264名無しさん@そうだ選挙にいこう:2009/05/17(日) 13:26:33
>>251-253
どうもありがとうございました。
265名無しさん@そうだ選挙にいこう:2009/05/17(日) 14:23:30
>>263
まったくそのとおり。
おれは>>255=>>259だと思ってるけどな。
質問するまでもなく自分で解決出来てるはず。
266名無しさん@そうだ選挙にいこう:2009/05/17(日) 14:25:28
アンカーミスった。
>>254=>>259の間違いな。
267名無しさん@そうだ選挙にいこう:2009/05/17(日) 14:30:00
【1 OSの種類         .】 WindowsXP Home
【2 Excelのバージョン   】 Excel2002?(OfficeXP)

ブック1.xlsからオートフィルタで抽出したデータをブック3.xlsへコピペしたいのですが、
Workbooks(BOOK1).Worksheets("DATA1").Range("A5:A1000").Copy _
   Destination:=.Range("A65536").End(xlUp).ofset(1, 0)
で止まってしまします。何がマズーなのか、教えて優しい人。

Sub コピペてすと2()
Dim myDir, BOOK1, BOOK2, BOOK3
 '〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
  myDir = "F:\エクセル\"
  BOOK1 = "ブック1.xls"
  BOOK2 = "ブック2.xls"
  BOOK3 = "ブック3.xls"
 '〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
 Rows("6:1000").Delete Shift:=xlUp
 Workbooks.Open Filename:=myDir & BOOK1
 Range("A4:E4").AutoFilter Field:=1, Criteria1:="AA"

 With Workbooks(BOOK3).Worksheets("DATA3")
  'A列をA列へコピペ
  Workbooks(BOOK1).Worksheets("DATA1").Range("A5:A1000").Copy _
   Destination:=.Range("A65536").End(xlUp).ofset(1, 0)
  'D列をB列へコピペ
  Workbooks(BOOK1).Worksheets("DATA1").Range("D5:D1000").Copy _
   Destination:=.Range("B65536").End(xlUp).ofset(1, 0)
  'G列をC列へコピペ
  Workbooks(BOOK1).Worksheets("DATA1").Range("G5:G1000").Copy _
   Destination:=.Range("C65536").End(xlUp).ofset(1, 0)
 End With
End Sub
268名無しさん@そうだ選挙にいこう:2009/05/17(日) 15:01:29
× ofset
○ Offset

落ち着いて良くコードを見直せよ
269267:2009/05/17(日) 15:21:33
>>268
ありがと。
逝ってきます・・・(AAry
270名無しさん@そうだ選挙にいこう:2009/05/17(日) 15:53:58
Excel2007で最小二乗法で求めた直線の式付きでグラフにしたいのですが、どうすればいいのでしょうか
271名無しさん@そうだ選挙にいこう:2009/05/17(日) 16:10:35
>>270
2007以前らしいけどこれは参考になりませんか?
ttp://szksrv.isc.chubu.ac.jp/lms/lms7.html
272名無しさん@そうだ選挙にいこう:2009/05/17(日) 16:33:44
レスありがとうございます。
ですが、2007は、貼っていただいたページの最初にクリックすることになっているグラフウィザードのアイコンがないんです。
273名無しさん@そうだ選挙にいこう:2009/05/17(日) 16:50:35
>>272
2007ではグラフウィザードがなくなったんだね。
http://pc.nikkeibp.co.jp/article/NPC/20060828/246539/
274名無しさん@そうだ選挙にいこう:2009/05/17(日) 17:32:54
INT関数とROUNDDOWN関数の小数点以下切り捨て
とは、何が違うのでしょうか?
275名無しさん@そうだ選挙にいこう:2009/05/17(日) 17:36:22
>>274
負の数のとき変わる。
INTは数値を超えない最大の整数を返すので
-5.5のときINTなら-6 (-5は-5.5より大きいから)、
ROUNDDOWNなら単純に小数点切捨てた-5 になる。
276274:2009/05/17(日) 18:06:22
負の数で変わるのですね。参考書の伝票作成に
消費税をINT関数で表示させてるのですが意味
あるのでしょうか?
277名無しさん@そうだ選挙にいこう:2009/05/17(日) 18:13:40
>>276
INTの方が切捨て桁の引数必要なくて簡単だからじゃない?
=INT(A1)
=ROUNDDOWN(A1,0)
あと切捨てではTRUNC関数というのもある。切り捨てる桁数を指定できる。

消費税は納税する側が切り捨てか切り上げか四捨五入か選択できると聞いたので
切捨て以外ならROUNDUPなりROUNDなりを使うことになるんじゃないかな。
278名無しさん@そうだ選挙にいこう:2009/05/17(日) 19:53:09
>>254です。

>>255
返答ありがとうございます。
http://aoki2.si.gunma-u.ac.jp/Hanasi/StatTalk/solver.html
このページを参考にしてやりました。
なので最小二乗法はこのページと同じです。
理論式は1つです。
定数が2つあるのなら 数式は2個必要というのは納得がいくのですが、学校のパソコン(学校の授業で実験をやりました)に入っていたソフトはおそらく式1つで定数2つを出していたので、どうやったのか知りたかったのです。
(学校のパソコンからはデータが移せなかったので、家のExcelで再現しているのです。)

>>258
正解に近い初期値を与えておかないといけないというのはわかるのですが、正解がどれくらいかわからなくて。
何か良い方法はないものでしょうか?
与える初期値によって答えのオーダーが全然違ってしまうのです。

>>256>>259は私ではないです。

ちなみに、理論式は定数が2つ含まれた式で、定数の具体的な値だけわかりません。
その定数を求めようということです。
279名無しさん@そうだ選挙にいこう:2009/05/17(日) 20:17:57
ちなみに-5.5から-5みたいに単純に小数点以下を切り捨てたければTRUNCな。
ROUNDDOWNは他の桁で切り捨てるときだけ使った方がいいよ。
280279:2009/05/17(日) 20:19:12
激しく遅れた。
逝ってくる
281名無しさん@そうだ選挙にいこう:2009/05/17(日) 20:20:32
しかも間違った事書いてるし、ってかw
282名無しさん@そうだ選挙にいこう:2009/05/17(日) 20:29:43
あのー、TRUNCとROUNDDOWNは全く同じ答えになるんですがなんで二つ用意されてるんですか?

=TRUNC(1251,-2)
=ROUNDDOWN(1251,-2)

=TRUNC(-12.3456,2)
=ROUNDDOWN(-12.3456,2)
これらは同じ答えです。

ただ
=TRUNC(A1)
これは=ROUNDDOWN(A1,)としないとだめみたいですが。
283279:2009/05/17(日) 20:35:48
>>281
そうみたいね。すまん。
>>282見ると切り捨てにはなんでもTRUNCでいけそうだね。
知らんかったわ。
284名無しさん@そうだ選挙にいこう:2009/05/17(日) 20:57:54
>>282
本来の切り捨て関数はTRUNC
四捨五入関数のROUNDのバリエーションとして追加されたのがROUNDDOWN

こういった関数をExcelで初めて使う人にはROUND系の方が直感的に分かりやすいだろうが
他の言語やソフトではTRUNCが主流なので、互換性などの観点からこれも外せず
結果同じ機能の関数が複数あるという状態になってる

言語やソフトによってはROUNDDOWNがExcelのINTと同じで-5.5→-6なものもあるが
Excelに関してはTRUNCが第二引数省略可能な以外は同じ

別に状況に応じて使い分けろとかそういう意味で2つ用意されてるわけではなく
「切り捨て関数=TRUNC」という予備知識を持ってExcel使い始める人向けと
呼び知識無しの人には「丸め=ROUND**」と覚えやすいようにと2つ用意されてるだけ
285282:2009/05/17(日) 21:07:58
>>284
ありがとうございます。参考になりました。
これからはTRUNC一本でいこうと思います。
286名無しさん@そうだ選挙にいこう:2009/05/17(日) 21:11:18
>>284ほどのまともなレスを見たのは何年ぶりだろう…
287名無しさん@そうだ選挙にいこう:2009/05/17(日) 21:16:06
Excelと関係ないけど、消費税を切り上げでもらう店とかってあるの?
288名無しさん@そうだ選挙にいこう:2009/05/17(日) 21:53:22
>>287
最近は内税が主流だから実際どうなってるかはわからんよね。
289名無しさん@そうだ選挙にいこう:2009/05/17(日) 21:59:33
本体価格と税が書いてあるから計算すればわかるだろ あほか
290名無しさん@そうだ選挙にいこう:2009/05/17(日) 22:18:13
>>289から最後の3文字(と、その一つ前の空白)をRIGHT関数を用いて消去する方法を教えてください。
291名無しさん@そうだ選挙にいこう:2009/05/17(日) 22:19:18
それで何品も買った時誤差がでたりして
こまけーこたーどうでもいいが。
292名無しさん@そうだ選挙にいこう:2009/05/17(日) 22:31:44
>>278
>定数が2つあるのなら、数式は2個必要というのは納得がいくのですが

それ本当に納得してる?
293名無しさん@そうだ選挙にいこう:2009/05/17(日) 22:38:36
>>290
むりやりいれてみますた(>>289=A1)
=IF(RIGHT(A1,4)=" あほか",LEFT(A1,24),A1)
294名無しさん@そうだ選挙にいこう:2009/05/17(日) 22:40:36
>>292
中学卒業レベルだろうが
295名無しさん@そうだ選挙にいこう:2009/05/17(日) 22:59:15
>>294
君は高校生?
296名無しさん@そうだ選挙にいこう:2009/05/18(月) 00:08:51
>>295
あなたは小学生?
297名無しさん@そうだ選挙にいこう:2009/05/18(月) 00:35:49
>>296
やれやれ。困ったやつだな。
君のいう数式ってなんだ?
私は>>255の双曲線関数のつもりで話しているんだが。
298名無しさん@そうだ選挙にいこう:2009/05/18(月) 00:37:35
やれやれ
299名無しさん@そうだ選挙にいこう:2009/05/18(月) 00:39:12
>>296
すまん。訂正。

私は>>254の双曲線関数のつもりで話しているんだが。
300名無しさん@そうだ選挙にいこう:2009/05/18(月) 00:39:59
未知数が2つの場合式が2つないと答えが決まらないというのは正しいが、ここでは別だろ。
予測値と実測値との差の二乗の和が最小になる、という条件が加わってるわけだし。
簡単な具体例で考えてみればわかる。
1次直線近似の場合、傾きとy切片の2つの未知数があるわけだが、答えは定まるだろう。
「式」はy=ax+bの一つだけだ。
301名無しさん@そうだ選挙にいこう:2009/05/18(月) 00:46:33
>>300
まともな人がいて安心した。
小学生呼ばわりされて気分悪かったよ。
302名無しさん@そうだ選挙にいこう:2009/05/18(月) 00:59:06
数学の話はスレ違いだから止めようぜ。
荒れる。
303名無しさん@そうだ選挙にいこう:2009/05/18(月) 01:02:57
>>302
ソルバーの話だよ。
エクセルの話じゃないか。
304名無しさん@そうだ選挙にいこう:2009/05/18(月) 01:04:34
>>287
店じゃないけど、ウチの会社だと購入品は1の位で切り上げ、販売は四捨五入。
例えば1個7円63銭のものを1ロットで1234個買うとき、注文書も請求書も\9,416とか。

305名無しさん@そうだ選挙にいこう:2009/05/18(月) 01:06:56
すまんw

x 1の位で
o 小数点第一位で
306名無しさん@そうだ選挙にいこう:2009/05/18(月) 01:09:58
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

A  B  C  D の各列を、次のように並び替えるにはどうすればいいですか?

    ↓

D  B  A  C
307名無しさん@そうだ選挙にいこう:2009/05/18(月) 01:21:13
手動操作をマクロの自動記録でやれば?
308名無しさん@そうだ選挙にいこう:2009/05/18(月) 01:46:06
列は数値で扱えるから
列の対象範囲さえ定義できればどうにでもなる
309306:2009/05/18(月) 02:20:59
>>307
手動でやる場合、どうすればいい?
A列の左に2列挿入してDとBとCを移動?
書いたのは一例で、もっと沢山あるんだけど・・・

>>308
具体的にお願いします。
310名無しさん@そうだ選挙にいこう:2009/05/18(月) 02:29:32
>>309
普通にA列を選択、切り取り→B列の後ろに挿入→
D列を選択、切り取り→B列の前に挿入とかやればいいんでは?
マクロ使えるけど列の移動やコピーはできない人?
沢山あるって列の移動に何か法則がある?
311名無しさん@そうだ選挙にいこう:2009/05/18(月) 02:37:40
>>309
データ→並び替え→オプションを押下→方向を「列単位」で列のソートができるから
1行目に列ソートしたい順に連番ふれば。
312名無しさん@そうだ選挙にいこう:2009/05/18(月) 02:40:49
列選択してShift+ドラッグで移動するのが簡単
313名無しさん@そうだ選挙にいこう:2009/05/18(月) 06:21:09
>>312
kwsk 2003対応してる?
314名無しさん@そうだ選挙にいこう:2009/05/18(月) 08:39:03
TRUNCとROUNDDOWNはどっちが計算速いの?
同じなのかな?
315名無しさん@そうだ選挙にいこう:2009/05/18(月) 08:47:44
>>313
聞くまでもねーだろ・・試せば分かることだ。
つーか基本操作なんてネットで調べればいくらでも出てくるだろ。
316名無しさん@そうだ選挙にいこう:2009/05/18(月) 08:48:36
おそらくTRUCの方が早いだろうが、ROUNDDOWNは見た人が理解しやすいっていう利点はあると思うよ。
特にプログラムまではわからないけど、Excelの関数ぐらいならって人にはね。

>>845を批判してるわけじゃない
アンチテーゼだな。
317名無しさん@そうだ選挙にいこう:2009/05/18(月) 08:59:56
>>315
後出し野郎に教えてやらなくてもw
318名無しさん@そうだ選挙にいこう:2009/05/18(月) 12:14:12
>>845に期待
319名無しさん@そうだ選挙にいこう:2009/05/18(月) 15:01:46
警告メッセージに「今後このメッセージを表示しない」チェックがついたものが多いですが、
これをいったん表示しない設定にした後で、元に戻す(毎回表示する)方法ってあるのでしょうか?
320名無しさん@そうだ選挙にいこう:2009/05/18(月) 17:07:01
ある
それぞれ
ぐぐれ
321名無しさん@そうだ選挙にいこう:2009/05/18(月) 18:31:48
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

平均値170、標準偏差12であるような正規分布に従うと考えられるデータを200個生成し、
生成したデータについて区間幅を2として、ヒストグラムを作ろうとしています。
また、度数分布を重ねてグラフを描きたいです。

生成データは=NORMINV(RAND(),$B$4,$B$5)というふうに書いて200個出し
度数は=FREQUENCY(E4:E203,F4:F203)というふうに書きました。

正規分布曲線グラフの作り方を検索して調べてみた結果、
=1/(SQRT(2*PI())*$C$3)*EXP((-1)*(B6-$B$3)^2/(2*$C$3^2))
というふうに書けばいいようなのですが、うまく曲線になるような値が出ず、グラフが書けません。
何かアドバイスがほしいです。宜しく御願いします。
322名無しさん@そうだ選挙にいこう:2009/05/18(月) 21:19:56
>>321
度数を確率密度に変換してやれば、度数分布と正規分布をうまく並べて表示できるんじゃないかな。
323名無しさん@そうだ選挙にいこう:2009/05/18(月) 22:08:56
こんばんは、質問させてください。

例えば、20、50、34、98、5、27、、、、、、のように数字がならんでいるとして。。。

統計をとりたいのです。20の次は○○が何回で、○○が何回で、、、というような感じで。
全体からみた % でもOKです。

なにかよい方法はないでしょうか??
すみませんがどうぞよろしくお願いします。
324名無しさん@そうだ選挙にいこう:2009/05/18(月) 22:29:53
>323
数字の並びはセルに格納(A1:A1000の間とか)できますか?
数字は何個ぐらいありますか?
それから、レスbPからのテンプレートは読みましたか? 情報の後出しは回答もらえませんよ。
325名無しさん@そうだ選挙にいこう:2009/05/18(月) 22:39:28
苦手な分野なら無理に回答しようとしなくていいのになぁ
326名無しさん@そうだ選挙にいこう:2009/05/18(月) 22:58:05
シートの下限が65000行になってしまい使いにくくなってしまったのですが
元に戻すにはどうすればいいのでしょうか?
使用Excelは2002です。

行単位で下限まで関数を設定したところ6万行設定になってしまったので
下限まで伸びていた関数を削除したのですが、
シートの下限が6万行のままで元に戻らなくなりました。

お手数ですが対処方法をご教授下さい。
327名無しさん@そうだ選挙にいこう:2009/05/18(月) 23:07:58
>>326
50000行にしたいとするなら、50000行-65536行を選択して行削除、1行目に戻して保存、開く
それか1-50000行を新しいブックにコピペ
328名無しさん@そうだ選挙にいこう:2009/05/18(月) 23:08:12
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード    】エクセル シート 結合 解除 マクロ

質問
エクセルの入力フォーマットがあります
元となる入力フォーマットと入力されたフォーマットを比較

1.記入フォーマットのセル結合が解除されてないかチェック
2.行・列が追加されてないかチェック
3.フォーマットが変ってたらNG表示(記入欄の文字入力はOK)

シートを保護しろと言われると思いますが
VBAでこのような確認は可能ですか?
329名無しさん@そうだ選挙にいこう:2009/05/18(月) 23:12:04
>>327
削除はやったのですが65536行のままでした。

新しいワークシートにコピペしてみたのですがセルの横幅がデフォルトのままで
整理がとても大変そうです。

新しいワークシートにコピー元のセル横幅設定もこぴーするにはどうすればいいでしょうか?
330名無しさん@そうだ選挙にいこう:2009/05/18(月) 23:12:46
>>328
できる
331名無しさん@そうだ選挙にいこう:2009/05/18(月) 23:13:43
>>329
形式を選択して貼り付け→列幅
332名無しさん@そうだ選挙にいこう:2009/05/18(月) 23:14:46
>>323
A1-A100に並んでるとする。で、1-100とする
B1に1、B2に2・・と入力(オートフイル)
C1=COUNTIF(A:A,B1)
舌にオートフィル
333名無しさん@そうだ選挙にいこう:2009/05/18(月) 23:18:45
>>328
結合の有無はこんな感じ
列行の挿入の有無は・・どこかのセル(E5とでもする)に"合計"とでも入力しておき、そのE5に"合計"が無かったらfalse・・みたいな感じかなぁ
なんか目印がないと難しいような
Sub Macro1()
' マクロ記録日 : 2009/5/18 ユーザー名 : 名前
If Range("A1").MergeCells = True Then
MsgBox "fff"
End If
End Sub
334かん:2009/05/18(月) 23:28:10
『ファイルが読み取れない』

質問内容・・・


EXCEL2000です。WindowsXP。

EXCELファイルを読み出して上書きしたり、名前を変えて保存したファイルが読み取れません。

エラー報告には以下のファイルが含まれます。

C:DOCUMEN~\(ユーザー名)LOCALS~1Temp\887f_appcompat.txt

よろしくお願いします。

335名無しさん@そうだ選挙にいこう:2009/05/18(月) 23:29:33
>>333
ton
これを参考にちょっとがんばってみる
336名無しさん@そうだ選挙にいこう:2009/05/18(月) 23:32:06
NETWORKDAYS関数で土曜をカウントさせない
方法ってありますか?
337名無しさん@そうだ選挙にいこう:2009/05/18(月) 23:40:19
>>334
そのファイルをどこかにアップするか内容をここに貼り付けてくれ
君以外のPCには最初から入ってるわけじやない。そのファイルはエラーがでてから作られるんだよ
多分再インストールが必要
>>336
ヒント:NETWORKDAYS関数+土曜日
・・が基本なんだと思うけど、
土曜日と祝日の重なりでどう処理するか等、処理が貴方の出したい答えにより答えが代わるので、
式は今のところ出せない
338名無しさん@そうだ選挙にいこう:2009/05/18(月) 23:45:58
>>323
重複しないデータが32,500以内ならピボット使うのがいいと思う。
339名無しさん@そうだ選挙にいこう:2009/05/19(火) 00:58:44
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 保存 マクロ シート

マクロを使ってシートのみを保存したいのですが。
それで保存データは数式以外を保存して、つまり開いたときにセルの参照式とかが入ってないようにしたいんです。(見た目は一緒)
どうすればよいでしょうか?

340名無しさん@そうだ選挙にいこう:2009/05/19(火) 01:04:26
>>339
元の数式入ったシートもマクロファイルに残したうえで
値のみのシートを作成して保存するということ?
341名無しさん@そうだ選挙にいこう:2009/05/19(火) 01:05:14
>>339
一番簡単なのは、ブックを新規作成して、そこへ形式を選択して貼り付け→値
してから保存
342339:2009/05/19(火) 01:09:52
すいません、追加で、デスクトップ上の「保存」フォルダに保存でお願いします。
もしフォルダがなければデスクトップにフォルダを作って保存するということで。
それと、保存ファイル名はセルA1とセルA2の値をくっつけて保存するということはできますでしょうか?
大変勝手な要望ですみません。よろしくお願いします。
343339:2009/05/19(火) 01:15:04
すいません。書き込んでる間にレスいただいてました…
>>340
ありがとうございます。
値と表示の形式で、つまり見た目が一緒にしたいのです。
セルの大きさとかフォントとか。

>>341
ありがとうございます。
形式を選択して値保存の場合、色とか何とかが違ってしまいます。
方法はないでしょうか?
344名無しさん@そうだ選挙にいこう:2009/05/19(火) 01:15:32
>>342
えーと、ここは質問スレなのでマクロの作成依頼は受け付けてませんのです
345名無しさん@そうだ選挙にいこう:2009/05/19(火) 01:17:00
>>343
まず普通にシート全体をコピーしてから、もういちど値だけをコピーすれば
数式が消えて見た目はそのままのシートが作れます
346339:2009/05/19(火) 01:21:49
>>345
ありがとうございます!
そんな方法があったのですね?
ちょっとやってみます。

>>344
すいません。申し訳ありません。
でも何とかしたいのです。
ヒントだけでもお願いします。
347名無しさん@そうだ選挙にいこう:2009/05/19(火) 01:22:52
>>344
答えられないならスルーしろ
無駄にスレ消費するな
348名無しさん@そうだ選挙にいこう:2009/05/19(火) 01:26:48
(1)ファイル名=A1&A2 を指定する
(2)シートをコピーする
(3)(2)で作成したシート全体をコピーして値の貼り付け
(4)(3)のシートを新規ブックに移動
(5)デスクトップ上に「保存」フォルダがなければ作成
(6)(4)で作成したファイルを(5)のフォルダに保存。ファイル名は(1)

ということかな。
349339:2009/05/19(火) 01:32:52
>>348
すばらしい!そのとおりです!
なんとかなりますでしょうか?
ぜひよろしくお願いします!
350名無しさん@そうだ選挙にいこう:2009/05/19(火) 01:39:38
>>349
ほれ
Sub Macro1()
  Cells.Copy
  Workbooks.Add
  ActiveSheet.Paste
  Cells.PasteSpecial Paste:=xlPasteValues
  Desktop = Environ("USERPROFILE") & "\デスクトップ"
  On Error Resume Next
  MkDir Desktop & "\保存"
  On Error GoTo 0
  ChDir Desktop & "\保存"
  ActiveWorkbook.SaveAs Filename:=Range("A1").Value & Range("A2").Value
End Sub
351名無しさん@そうだ選挙にいこう:2009/05/19(火) 01:41:23
この手の聞き方するやつは一度でも親切にすると際限なく仕様の追加を要求してくるから気をつけろ
352339:2009/05/19(火) 01:43:52
>>350

神!

ありがとうございます!
どうしようかとおもってました。涙
このご恩は忘れません!

353名無しさん@そうだ選挙にいこう:2009/05/19(火) 01:46:33
複数シートを一括処理するならともかく、これだけなら手作業でやっても
大したことない操作に見えるんだが何を困っていたんだろう?
354名無しさん@そうだ選挙にいこう:2009/05/19(火) 01:49:31
注意点
A1やA2にファイル名に使えない文字が入っていたらたぶんエラーで止まる
デスクトップのフォルダ名が「デスクトップ」なのは日本語版WindowsのXPのみなので、
あとでVistaやWin7に移行したら使えなくなる
355名無しさん@そうだ選挙にいこう:2009/05/19(火) 01:50:21
>>350
Environ("USERPROFILE") って知らんかった。超便利。
参考になりました。横からありがとう。
356名無しさん@そうだ選挙にいこう:2009/05/19(火) 01:50:52
本当は、単に数式を消したかっただけじゃない?
名前を付けて保存はあとで思い付いただけで。
357名無しさん@そうだ選挙にいこう:2009/05/19(火) 01:56:04
デスクトップに「保存」という名前のファイルがあった場合もエラーで止まるな
そんなバカなと思うかも知れないけど、素人ってのは本当にカオスなことを平気でやるから
油断できん
358名無しさん@そうだ選挙にいこう:2009/05/19(火) 01:57:31
すでに同名のファイルがあって編集中も危ない
359339:2009/05/19(火) 02:49:38
339です。
おかげさまでうまくいきました。
エラーでとまる危険性も理解できましたので注意しておきます。

あと
ActiveWorkbook.SaveAs Filename:=Range("A1").Value & Range("A2").Value
のあと、新しく追加したワークブックが開きっぱなしになるので、新しいワークブックだけを閉じるにはどのようにしたらよいでしょうか。
いろいろ試してみましたがうまくいきません。
よろしくお願いします。
360名無しさん@そうだ選挙にいこう:2009/05/19(火) 02:59:23
>>359
Google [ VBA 閉じる ] 「検索」
361名無しさん@そうだ選挙にいこう:2009/05/19(火) 03:20:08
本を読んだり、検索しても答えが見つからず、行き詰まってしまいました。
ずぶずぶの素人ですが質問させて下さい。
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否 難しいのでなるべく避けたい
【5 検索キーワード     】 Excel 抽出 並び替え など

ねこ 8:00 12:00 ×× 15:00
イヌ ×× ×× 13:00 ××

このようなデータ(×は空欄セル)を、

ねこ  8:00
ねこ 12:00
イヌ 13:00
ねこ 15:00

別シートにこのように並べ替えたいです。
「ねこ」3回の行を増やすのと、データの並び替えで
できるような気がするのですがやり方が分かりません。
種類が増えたり、時間が増える場合もあります。
なにか簡単なやり方はないでしょうか?

VBA打ち込みとか複雑なマクロが必要なら諦めます・・・

362339:2009/05/19(火) 04:08:42
>>360
新しく追加したブックを指定するにはどうしたらいいでしょうか?
363名無しさん@そうだ選挙にいこう:2009/05/19(火) 06:00:28
>>362

>>351参照
364名無しさん@そうだ選挙にいこう:2009/05/19(火) 07:45:33
>>361
シート1にその表があるとする
シート2の
A1=IF(INDIRECT("Sheet1!r1c"&ROW()+1,0)>INDIRECT("Sheet1!r2c"&ROW()+1,0),"ねこ","イヌ")
B1=INDIRECT("Sheet1!r1c"&ROW()+1,0)+INDIRECT("Sheet1!r2c"&ROW()+1,0)
後は舌にオートフィル
同じ数字が来ない+いぬねこ二種類しかないことが前提だけど大丈夫かねー?
365名無しさん@そうだ選挙にいこう:2009/05/19(火) 12:27:02
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 表示形式 変更

セルの表示形式の質問です。
例:3,259,821という数字を元の数字を変更せずに3,260という様に、
百の位を四捨五入した表示したいのです。
セルの書式設定→ユーザー定義で『♯,』にすると3260という桁区切りの無い表示になり、
桁区切りスタイルのボタンを使うとまた3,259,821の表示に戻ってしまいます。

宜しくお願いします。
(ぶっちゃけ、上の例はkg表示をd表示にするという作業です)
366名無しさん@そうだ選挙にいこう:2009/05/19(火) 12:41:10
>>365
「#,###」でいけなかったけな?
367名無しさん@そうだ選挙にいこう:2009/05/19(火) 13:06:12
>>365-366
「#,」じゃない?
368名無しさん@そうだ選挙にいこう:2009/05/19(火) 13:40:08
一個抜けてた。すまん。「#,###,」でいけんじゃない?
あくまで表示変わるだけだから集計するときには気をつけないといかんけど
369名無しさん@そうだ選挙にいこう:2009/05/19(火) 14:25:26
あそうか「#,」だけじゃカンマ区切りしてくれないな。
370名無しさん@そうだ選挙にいこう:2009/05/19(火) 14:28:07
>>368
ありがとうございます!できました。

ちょっと時間が差し迫っていたので、隣にセルを追加して3,259,821/1000の数式を入れて
計算された値(3259.821)をコピー→形式を選択して貼り付け(値)でしのぎました。
今後も同様の作業が発生するのでその時は使わせてもらいます。
371名無しさん@そうだ選挙にいこう:2009/05/19(火) 19:29:53
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】
入力規則 ホイールスクロール プルダウン
入力規則 ホイールスクロール プルダウンメニュー
エクセル プルダウンメニュー スクロールできない
エクセル プルダウンメニュー スクロールしたい
プルダウンメニュー スクロール
プルダウンメニュー ホイールスクロール -VBA



エクセルの入力規則で設置出来るプルダウンメニューについての質問です。
およそ40以上にもわたる項目をプルダウンメニューで選択出来たことには出来たのですが、
それをマウスのホイールでスクロールさせる事が出来ません。

この操作はエクセルで可能でしょうか?
372名無しさん@そうだ選挙にいこう:2009/05/19(火) 19:56:45
>>362
ActiveWorkbook.Close
373名無しさん@そうだ選挙にいこう:2009/05/19(火) 20:08:18
>>371
ホイールはわからないけどAlt+↓でリスト開いてPageDown、PageUp、End、Homeを使うとか。
374名無しさん@そうだ選挙にいこう:2009/05/19(火) 20:24:55
>>373
おお・・・・こういう方法もあるんですね。ありがとうございます。
自分で操作する時の快適な操作方法は理解しました。目から鱗です

ただ、今回作成するエクセルは不特定多数の方に触れるものでして
その方々の中には、PC操作に不慣れな方もいるものと想定しています。
その上で、キーボードではなく直感的に操作出来る「マウス」によるスクロール方法を知りたく思い、
こうして質問させて頂いた次第です。

エクセルの設定を何かしら変更する必要があるのでしょうか・・・・
それらしき設定が見つからず困惑しています。

非常に細かく、こだわりに近いものが理由で本当にすみません。
375名無しさん@そうだ選挙にいこう:2009/05/19(火) 22:39:57
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000、2002、2003
【3 VBAが使えるか    .】 ちょっとだけ

社内イントラネットにあるサーバにブックを置いて、そこでしか動作させない
ようにしたいのですが、どのようなマクロを書けば良いでしょうか?
サーバにあるフォルダは、V:\eigyo\3G\月報\2009\ です。

各ブックを集計したりするので、ボタンをクリックすると
ブックが置かれたところを参照して、V:\eigyo\3G\月報\2009\ なら
そのまま継続し、違うなら Exit Sub みたいなものです。
376名無しさん@そうだ選挙にいこう:2009/05/19(火) 22:51:14
>>375
ネットワークドライブでうまくいくかどうかはわからんが、こんな感じか

Sub aaa()
  path1 = "V:\eigyo\3G\月報\2009\"
  len1 = Len(path1)
  If Left(ThisWorkbook.FullName, len1) <> path1 Then Exit Sub
End Sub
377名無しさん@そうだ選挙にいこう:2009/05/19(火) 23:27:50
>>376
ありがd!!
明日、試してみます。
378名無しさん@そうだ選挙にいこう:2009/05/20(水) 02:10:22
>>364
レスありがとうございます。
試してみます!
379名無しさん@そうだ選挙にいこう:2009/05/20(水) 10:51:06
>>361
ピボットテーブルがあれば何でもできるぜ。
ってピボット厨が言い出しそうだが実際これは出来るんだよな。
書かんけど。
380名無しさん@そうだ選挙にいこう:2009/05/20(水) 14:16:41
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

ファイルがリンクされたハイパーリンクをクリックすると、
通常ですと、対応したソフトでファイルを開こうとしてしまいますが、
ファイルをダウンロードさせる様にはできないでしょうか?

よろしくお願いします。
381名無しさん@そうだ選挙にいこう:2009/05/20(水) 15:41:08
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 関数 連続

A1  B1  C1 
50円 20個 1000円

上記の状態でC1に=SUM(A1*B1)の掛算の数式を入力するのですが、
この掛算を入力するCのセルが3万件位あります。

オートフィルで連続データをコピーする以外に
一括で(3万件の位置までマウスでカーソルをドラッグせずに)
計算させる簡単な方法はありますでしょうか?
(セルCの1件目の位置から3万件目までを選択して関数を入力?)
382名無しさん@そうだ選挙にいこう:2009/05/20(水) 15:44:41
>>381
1.C1を選択してコピー
2.名前ボックスにC2:C30000と入力
3.貼り付け
383名無しさん@そうだ選挙にいこう:2009/05/20(水) 15:56:35
>>382
ありがとうございます。
余りにも簡単で驚きました。精進します。
384名無しさん@そうだ選挙にいこう:2009/05/20(水) 16:05:54
>>374
マイクロソフトによればそういう仕様だそうです。
http://support.microsoft.com/kb/418008/ja

仮にVBAか何か使って実現出来たとしても、Excelの標準じゃない操作を
PC操作に不慣れな人にさせるのは逆に弊害となる可能性が大きいよ。

もし大量のデータを楽に効率よく入力させたいという目的であれば
リストから選ぶ方法よりも、項目全てにコード番号を割り振っておいて
コード番号で入力させるってやり方の方がいいと思うけどね。
385名無しさん@そうだ選挙にいこう:2009/05/20(水) 16:17:31
>>381
なんで=A1*B1じゃなくて=SUM(A1*B1)なのか教えてくれる?
深いわけがあると思うので、そのわけを知りたい。
386名無しさん@そうだ選挙にいこう:2009/05/20(水) 16:26:13
なんかねちっこいなあ・・・
普通に「=A1*B1だけでいいんだよ」でいいじゃねえか・・・
387名無しさん@そうだ選挙にいこう:2009/05/20(水) 18:28:37
俺も似たような作業してるが、縦方向の集計もやってると
SUM関数を入力する癖がついているんじゃないかと予想してみる
388375:2009/05/20(水) 18:57:30
>>376
会社で試してきました。
問題なく動作しました。
ありがとですた。
389375:2009/05/20(水) 19:16:23
追加質問です。

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000、2002、2003
【3 VBAが使えるか    .】 ちょっとだけ

他のブックから必要な列だけ既存のデータに追加でコピペしたとき、
A列にデータが無いときがあります。オートフィルタが利かなくなるので、
A列の空白セルをダミー(全角スペース)で埋めたいのですが、
一気に貼り付ける方法があるでしょうか?

AA = Range("A65536").End(xlUp).Row
Do While Cells(AA + 1, 2) <> ""
 Cells(AA, 1) = " " '全角スペース
 AA = AA + 1
Loop
390名無しさん@そうだ選挙にいこう:2009/05/20(水) 19:56:32
>>389
Sub a()
Range("a:a") = " "
End Sub
391名無しさん@そうだ選挙にいこう:2009/05/20(水) 19:58:43
追記
B1をA1にコピーしたいときは
Range("a1")=range("b1")
って書き方が早いよ。マクロの記録だと出てこないけど、非常に簡潔で重要なテクニックと思う
392名無しさん@そうだ選挙にいこう:2009/05/20(水) 19:58:58
>>390
それだとA列全部に空白入るんじゃない?
Range("A1:A" & AA) = " "
かな。
393名無しさん@そうだ選挙にいこう:2009/05/20(水) 20:02:48
>>389
>A列にデータが無いときがあります。オートフィルタが利かなくなるので、
データ範囲を全て選択してからオートフィルタすればデータ無くても利くんじゃね?
394名無しさん@そうだ選挙にいこう:2009/05/20(水) 20:04:34
>>393
問題よく見てませんでしたゴメンナサイ
395名無しさん@そうだ選挙にいこう:2009/05/20(水) 20:07:19
レス番号も間違えたゴメンナサイ
396名無しさん@そうだ選挙にいこう:2009/05/20(水) 20:08:29
>>391
[a1] = [b1] でもできる。
ところでこの簡略式って変数使えるの?教えてエロイ人。
397名無しさん@そうだ選挙にいこう:2009/05/20(水) 21:21:25
>>396
使えなかったはず
398名無しさん@そうだ選挙にいこう:2009/05/20(水) 21:33:42
>>397
thx
使えないのか。だったら Cells(i, 1) とか Range("A" & r) のが使いやすいな。
399名無しさん@そうだ選挙にいこう:2009/05/20(水) 21:49:25
変数使いたいときはevalute関数使えばいけんじゃなかったけっかな
そうすると書くの面倒だけど
400名無しさん@そうだ選挙にいこう:2009/05/20(水) 22:05:37
Excel2007で、
オートシェイプを描くと最初は紺の塗りつぶしで出てきますが、
いきなり塗りつぶしなしで描く方法はありますか?
401名無しさん@そうだ選挙にいこう:2009/05/20(水) 22:07:01
2003だと右クリのオートシェイプの規定値に設定、で設定できる
402名無しさん@そうだ選挙にいこう:2009/05/20(水) 22:34:04
a 1 10
b 2 20
c 3 30

上記のような表で、bの合計値(=22)を求める方法を教えて下さい。
※予め合計値があり、それをvlookupで取得するのではんく、
  検索条件に該当する行の合計値を取得したいです。
403名無しさん@そうだ選挙にいこう:2009/05/20(水) 22:43:29
>>402
=VLOOKUP("b",A1:C3,2)+VLOOKUP("b",A1:C3,3)
404名無しさん@そうだ選挙にいこう:2009/05/20(水) 22:56:56
>>403
やっぱりそれしかないですか・・・
列数が多いと式が長くなる・・・
405名無しさん@そうだ選挙にいこう:2009/05/20(水) 23:08:04
>>402
=SUM(INDEX(B1:C3,MATCH("b",A1:A3,0),0))
406名無しさん@そうだ選挙にいこう:2009/05/20(水) 23:18:28
>>405
=SUM(INDEX(B1:Z3,MATCH("b",A1:A3,0),0))
407405:2009/05/20(水) 23:21:54
>>406
大変参考になりました。
なるほどB1:Z3とするんですか。
408名無しさん@そうだ選挙にいこう:2009/05/20(水) 23:23:27
横から質問なんだけど
>>405のINDEXを見ると
INDEX(B1:C3,2,0)
つまり列を0列目に指定すると、全ての列ってことになるの?
409名無しさん@そうだ選挙にいこう:2009/05/20(水) 23:25:09
>>405-406
あざーっす
sumproductで自己解決してましたが、こんな方法もあるんですね
INDEX関数初めて見ました
=SUMPRODUCT((A1:A3="b")*(B1:C3))
410名無しさん@そうだ選挙にいこう:2009/05/20(水) 23:26:00
>>408
全ての列じゃないよ。
B列とC列だけ。
411名無しさん@そうだ選挙にいこう:2009/05/20(水) 23:31:09
>>409
SUMPRODUCTの式と>>405は違うよ。
"b"が2個あるとき違う。
先に聞こうかと思ってたんだけど、>>403と同じ答えの式を書いた。
412名無しさん@そうだ選挙にいこう:2009/05/20(水) 23:34:27
>>410
ああ、そうか
範囲内の全ての二行目ってことでok?
ヘルプ見たけど範囲外だとエラーってかいてるんだけどな
413名無しさん@そうだ選挙にいこう:2009/05/20(水) 23:38:38
>>412
範囲内のすべての2行目でOKだよ。
414名無しさん@そうだ選挙にいこう:2009/05/20(水) 23:41:52
>>413
ありがと!
415名無しさん@そうだ選挙にいこう:2009/05/21(木) 02:39:02
Excel2003でマクロセキュリティタブそのものを非表示に出来る?

コントロールパネルの画面をレジストリで禁止するみたいに
416名無しさん@そうだ選挙にいこう:2009/05/21(木) 03:49:45
>>415
普通に売ってるバージョンだとたぶんできないと思う。
企業向けのOfficeパッケージだとセキュリティ関係の設定変更を禁止できるんだけど。
417名無しさん@そうだ選挙にいこう:2009/05/21(木) 04:50:05
質問お願いいたします。

エクセルのシート4枚分を、A4用紙1枚に割付印刷する方法を
教えていただけないでしょうか?
418名無しさん@そうだ選挙にいこう:2009/05/21(木) 06:15:23
>>417
プリンタのプロパティで割り付け印刷を選んでページ数を4
機種によってはできない
419名無しさん@そうだ選挙にいこう:2009/05/21(木) 11:51:43
XPのexcel2003です。
マクロなどは全く使えません。

顧客番号をクリックすると、ワードで作った書類が開くようにハイパーリンクしていました。
最近まで問題なく開いていたのですが、突然「指定されたファイルを開く事ができません」と
表示されて開く事ができなくなりました。

もう一度ハイパーリンクしたら開けたのですが、一度エクセルを閉じて再度開くと、また
同じメッセージが出て開けなくなりました。

なぜでしょうか?
よろしくお願いします。
420名無しさん@そうだ選挙にいこう:2009/05/21(木) 17:24:14
表を作ってそれぞれにセルに数値を入力していって
最後にまとめて桁区切りをクリックしてますが、最初から
桁が区切れるようにできないでしょうか?
421名無しさん@そうだ選挙にいこう:2009/05/21(木) 18:18:48
>>420
表を作り終わって数値の入力前に、表全体を選択した後
右クリック「セルの書式設定」→「表示形式」→「数値」→
「桁区切りを使用する」にチェック。
422名無しさん@そうだ選挙にいこう:2009/05/21(木) 20:15:57
【1 OSの種類】 WindowsXP
【2 Excelのバージョン】 Excel2000
【3 VBAが使えるか】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード】 EXCEL セル 行 列 一致

   1月 2月 3月 4月・・・・12月
1日 0.8 1.5  3.9  1.1   10.9
2日 2.4 2.0  6.3  10.5   7.2
          ・
          ・
31日 1.9 - 34.5   -    11.6


といった感じに、行は日にち、列は月にして計算式では計算できない係数を入力している表があります。
4月1日と入力すると別なセルにその日の値(この場合は1.1)が表示されるようにしたいのですが、
どのようにすれば良いのでしょうか?
月と日付は別々のセルに入力してあり、ドロップダウンリストから選ぶ様になっています。

A1のセルで選んだ値(月)とA2のセルで選んだ値(日にち)に合うセルを別途作ってある表から抜き出す方法
と表現すれば良いのでしょうか・・・
423422:2009/05/21(木) 20:19:23
列のみ(又は行のみ)一致するセルを表示させることは出来るのですが、
両方の条件に一致するセルを教示させるのが出来ないんです・・・
424名無しさん@そうだ選挙にいこう:2009/05/21(木) 20:30:02
**A*
E***
*D**
***A

のような表で、各行のE列にA〜Dを検索してアルファベットを入れたいのですがいい方法を教えてください。おねがいします。

(各行にアルファベットは1つずつあります。)
425名無しさん@そうだ選挙にいこう:2009/05/21(木) 20:31:49
意味がわからん
AがあったらE列にAを入れるのか
426名無しさん@そうだ選挙にいこう:2009/05/21(木) 20:37:27
>>422 vlookup または index
427422:2009/05/21(木) 20:38:40
1月2月3月・・・12月、1日2日3日・・・31日となっていますが、
ユーザー定義で”月”や”日”と表示するようにしています。
なのでセル内は数字のみとなっています。
428名無しさん@そうだ選挙にいこう:2009/05/21(木) 20:40:25
>>423
=INDEX($A$1:$M$32,MATCH("1日",A:A,0),MATCH("4月",$A$1:$M$1,0))
↑$A$1:$M$32 の部分は元のデータ範囲
式では "1日" "4月" と入れてあるけどどっかのセルに値入れてそれを引っ張ってくればよい。

たとえばA1に4/1と入れた場合は
=INDEX($A$1:$M$32,MATCH(DAY(A1)&"日",A:A,0),MATCH(MONTH(A1)&"月",$A$1:$M$1,0))
429名無しさん@そうだ選挙にいこう:2009/05/21(木) 20:43:03
すみません。 どなたかアドバイスしてほしいのですが、

OSビスタw
オフィス2007PCバンドル

1.オフィス2007のエクセルのバージョンってどこで見るのでしょうか?ヘルプ→バージョン見たなやつが見つからず困っています。

2.そのオフィス2007のエクセルでセルコピー→ペーストなどしたあと解除(セル周りの点滅解除)したいのにESCキーを押しても解除できません。なぜ?

3.やはりセル編集での右クリックコピーについてです。
前のエクセル2000ではセル選択後、右クリック→そのまま右クリックでもコピー・貼り付けを選択できたのですが、
これが デフォルトの左クリックでないとできないのでどうにもリズムが狂ってしまい困っています。
マウス設定ではなさそうだし何か手段はありますか?

とにかくESCでコピー解除できないのが面倒で面倒で気が狂いそうです。
430名無しさん@そうだ選挙にいこう:2009/05/21(木) 20:43:30
>>427
月や日が数値でA1に日付入れた場合($A$1:$M$32の部分は範囲)
=INDEX($A$1:$M$32,MATCH(DAY(A1),A:A,0),MATCH(MONTH(A1),$A$1:$M$1,0))
431名無しさん@そうだ選挙にいこう:2009/05/21(木) 20:46:50
4月1日の場合
=VLOOKUP(1+1,$A$1:$M$32.4+1,0)
432名無しさん@そうだ選挙にいこう:2009/05/21(木) 21:01:22
エクセルに
ある公式を書きたいのですが。
数式でよく使われるギリシャ文字等、、、、を使っても
それなりに見える方法などあるのですか?
433名無しさん@そうだ選挙にいこう:2009/05/21(木) 21:04:14
>>421
ありがとうございます
434422:2009/05/21(木) 21:06:59
>>430
ありがとうございます。出来ました♪
一致条件を2重にすることも出来たんですね。
ISERRORで入力値が無い場合は”0”と返す式まで入れてたのに・・・
理解不足でしたorz
435名無しさん@そうだ選挙にいこう:2009/05/21(木) 21:09:02
>>424
E1に
=A1&B1&C1&D1 なり
=CONCATENATE(A1,B1,C1,D1) なり
入れて文字結合したデータつくり、
F1に以下
=MID(E1,MIN(FIND({"A","B","C","D"},E1&"ABCD")),1)
436名無しさん@そうだ選挙にいこう:2009/05/21(木) 21:10:39
>>435
あ、元が半角アルファベットならこの式のABCDも半角にしてね。
437名無しさん@そうだ選挙にいこう:2009/05/21(木) 21:41:55
>>432
そういうのはExcelでは不可能
438名無しさん@そうだ選挙にいこう:2009/05/21(木) 21:46:39
>>429
Excel2007のバージョンを確認するには
Officeボタン → Excelのオプション → リソース → Microsoft Office 2007 のバージョン情報

試してみたけどEscキーで点線の枠はちゃんと消えた。
日本語入力の関係かも?
439名無しさん@そうだ選挙にいこう:2009/05/21(木) 21:48:42
>>419
先にワードを起動して新規空白文書が開いた状態で試してみ?
440名無しさん@そうだ選挙にいこう:2009/05/21(木) 21:50:40
>>436 おかげさまで解決しました ありがとうございました
441名無しさん@そうだ選挙にいこう:2009/05/21(木) 22:35:56
  国語  数学  英語
1 合格  不合格 合格
2 合格  再試験 合格
3 不合格 不合格 不合格
4 合格  合格  合格 
この場合例えば 合格(国語) 合格(数学) 合格(英語)の人
が何パーセントの確率でいる調べたいのですが
やり方が分かりませんよろしければ教えてくださいお願いします
442名無しさん@そうだ選挙にいこう:2009/05/21(木) 23:11:30
>>441
=COUNTIF(範囲,"合格")/COUNTA(範囲)
セルの書式設定をパーセンテージ設定で表示

でいけるのでは?
443名無しさん@そうだ選挙にいこう:2009/05/21(木) 23:43:16
>>424
F1=IF(ISERROR(AND(CODE(A1)>=65,CODE(A1)<=122)),"",A1)
F1〜I4にオートフィル
E1=F1&G1&H1&I1
E1〜E4までオートフィル
その代わり和歌のセルの一文字目がアルファベットだとダメー
444名無しさん@そうだ選挙にいこう:2009/05/22(金) 00:02:33
エクセルで質問です

  A
1 あ
2
3 い
4 う
5 い
6 い

こういう場合に、オートフィルを書けて空白を消した状態で
IF文で上下の文字列が同じなら真、違うなら偽を作ります。
オートフィルで2を消した場合でも、
IF(5=6,1,0)を上にコピーしていくと、2は飛ばされずに
計算されてしまうのですが、うまい具合に
3と1を計算式のコピーでうまい具合にIF文にしてもらえる方法は無いでしょうか?
445名無しさん@そうだ選挙にいこう:2009/05/22(金) 00:07:48
ある
446名無しさん@そうだ選挙にいこう:2009/05/22(金) 00:13:56
>>444
オートフィル後の表をコピーして貼り付けると、見えない部分を飛ばして貼り付けられるんだけど
それじゃだめかなぁ
447名無しさん@そうだ選挙にいこう:2009/05/22(金) 00:15:51
WindowsXP、Excel2000で質問です。

Userform1に、TextBox1とCmd_OKボタンをつくり、Range("B3")の値が"a"なら
パスワードを聞いてくるマクロを書きました。標準モジュールでUserForm1.Showを
出したあと、パスワードが合致したら標準モジュールに戻って、続けたいのですが
以下の●には何を書けば良いのでしょうか?


'フォームに書いたもの
Dim i As Long
Private Sub UserForm_Initialize()
 i = 1

End Sub

Private Sub Cmd_OK_Click()
 PWD = Me.TextBox1.Value
  If PWD = Range("B3").Value & "z" Then
   ●
  Else
   If i = 3 Then
    Unload Me
   Exit Sub
  End If
  MsgBox "パスワードが違います!"
  i = i + 1
  Me.TextBox1.SetFocus
 End If
End Sub
448447:2009/05/22(金) 00:16:51
'標準モジュールに書いたもの
Sub 途中でパスワード()
 BB = Range("B3")
 If BB = "a" Then
  'パスワードを聞く
  UserForm1.Show
 Else
  Exit Sub
 End If


End Sub
449名無しさん@そうだ選挙にいこう:2009/05/22(金) 00:27:07
>>444
>>446の言うように空白以外のセルでオートフィルして
可視範囲を別シートに貼り付けて計算するのが簡単だと思う。
それでなかったらVBAかな。
450名無しさん@そうだ選挙にいこう:2009/05/22(金) 00:40:07
>>448
Unload Me
451447:2009/05/22(金) 00:57:30
>>450
ありがとうございます。
452名無しさん@そうだ選挙にいこう:2009/05/22(金) 01:00:07
>>438ありがとうございます。
原因不明ですが、ESCで解除できるようになりました。

同時にエクスプローラーでフォルダなどのリネーム時にも解除できなかった点が解除できるようになったようなので、エクセルの問題ではなかったのかも知れません。 ありがとうございました。
453名無しさん@そうだ選挙にいこう:2009/05/22(金) 01:01:18
>>441
ピボットテーブル
454447:2009/05/22(金) 01:10:50
すみません、また質問です。

PWD = Me.TextBox1.Valueで得た値を、標準モジュールに戻って Msgbox PWD と
書いても何も表示されません。UserFormで変数に入れた値を引き継ぐことは出来ますか?

パスワードが違ってて、Me.TextBox1.SetFocus で戻ったら、TextBox1を
消去することは出来ますか?

パスワードを聞いてくるとき、右上の [X] 閉じるボタンを無効に出来ますか?
455447:2009/05/22(金) 01:12:05
x TextBox1を消去することは出来ますか?
o TextBox1に書いた文字を消去することは出来ますか?
456名無しさん@そうだ選挙にいこう:2009/05/22(金) 01:12:15

  ヽ、   _ノ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   `'ー '´
     ○
      O
       o
                               , ‐'''^^"'''ー、、
                     ._..-'" ̄ ̄フ′       `'‐、
                   ./     /            \
                  /       .!                |
                 。'i        !     r',ヽ       ,!
                 i'゙          |       ヾ'-'        .l
                  '、       , '、              ,l.
                  、     ,‐'  ヽ、          ,/
                    `'┬ ' ´     ヽ、      ノ ヽ 
                     ! l´r`---z   / イ `'ルナサ
                     ヽ 'ヽ___/    /レ
                     ´_\`‐    ,__,// /:___________
                   ,.r '    ー-`  '´ - ‐  ̄     'ー 、
                  ,/  _,.                      ヽ
                  ,レ' ´                i      l
                /           ,             ,l      l
               。'i            !     r',ヽ    l l       l
        ,、r;,         i'゙            !      ヾ'-'    l. l     l
    _,r'´、l.レ'、         '、          , '、          ,/ l     ,.!v-、,_
   l L.., }   !         ハ、     , ‐'  ヽ、       ノ  /!    /`,/_,l L,
   l゙l ヘ」/   l.      /  `''┬ ' ´     `'ー----- '´ ,/ l   /  !:イ、_ノ l、
457447:2009/05/22(金) 01:34:20
一部、自己解決

>TextBox1に書いた文字を消去することは出来ますか?
Me.TextBox1 = "" で対処できました。(正しいか否かは別として)


すんません、また明日来ます。
458名無しさん@そうだ選挙にいこう:2009/05/22(金) 01:39:51
>>454
標準モジュールに
Public PWD

パスワードが違ったら
Me.TextBox1.SetFocus
Me.TextBox1.Value = ""

×を無効にはできるけどそうするとUnload Me も効かなくなるし
APIいじるしかないのかなあ。
459名無しさん@そうだ選挙にいこう:2009/05/22(金) 01:42:59
460名無しさん@そうだ選挙にいこう:2009/05/22(金) 08:45:40
>>432
エクセルには
数式エディッタってのがあるよ
挿入のオブジェクトのmicrosoft 数式 3.0等
461419:2009/05/22(金) 11:06:32
>439さん

返事が遅くなりすみません。
試してみましたが、開きませんでした。
462447:2009/05/22(金) 20:05:55
>>458-459
ありがとうございます。

Public PWDで、無事に動作しました。
ユーザーフォームに慣れてないせいもあって、×を無効にするのは、
ちょっとハードルが高そうです。

>>447-448の例で、パスワードが合致したか否かはPWDで判断で
出来るようにありました。しかし、パスワードを入力しないで
×をクリックすると、そのまま先に進んでしまいます。
これを防ぐ方法はありますか?
463名無しさん@そうだ選挙にいこう:2009/05/22(金) 20:22:40
inputboxとif分岐の方が早い気がする
464名無しさん@そうだ選挙にいこう:2009/05/22(金) 21:28:19
>>462
ユーザーフォームに
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then Cancel = 1
End Sub
465名無しさん@そうだ選挙にいこう:2009/05/22(金) 21:30:02
>>464
>>462
ユーザーフォームのモジュールに、だ。
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then Cancel = 1
End Sub
466447:2009/05/22(金) 22:16:52
>>465
ありがとうございます。
構文の意味はよく分からないですが、×が無効になりました。
467名無しさん@そうだ選挙にいこう:2009/05/23(土) 00:32:33
>>466
http://www.moug.net/tech/exvba/0090041.htm
●終了を必ず”終了”ボタンから行わせるには● 参照

If CloseMode = 0 Then Cancel = 1
を定数で書くと
If CloseMode = vbFormControlMenu Then Cancel = True

QueryClose の定数、値、内容
vbFormControlMenu、0、ユーザー フォームのコントロール メニューの [閉じる] がクリックされました。

ユーザーフォームの閉じるがクリックされたらキャンセルってこと。だと思う。
468名無しさん@そうだ選挙にいこう:2009/05/23(土) 00:47:38
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 二次曲線 グラフ 閉区間 開区間 領域

m<x<nにおけるy=ax^2+bx+cの取る範囲を表示させたいのですが普通にグラフを作成したばあいx=m,nの点も含まれてしまいます

○━━━○
m     n
このような線を引きたいのですがどうすればよろしいでしょうか?
469名無しさん@そうだ選挙にいこう:2009/05/23(土) 00:53:05
【1 OSの種類         .】 WindowsMe
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】

散布図のグラフ(曲線)を書いたんですが、このグラフ上の任意の点での値(の組)を
知るにはどうすればいいのでしょうか
画面の矢印を各入力データを表す点にもっていくと「系列1 要素"53.3" (53.3 , 0.735)」
( (53.3 , 0.735) は入力データ ) などと表示されるのですが、同じような表示をグラフ上の任意の点で表示させる方法が
あるのでしょうか。
よろしくおねがいします。
470名無しさん@そうだ選挙にいこう:2009/05/23(土) 02:15:44
>>468
私のOfficeXPですと、
グラフ線上で右クリックして”データ系列の書式設定”をクリック
パターンタブ内のマーカーを自動→指定へ変更
「背景」を白に指定、サイズを任意の大きさへ変更(15ポイントくらいでしょうか)、
さらに「前景」を色なしにすればマーカーの輪郭線も消えますが、どうでしょうか。
471名無しさん@そうだ選挙にいこう:2009/05/23(土) 02:23:44
グラフ線上で右クリックして”データ系列の書式設定”をクリック
パターンタブ内のマーカーを自動→指定へ変更
「スタイル」を■→●へ変更    ←←←※コレ抜けてました
「背景」を白に指定、サイズを任意の大きさへ変更(15ポイントくらいでしょうか)、
さらに「前景」を色なしにすればマーカーの輪郭線も消えますが、どうでしょうか。
472名無しさん@そうだ選挙にいこう:2009/05/23(土) 02:37:20
>>470-471
回答ありがとうございます
しかしその方法ですと両端以外の点(線の中)も同時に変更されてしまうと思うのですが
両端のみマーカーを変える方法はありますでしょうか?
473名無しさん@そうだ選挙にいこう:2009/05/23(土) 02:56:01
>>472
両端m、nのみでしたらそれぞれのマーカーを(左)クリックで選択してから
右クリックして同上の作業を行えばm、nのみ変えられます。
474名無しさん@そうだ選挙にいこう:2009/05/23(土) 03:19:03
>>473
左クリックした時点で全てのマーカーの色が反転してしまうようですが・・・
やり方がわるいのかな・・
475名無しさん@そうだ選挙にいこう:2009/05/23(土) 03:26:21
>>474
マーカーを2,3回左クリックすればクリックしたところのみ選択出来る
はずですが。
476名無しさん@そうだ選挙にいこう:2009/05/23(土) 03:30:53
>>475
できました
何度も丁寧にありがとうございます
477447:2009/05/23(土) 11:08:21
>>467
解説ありがとうございます。
25日までに完成させなかればならないので、また疑問点が出ましたら
お邪魔させて頂きます。その際は、よろしくお願いいたします。
478名無しさん@そうだ選挙にいこう:2009/05/23(土) 12:33:18
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003

シート"MENU"のC5セルに入れた値をIFで分岐してます。
ユーザーが増えてきたので、かなりの行数になってしまいました。
もっとシンプルにするには、どう書けばいいですか?

Sub 2009年度収支報告()
Dim C5 As String
C5 = Sheets("MENU").Range("C5").Value
If C5 = "JK0105" Then
'MsgBox "OK"
ElseIf C5 = "JK0107" Then
'MsgBox "OK"
ElseIf C5 = "JK0201" Then
'MsgBox "OK"
-----(省略)-----
Else
'MsgBox "NG"
End If
End Sub

シート"ID"(隠しシート)のA列
JK0105
JK0107
JK0201
JK0308
JK0316
JK0322
479名無しさん@そうだ選挙にいこう:2009/05/23(土) 12:47:18
>>478
条件多いときはSelect Case
マクロ名の最初数字でもOKだっけ?うちはエラーになるけど。

Sub 年度収支報告()
Dim C5 As String
C5 = Sheets("MENU").Range("C5").Value
Select Case C5
Case "JK0105"
MsgBox "1"
Case "JK0107"
MsgBox "2"
Case "JK0201"
MsgBox "3"
Case Else
MsgBox "NG"
End Select
End Sub
480名無しさん@そうだ選挙にいこう:2009/05/23(土) 13:10:37
>>478
隠しシートリストになければNG、そうでなければOKでいいのか。

Sub 年度収支報告()
Dim c As Range
With Worksheets("ID").UsedRange.Columns(1) '---IDの1列目が対象
Set c = .Find(What:=Range("C5").Value, LookIn:=xlValues, _
LookAt:=xlPart) '---cに検索結果を格納
If Not c Is Nothing Then '---条件に当てはまるセルがあるか
MsgBox ("OK")
Else
MsgBox ("NG")
End If
End With
End Sub
481478:2009/05/23(土) 14:09:03
レス、ありがとうございます。

>>479
あ、すいません。
マクロ名は適当なのに書き換えてしまいました。

>>480
スッキリしました。
例は6件のみ書きましたが、IDが増えてもマクロを書き直す必要が無さそうなので使わせてもらいます。
482名無しさん@そうだ選挙にいこう:2009/05/23(土) 16:53:24
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 否
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 ドラグ 連続データ コピー

セルを右下を左ドラグでつまむと連続データが出来ます。
これを「セルのコピー」の動作に固定させたいのですが、
可能でしょうか。
宜しくお願い致します。
483名無しさん@そうだ選挙にいこう:2009/05/23(土) 17:00:40
>>482
無理
ちなみにオートフィルという動作。右クリックでオートフイルでも試すと何かいいことあるかも
484名無しさん@そうだ選挙にいこう:2009/05/23(土) 17:30:43
>>482
Ctrl押すのが面倒ってこと?
485名無しさん@そうだ選挙にいこう:2009/05/23(土) 17:39:21
>>484
あぁ…有難うございました。
486名無しさん@そうだ選挙にいこう:2009/05/23(土) 17:40:27
Excel2007でオススメの参考書おしえてください
スレがないようで
487名無しさん@そうだ選挙にいこう:2009/05/23(土) 17:47:32
>>486
ここで三ヶ月ROM これお勧め(´・ω・`)
488名無しさん@そうだ選挙にいこう:2009/05/23(土) 17:56:02
>>486
ダイソーの100円参考書3冊セットで買うのオススメ
じゃなきゃ安い参考書を古本かヤフオクで買う
どうしても新品がいいなら開きやすい本(でかくて薄い本)がおすすめ。本を開きっぱなしにして作業できるのはいい

サイトがいいなら
http://www.google.com/search?client=opera&rls=ja&q=%E3%82%A8%E3%82%AF%E3%82%BB%E3%83%AB+%E5%85%A5%E9%96%80&sourceid=opera&ie=utf-8&oe=utf-8
で好きなところどうぞ。俺は一番上のサイトが好き。レイアウトが残念だけど
489名無しさん@そうだ選挙にいこう:2009/05/23(土) 18:03:25
MOSのExcel上級の例題付き問題集を一通りやると
通常業務に必要なこと+α(若干)くらいは出来るようになるよ
基礎ひと通りを本で覚えて、実用性を実務で身に付けるのが一番だね
490名無しさん@そうだ選挙にいこう:2009/05/23(土) 20:51:50
すみません、教えてください。

文字列として、0171-3-5489-5という風にデータが入っています。
セルの書式設定も文字列にしてあります。

これを

With Range("D3", Range("D65536").End(xlUp))
.Replace "-", ""
End With

で実行すると頭の”0”が消えて17135489となってしまいます。

どうすればよろしいでしょうか?よろしくお願いします。
491名無しさん@そうだ選挙にいこう:2009/05/23(土) 20:55:09
×17135489
○171354895

の間違いでした。
492名無しさん@そうだ選挙にいこう:2009/05/23(土) 22:48:06
>>490
Dim c As Range
For Each c In Range("D3", Range("D65536").End(xlUp))
c.Value = "'" & c.Value
c.Replace "-", ""
Next c
493XP、Excel2003:2009/05/23(土) 22:53:03
共用ブックにあるデータを検索するマクロをつくったら、瞬時に結果が出てしまいます。
5秒くらい待たせるようにしたいのですが、数行で書ける複雑な計算式とかありますか?
494名無しさん@そうだ選挙にいこう:2009/05/23(土) 22:57:14
>>493
Dim waitTime As Variant

waitTime = Now + TimeValue("0:00:05")
Application.Wait waitTime

でマクロを一時停止するとか。
495名無しさん@そうだ選挙にいこう:2009/05/23(土) 23:02:26
>>490
頭にシングルクォーテーション入れたくない場合はこんな方法も

Sub test()
Dim StrRng as Range
Columns("D:D").NumberFormatLocal = "@" ’念のためD列の書式を文字列に
For Each StrRng In Range("D3", Range("D65536").End(xlUp))
StrRng.Value = WorksheetFunction.Substitute(StrRng.Value, "-", "") 
Next
End Sub
496名無しさん@そうだ選挙にいこう:2009/05/23(土) 23:16:55
>>492,495さん
望みどおり出来ました!!
どうも有り難う御座いました。m(_ _)m
497名無しさん@そうだ選挙にいこう:2009/05/23(土) 23:29:08
WorksheetFunction.Substituteってなんですか?
Replaceじゃないの?
498名無しさん@そうだ選挙にいこう:2009/05/23(土) 23:53:06
動けばいいんだよ
499名無しさん@そうだ選挙にいこう:2009/05/23(土) 23:54:17
>>497
ワークシート関数のSubstitute関数。
他にもWorksheetFunction.sum〜でsum関数が使えたりもする

基本的な内容は同じだが記述・処理範囲・処理速度などが違う。当然VBA関数の方が細かい作業には向いているが、場合によっては速度が下がる
メリットとしてはVBA覚えたての人が記述さえ知っていれば関数をそのまま使用可能。また引数が簡略・formulaメソッドでセルに直接記述できる、等の理由でわざとワークシート関数を使う人もいる
ただ他アプリのVBAやVB6、.net他で使い回しが効きにくいのがネック
要は一長一短、後は好みってことで。ただ記述が長いのでVBA使うと離れる人が多いかもね
500名無しさん@そうだ選挙にいこう:2009/05/23(土) 23:58:32
>>497
SUBSTITUTE は、ワークシート関数で、VBAには同じ名前ではない。
REPLACE という名前で同じ機能を持った関数が用意されている。

WorksheetFunction.Substitute として、ワークシート関数を使う事も出来る。
501名無しさん@そうだ選挙にいこう:2009/05/24(日) 00:00:54
>>497は皮肉で書いたんだろ?
502XP、Excel2003:2009/05/24(日) 00:04:42
>>494
d!!
503名無しさん@そうだ選挙にいこう:2009/05/24(日) 00:07:36
似たようなものがあるならWorksheetFunctionは普通使わないよね。
同じような機能でWorksheetFunctionが速いものって何があるの?
504名無しさん@そうだ選挙にいこう:2009/05/24(日) 00:15:29
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002

VB Editerで、F1を押下してヘルプを出すとき異常な遅さです。
早くするにはどうすればいいですか?
505名無しさん@そうだ選挙にいこう:2009/05/24(日) 01:53:27
>>504
速いPCに買い換える
506名無しさん@そうだ選挙にいこう:2009/05/24(日) 10:19:55
>>503
ttp://officetanaka.net/excel/vba/speed/s11.htm
通常の使用では無いような差だけど
>>501
とも思ったけど初心者だったら答えてあげた方がいいカナと思って
507名無しさん@そうだ選挙にいこう:2009/05/24(日) 10:56:45
つられてOffice Tanaka氏のHPから転載

関数も使え!
Excelには多くの機能があります。並べ替えやオートフィルタなどメニューから操作する機能、
SUMやAVERAGEなどのワークシート関数、多彩なグラフ機能、クロス集計も手軽に行える
ピボットテーブル、そして操作を自動化できるマクロ機能。

VBAを使ったマクロ作成というのは、Excelが持つ機能の一部を利用しているに過ぎません。
ここで忘れていけないのは、我々はマクロ機能だけを相手にしているのではなく、Excelとい
うアプリケーションソフトを操作しているということです。
508名無しさん@そうだ選挙にいこう:2009/05/24(日) 11:24:53
関数ばかり勉強してきた俺が、いざVBAのほうが遙かに効率的だし?
面白い?ことに気付いた時、必要な時に計算結果が出ればいいんで
関数入れっぱなしはやらなくなった。

VBA関数で対応できないような複雑なものはセルに式そのものを入れた
あと、.Value = .Valueでやるようなこともよくやる。
509名無しさん@そうだ選挙にいこう:2009/05/24(日) 15:42:34
>>508
VBAでどんなの作ったの?
510名無しさん@そうだ選挙にいこう:2009/05/24(日) 15:50:14
>>507
自分もOffice Tanakaのそのコラム読んだことあったし今回も調べたけど
>>503は「似たようなものがあるなら」と言ってるんで
この場合 WorksheetFunction.Substitute と REPLACE とか
ほんとに一緒の処理を行うもの同士の比較じゃないといけないかなと思ってた。
511名無しさん@そうだ選挙にいこう:2009/05/24(日) 18:32:08
こういうくだらない言い争いはプログラマ板のVBAスレでやってくんないかな?
ここはレベルの低いVBA厨が多いんだから。
512名無しさん@そうだ選挙にいこう:2009/05/24(日) 18:42:32
あーあ、言っちゃった。
513名無しさん@そうだ選挙にいこう:2009/05/24(日) 19:07:08
>レベルの低いVBA厨が多い

自己紹介?
514名無しさん@そうだ選挙にいこう:2009/05/24(日) 19:09:26
>レベルの低いVBA厨が多い

いや俺だよ
515名無しさん@そうだ選挙にいこう:2009/05/24(日) 19:13:41
私はVBAを使いませぬ
516名無しさん@そうだ選挙にいこう:2009/05/24(日) 19:22:42
VBAを使える人は少ないが
有効にVBAを使える人はもっと少ない
517名無しさん@そうだ選挙にいこう:2009/05/24(日) 20:12:52
VBAって何?

ぶ、ブイバ?
518名無しさん@そうだ選挙にいこう:2009/05/24(日) 20:38:16
Visual Basic For Application って何?
美味しいの?
519名無しさん@そうだ選挙にいこう:2009/05/24(日) 20:58:22
2003、標準ビューなのに黒い点線で
印刷範囲のようなものが表示されているのですが
どうしたら消すことができるでしょうか
520名無しさん@そうだ選挙にいこう:2009/05/24(日) 21:05:23
>>519
ファイル→印刷範囲のクリア
じゃないでしょうか?


なにせVBAが使えない上にリボンを使っているため、確かではありませんが、、、
521名無しさん@そうだ選挙にいこう:2009/05/24(日) 21:32:10
WorksheetFunction..Find
522名無しさん@そうだ選挙にいこう:2009/05/24(日) 21:58:01
>>519
「ツール」―「オプション」の「表示」タブで「ウィンドウオプション」の
「改ページ」のチェックをはずす。
523名無しさん@そうだ選挙にいこう:2009/05/24(日) 21:58:58
一度印刷プレビューすると出てきちゃうよね。
524名無しさん@そうだ選挙にいこう:2009/05/24(日) 22:06:42
>>510
これ以上の意味で一緒の、は無いと思うんだけど
なんにしろ、あんまり代わらないってことでいいと思うんだけどなぁ
>>511
レベルの低い→こだわりがある、とでもいったほうがいいかもしれないね
オタクは肯定的に捉えられたがるからね
否定的に言うといつまでもかみついてくるのがオタク。そういうあしらいも含めてエクセルを覚えることができれば
本当にエクセルを極めたということになるんじゃないかな
エクセルに限らず人をうまく使えるようになれば出世は早いよ
>>517
ttp://www.google.com/search?client=opera&rls=ja&q=Visual+Basic+For+Application+%E3%81%A3%E3%81%A6%E4%BD%95&sourceid=opera&ie=utf-8&oe=utf-8
ぐぐれば分かるよ
525名無しさん@そうだ選挙にいこう:2009/05/24(日) 22:52:35
まだやってるのかよ。
アスペルガー症候群か?
526名無しさん@そうだ選挙にいこう:2009/05/24(日) 23:04:36
>>524
それでVBAで何を実現したの?
527名無しさん@そうだ選挙にいこう:2009/05/24(日) 23:17:39
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 1から100 自動化

Excelの連番セルについて質問があります。
以下のような数式があり、nの部分を1から100まで変化させた物を100個のセルそれぞれに入力したいのですが、
nの部分を自動的に増やしながら100セルまで埋める事は可能でしょうか?
1セル目では、1 + (5 / 1)、2セル目では、1 + (5 / 2)、...、100セル目では、1 + (5 / 100)
となるようにしたいのです。

1 + (5 / n) 1<=n<=100
528名無しさん@そうだ選挙にいこう:2009/05/24(日) 23:34:30
1-100を縦に入力しておいてその横に式を入れて1-100を参照すればいいね
529名無しさん@そうだ選挙にいこう:2009/05/24(日) 23:37:40
>>527
A1〜A100に1〜100を振っておいて、=1 + (5 / A1),以降コピペではダメ?
530名無しさん@そうだ選挙にいこう:2009/05/24(日) 23:46:58
>>527
=1 + (5 / ROW())
531名無しさん@そうだ選挙にいこう:2009/05/24(日) 23:52:06
A1に入力するとして、

="1 + (5 / "&ROW(A1)&") 1 <="&ROW(A1)&"<=100"

をそのまま下へオートフィル。

532名無しさん@そうだ選挙にいこう:2009/05/24(日) 23:53:52
あ、そっか、そのセルそのものを指定する場合は>>530の言うとおり
ROW()
だけでいけるな。
533名無しさん@そうだ選挙にいこう:2009/05/24(日) 23:56:04
数式の意味がわかってないと>>531みたいなことになるからみんな気をつけるように
534名無しさん@そうだ選挙にいこう:2009/05/24(日) 23:57:24
>>528,529
ありがとうございます。無事に処理する事ができました。

追記で質問なのですが、得られた結果を折れ線グラフにしたいのですが、
水平方向の軸の目盛り設定がうまくいきません。
ここに0から100まで、ラベル間隔と目盛りの間隔を10に設定し、0,10,20..100と表示させたいのですが、
縦軸と交差する項目番号が1からしか設定できず、1,11... といった風になってしまいます。
どのようにすれば0,10,20... といった風に表示する事ができるのでしょうか?
535名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:01:04
>>533
あ。そういうことかorz

一番下の式そのものを表示したいんだと思ってたorz
だったらいちばんスマートなのは>>530だな。
536名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:03:43
>>535
バカ?
しょっぱいだろうが。
537名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:16:31
利口な>>536はどういう式を書くの?
538名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:18:04
利口な>>536は括弧が要らないって言ってるのか?
539名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:20:45
>>537
わざわざアドレスに依存するように書くバカ。
540名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:22:47
なんかさっきから病人がわめいてるな。
541名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:24:50
>>538
カッコ使ってるかどうかなど何ら評価対象にはならんよ。
542名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:24:51
ていうか、>>536さんよ。
そんなのどうでもいいから、>>534に答えてあげろよ。
利口wwwwwwwなんだろ?
543名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:26:16
536は病人だから構うのはよせ
544名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:27:33
>>542
散布図描いたら簡単にできたぞ。
そんなことはどうでもいい。
バカは回答するな。どっか行け。
545名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:28:38
524=536か?
546名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:28:46
>>534
>>544の言うように散布図にするか
どこかに10,20,30・・・と入力して項目軸ラベルにする。
547名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:29:45
なんかいつも思うけど、ここの回答者の中に定期的に、

「質問者全てがプログラム板の住民のように細かい部分まで
知りたがっている」
「どっちでも良いことを、わざわざ効率がどうとかこっちがスマートだとか、
少しでも他人に自身の知識のひけらかしができれば満足」

みたいなのが混ざるよな?
挙句の果てには回答者が求めている回答を「どうでもいい」と述べて、
とりあえず一般的には正しい解答の一つと思われるものを否定するような
輩まで現れる始末。
548名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:31:54
>>544
では、今日から24時間体制で、

全 て の 質 問 へ の 即 答 を 引 き 受 け る

とおっしゃるわけですね、ご立派です。
549名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:32:39
やっぱ病人だ。
敏感すぐる。
550名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:34:15
>>548
バカは回答するなと言ったまで。
どうしてそんなにバカなの?
551名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:36:03
>>543
確かに病んでそうだな。
統失の一歩手前といったところか?
552名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:37:45
多分536=547だよ。
553名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:41:53
だいたいここの回答者はレベル低いやつ多いよ。
有効数字さえ知らないやつがざら。
554名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:49:14
527ですが、散布図でいけました。
ありがとうございました。
555名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:55:37
>>547
関数の定義域をROW()で与えるやつをバカ以外にどうよべばいい?
556名無しさん@そうだ選挙にいこう:2009/05/25(月) 00:59:46
あれ?
病人が二人いたのか?
557名無しさん@そうだ選挙にいこう:2009/05/25(月) 01:03:06
質問者の目的が何なのか具体的に分からないと
何がベストの回答かは一概には決められないな
558名無しさん@そうだ選挙にいこう:2009/05/25(月) 01:09:25
>>557
質問者の目的は関数1+(5+n)の値を定義域1<=n<=100で求めることだよ。
559名無しさん@そうだ選挙にいこう:2009/05/25(月) 01:28:05
>>558
それは分かるんたが「何の為にそれをやりたいか」って部分が曖昧だから
>>528>>529がベストなのか>>530がベストなのか分からないって事。
数学の勉強をしているのなら>>528が分かりやすいだろうし、とにかく手っ取り早く結果の数値列だけを得たいのであれば>>530のような方法を覚えておくのも悪くない。
質問者が教師だったりしたらもしかして>>531のような回答を求めているのかもしれない。
560名無しさん@そうだ選挙にいこう:2009/05/25(月) 01:57:56
いつも思うんだが、質問者は職業、業務内容、何の為にそれをしたいのか、といった事も書いてくれるといいんだよな。
それらが分かれば例えオバカで舌足らずな質問でも回答者が問題の背景を推測して適切な回答をしやすい。

端的な質問内容でも回答に必要な情報が漏れなく書かれればいいんだが、殆どの質問者はそうは出来ないオバカばかりだからなぁ。
561名無しさん@そうだ選挙にいこう:2009/05/25(月) 02:34:29
図形を多く描いて、行削除をしたとき、図形の縮小版が線状に残ってしまいます。
これらを一気に取り除くにはどうすればいいですか?

職業   :モデル
業務内容:広告用のドレスを着て、チラシや雑誌の写真に掲載されてます
何の為に:ひとつ一つ消すのが面倒だから
562名無しさん@そうだ選挙にいこう:2009/05/25(月) 02:54:22
560のインテリジェントな回答を待とうか
563≠560:2009/05/25(月) 06:11:43
>>561
編集→ジャンプ→セルの選択→オブジェクトにチェック→OK→デリート
564名無しさん@そうだ選挙にいこう:2009/05/25(月) 06:15:37
>>561
ファイルを閉じてごみ箱にドラッグ。
565名無しさん@そうだ選挙にいこう:2009/05/25(月) 08:05:41
>>560
今回は回答者がバカだったんだ。質問者のせいにするのはやめよう。

質問者からもっと情報を引き出そうというのには賛成だな。
よく聞いてみたらピボットテーブルで解決するケースが多い。
566名無しさん@そうだ選挙にいこう:2009/05/25(月) 11:22:12
「バカ」をNG登録するとすっきりした。
567名無しさん@そうだ選挙にいこう:2009/05/25(月) 12:29:55
Windows Vistaです。えくせるで作った表をワードに反映させたいのですがやり方を教えて下さい。
568名無しさん@そうだ選挙にいこう:2009/05/25(月) 12:32:06
コピーして貼り付け
569名無しさん@そうだ選挙にいこう:2009/05/25(月) 12:33:32
>>568
ごめんなさい、それやったんですが、表の中の文字だけが貼り付けられます;
570名無しさん@そうだ選挙にいこう:2009/05/25(月) 12:38:28
じゃあ図形貼り付けとかリンク貼り付けで
571名無しさん@そうだ選挙にいこう:2009/05/25(月) 12:44:31
>>570
ありがとうございます!!ラベルマイティーに入れる場合のやり方は分かりますか?
572名無しさん@そうだ選挙にいこう:2009/05/25(月) 12:52:14
追記:ラベルマイティーもしくはフォトショップに入れたい場合のやり方を教えて下さい。
573名無しさん@そうだ選挙にいこう:2009/05/25(月) 13:38:17
>>572
PrintScreen
574名無しさん@そうだ選挙にいこう:2009/05/25(月) 15:50:57
>>573
解決しました!!本当にありがとうございました!!
575名無しさん@そうだ選挙にいこう:2009/05/25(月) 19:19:59
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007/2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 csv txt 外部データ取り込み

外部データをWebクエリとして認識されないサイトから
個人的な使用目的でデータをとりこもうとしてるのですが

txtでまず「,」あるいは「;」をつけて編集し、その後、Excelでテキストファイルとしてインポートする方法以外に
効率的な方法はあるのでしょうか?
例えば、実際のサイトとは違いますが
ttp://ja.wikipedia.org/wiki/%E6%94%BF%E4%BB%A4%E6%8C%87%E5%AE%9A%E9%83%BD%E5%B8%82
ここの、「指定都市および行政区の一覧」の場所であれば、

txtでまず
都道府県,指定都市,指定日,行政区
北海道,札幌市,4/1,中央区(以下略)
宮城県,仙台市,4/1,青葉区
・・・
などとして編集し、インポートしています。
576名無しさん@そうだ選挙にいこう:2009/05/25(月) 19:39:47
>>575
webクエリとして保存は一番左上に出てる
取り込んだ後は表の上下のセルを削除し、
上下を削除、CTRL+A→列番号のAとBの間にカーソルをもっていきダブルクリック
行番号の1と2の間に〜同様
でいいかな?
区を分けたいときはE列を選択→データの区切り位置、その他で「・」にすれば区ごとにセルが分けられる

正規化させたい時は全体のセルの結合を解除して、VBA使ったほうがいいかな
577名無しさん@そうだ選挙にいこう:2009/05/25(月) 21:24:17
>>575
取り込みたい回数がそれほど多くないならコピペが一番早い。
目的のサイトをIEで開いてテーブル部分をドラッグ、中の文字が反転したらコピー、Excelにペーストで、
一覧表がそのまま取り込める。
サイトによってはテーブル内のどこかにマウスカーソルを合わせて右クリック、「Excelにエクスポート」で
取り込める場合もある。

正規化が自動で簡単にできるかどうかはテーブルの構成による。
結合セルが多いと大変かもしれない。
578名無しさん@そうだ選挙にいこう:2009/05/25(月) 21:29:36
2007になってから、ブラウザを右クリックして「Excelにエクスポート」の成功率が低くなった気がする。
両方入ったマシンだと2007の方に取り込まれてしまうので、2003だけが入ったマシンがあれば、
そっちで試した方がいいかも。
579名無しさん@そうだ選挙にいこう:2009/05/25(月) 21:43:43
A列、B列
山田、あああ
佐藤、あああ
山田、ううう
山田、いいい
鈴木 

とあった場合
C列、D列に
山田、「あああ、いいい、ううう」
佐藤、「あああ」
鈴木、「」
としたいのですがこういうのって可能でしょうか?
580名無しさん@そうだ選挙にいこう:2009/05/25(月) 21:50:12
581名無しさん@そうだ選挙にいこう:2009/05/25(月) 21:52:36
なんとなくだが、

・vlookupを目の敵
・ピボットテーブル大好き
・やたら他人を「バカ」と呼びたがる

あのお方が降臨しそうな悪寒w
582名無しさん@そうだ選挙にいこう:2009/05/25(月) 21:59:14
>>579
C1=山田
D1=IF(INDIRECT("r"&COLUMN()-3&"c1",0)=$C1,INDIRECT("r"&COLUMN()-3&"c2",0)&"、","")
D2=C2&D1
後はD1D2を右にオートフィル
Z列まで伸ばしたとして
D3=Z2
ってやればとりあえず目的のものはできる
VBAの方が圧倒的に綺麗だな
583名無しさん@そうだ選挙にいこう:2009/05/25(月) 22:09:43
>>581
俺はVLOOKUPに疑問を呈することはよくあるが、バカ呼ばわりは俺じゃないときがほとんどだな。
584名無しさん@そうだ選挙にいこう:2009/05/25(月) 22:14:51
>>581は多分病気なんだろうな。
585名無しさん@そうだ選挙にいこう:2009/05/25(月) 22:15:25
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

A列に20,000〜25,000行の商品コードが書かれたデータが重複しています。
このようなデータが多数あって、重複データを削除するだけで毎日10分以上も掛かっています。
現在、以下のようなマクロで削除していますが、20000行で21秒でした。
もっと高速に出来ますか?
(会社のパソコンなので、パソコンを買い換えろっていうのはナシで・・・)

Sub test1()
Dim i, StartTime, StopTime
  Application.ScreenUpdating = False

  StartTime = Time
  For i = ActiveSheet.Range("A65536").End(xlUp).Row To 2 Step -1
     With Cells(i, 1)
      If .Value = .Offset(-1).Value Then
         .EntireRow.Delete
      End If
     End With
  Next

  StopTime = Time
  StopTime = StopTime - StartTime
  MsgBox Minute(StopTime) & "分" & Second(StopTime) & "秒"

  Application.ScreenUpdating = True
End Sub
586名無しさん@そうだ選挙にいこう:2009/05/25(月) 22:18:51
まーた釣り質問っぽいのが来たなw
587名無しさん@そうだ選挙にいこう:2009/05/25(月) 22:21:39
回答はピボットテーブル以外でおねがいします
588名無しさん@そうだ選挙にいこう:2009/05/25(月) 22:24:01
>>585,>>587
では答えてあげましょう。
ピボットテーブルを使いなさい。
589名無しさん@そうだ選挙にいこう:2009/05/25(月) 22:24:18
ピボットテーブル厨なので、VBAは必要に感じませんwww
590561:2009/05/25(月) 22:30:30
>>563
ありがとうございます。
一気に取り除くことができました。
591名無しさん@そうだ選挙にいこう:2009/05/25(月) 22:31:25
>>585
Sub Macro1()
Dim gyo As Long
  Application.ScreenUpdating = False
gyo = Range("A65536").End(xlUp).Row
Columns("A:A").AutoFilter
Range("A1:A" & gyo).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
Range("a:a").Copy
Range("B1").Select
ActiveSheet.Paste '
ActiveSheet.ShowAllData
  Application.ScreenUpdating = True
End Sub
遅いか早いかは分からないけど良かったら試して欲しい
オートフィルタで重複データ無視→コピー貼り付け。
592585:2009/05/25(月) 22:35:45
>>591
ありがとうございます。
早いですね。
593名無しさん@そうだ選挙にいこう:2009/05/25(月) 22:40:15
計算してるならこれも付けた方が良くない?
計算がないならなくてもいいと思うけど
Application.Calculation = xlCalculationManual'自動計算→手動計算
Application.Calculation = xlCalculationAutomatic'手動計算→自動計算
594585:2009/05/25(月) 23:13:16
>>591
試してみました。
自宅のパソコンだと、20,000行で17秒でしたが、591の例では僅か4秒でした。
しかし、B列が書き換えられてしまうので、ちょっと手直しします。
ありがとうございました。
595名無しさん@そうだ選挙にいこう:2009/05/25(月) 23:29:26
B列以降のデータも必要なのか
596名無しさん@そうだ選挙にいこう:2009/05/25(月) 23:30:20
>>594
データは何列目まで入ってんの?
597名無しさん@そうだ選挙にいこう:2009/05/26(火) 00:11:43
毎日多数のデータ扱うならアクセスみたいな
データベースソフトの導入も検討したらいいんじゃね?
VBAが書けるなら重複データ削除以外にも色々活用出来るだろうし。
598名無しさん@そうだ選挙にいこう:2009/05/26(火) 08:27:42
>>597
お前はデータの重複削除するのにアクセスでVBA使うのか。
なんでアクセス使いたいんだ?
599名無しさん@そうだ選挙にいこう:2009/05/26(火) 09:52:38
どうした?朝から頭悪すぎだろ
牛乳でも飲んで落ちつけよ
600名無しさん@そうだ選挙にいこう:2009/05/26(火) 10:14:18
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】EXCEL 関数 照合 入力

Aという文字列に対して123という数値が割り当てられています。
Bという文字列に対して456という数値が割り当てられています。
・・・と続くようなエクセルの表があり、別ページにA,B・・・がバラバラ&複数置かれています。
それに対応する数値を割り当てるような関数はありますでしょうか。
よろしくお願いします。
601名無しさん@そうだ選挙にいこう:2009/05/26(火) 10:56:30
>>600
VLOOKUP
602名無しさん@そうだ選挙にいこう:2009/05/26(火) 10:58:56
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【5 検索キーワード     】 ピボットテーブル グループ化 空白セル

ピボットテーブルでデータソース範囲の日付の列に空白セルがあるとグループ化出来ないことがあります。
しかし何事もなく普通に出来ることもあります。
どっちかというと出来るときの方が多いですけど。
どういうとき出来なくてどういうとき出来るか分る方いますか?
なお空白セルはイミディエイトウィンドウで?isempty([a2].value)とかで確認済みですので違いなく完璧な空白セルです。
603名無しさん@そうだ選挙にいこう:2009/05/26(火) 11:14:12
EXCEL 2007ってデータ数が増えると、すぐリソース不足かで画面がめちゃくちゃになるんだけど、悲惨じゃね?
EXCEL 2003のときはこんなことなかったのにな
604名無しさん@そうだ選挙にいこう:2009/05/26(火) 11:42:51
オレもよくブックが壊れましたとか出てたんだけど上書きインストールしたら嘘みたいに安定したことはある
でもこの前OSごと再インストールしたらまた壊れるようになった
605名無しさん@そうだ選挙にいこう:2009/05/26(火) 12:03:08
>>601
出来ました。
ありがとうございます。
606名無しさん@そうだ選挙にいこう:2009/05/26(火) 14:05:54
>>602
ぐぐってみると空白セルが一つでもあると出来ないとか書かれてるがおれんとこは出来るな。
607名無しさん@そうだ選挙にいこう:2009/05/26(火) 16:59:45
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】エクセル2007 フィルタ 列 or条件

エクセルのフィルタ機能についての質問です。
エクセルのオートフィルタの機能で,数値が沢山打ち込んであるシートで,
例えばA列50以上,B列40以上,C列100以上などをフィルタオプションを使って設定すると,
表示される行はA列50以上かつB列40以上かつC列100以上となってしまいますが,
「かつ」ではなく「または」で表示させることはできないのでしょうか?
608名無しさん@そうだ選挙にいこう:2009/05/26(火) 18:04:36
>>607
作業列に条件式を書いて、それに対してオートフィルタをかけるしかない。
609名無しさん@そうだ選挙にいこう:2009/05/26(火) 19:09:08
>>507-508
オートフィルターなのかフィルタオプションなのかはっきりしないが、フィルタオプションなら

条件1  条件2  条件3
>=50
      >=40
            >=100
とずらせばいい。
縦には「または」横には「かつ」だ。    
610名無しさん@そうだ選挙にいこう:2009/05/26(火) 19:15:53
酢萬、100番少なかったな。
611名無しさん@そうだ選挙にいこう:2009/05/26(火) 19:47:59
>>608、609
根本的なフィルタオプションの知識不足でした。
ありがとうございました。
612名無しさん@そうだ選挙にいこう:2009/05/26(火) 20:54:10
>>603
スペックが低いPCを使ってるからだw
2007は仕様が変わってPCの性能にかなり依存するようになった。
613名無しさん@そうだ選挙にいこう:2009/05/26(火) 21:24:07
少し前のvista搭載ノートPCは悲惨だったな
614名無しさん@そうだ選挙にいこう:2009/05/26(火) 21:33:05
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 おk

C3セルを入力規則でリスト化し、初期値を空白にしてあります。
リストから選ばせてからマクロを実行させるとき、空白セルでは動作しないように
したいのですが、「型が違います」とエラーになります。
どのように対処すればいいでしょうか?

Sub 女子高生リスト()
 JK_Name = Range("C3").Value
 If JK_Name = "" Then
  MsgBox "プルダウンメニューから、好みのオニャノコの名前を選択してください。"
  Exit Sub
 End If
End Sub

ちなみに、Excel2003ではエラーになりません。
615名無しさん@そうだ選挙にいこう:2009/05/26(火) 23:03:21
数年ぶりにこの板をみたら、思いつきで立てたこのスレが
82代まで続いているなんて。
616名無しさん@そうだ選挙にいこう:2009/05/26(火) 23:11:31
B5、B8、B11、B14の各セルに記号や数値を入れ、
ボタンをクリックすると検索したり集計したりするのを作っています。
マクロはなんとか書けましたが、ボタンのデザインとか
配置とか見栄えを良くしたいんですけど、デザインのサンプルとか
公開してるサイトがあったら教えてください。
617名無しさん@そうだ選挙にいこう:2009/05/26(火) 23:17:28
JAVAとかC#やSQLのタブ付きソースをコピペすると
別のセルに入ってくちゃくちゃなんですがどうすればいいですか?
618名無しさん@そうだ選挙にいこう:2009/05/26(火) 23:38:58
>>614
ttp://www.google.com/search?client=opera&rls=ja&q=excel2000+%E3%83%AA%E3%82%B9%E3%83%88+%E7%A9%BA%E7%99%BD+%E3%83%90%E3%82%B0&sourceid=opera&ie=utf-8&oe=utf-8
この辺で探してみてはいかがかな。2000持ってないから再現できないや
>>617
・セルをダブルクリック、編集状態にしてから貼り付け。ただし1セルに全部入ってしまう
・貼り付けた後、アイコン(カバンみたいな奴)がでるのでクリック→テキストファイルウィザード〜でスペースの横のチェック外して完了押す
・貼り付けた後=A1&B1&C1&D1&・・とつなげる
他にもありそう
619名無しさん@そうだ選挙にいこう:2009/05/27(水) 09:19:48
このスレの過去ログ誰かまとめてないかな。
ROM専ですがマジ助かってます。
620名無しさん@そうだ選挙にいこう:2009/05/27(水) 13:49:06
>>615
ビジネスソフト板にビジネスソフトの雄であるExcelの専用スレが必要なことくらい
誰でも解ることだからね

だから初代も10代も82代も、皆当たり前の措置として必要なスレを立て続けてるだけ
俺も10回以上はここのスレ立てやったかな
621名無しさん@そうだ選挙にいこう:2009/05/27(水) 16:16:56
>615 このヒト?

1 名前: 名無しさん@そうだ選挙にいこう 投稿日: 2000/08/09(水) 12:47
スレ乱立するのもあれだからExelの質問・回答はここでまとめてやりましょう。
622名無しさん@そうだ選挙にいこう:2009/05/27(水) 17:09:31
>>521
俺はその書き込みに記憶ある。
証券マンが活躍してたころかな?
今でもちょくちょくここにお見えになるけど。
623名無しさん@そうだ選挙にいこう:2009/05/27(水) 17:10:23
WorksheetFunction..Find
624名無しさん@そうだ選挙にいこう:2009/05/27(水) 18:27:53
  A B C D
1 1 2 3 4
2 5 6 7 8
3 9 A B C
4 D E F G




これを

  A B C D
1 1 2 3 4 5 6 7 8 9 A B C D E F G ・ ・ ・ ・
2 
3 


のように並べ替えるのにいつも一列一列ドラッグして移動させてるんだけど
もっと手軽な方法とかってありますか? 
625名無しさん@そうだ選挙にいこう:2009/05/27(水) 18:42:02
csvで書き出して、テキストエディタで¥nを,で置き換える
626名無しさん@そうだ選挙にいこう:2009/05/27(水) 19:00:31
>>624
ピボットテーブルと行列を入れ替えてコピーでもできるなw
627名無しさん@そうだ選挙にいこう:2009/05/27(水) 19:02:57
INDIRECTはまだぁ?
628名無しさん@そうだ選挙にいこう:2009/05/27(水) 19:43:49
>>624
E1=INDIRECT("r"&INT((COLUMN()-1)/4)+1&"c"&MOD(COLUMN()-1,4)+1,0)
右にオートフィル
629名無しさん@そうだ選挙にいこう:2009/05/27(水) 20:06:13
>>628
ありがとうございます!
正直理屈は全くわからないけど出来ました
これからもっとエクセルを勉強しなくては・・・
630名無しさん@そうだ選挙にいこう:2009/05/27(水) 21:42:05
メニュー[データ]-[入力規則]-[リスト]で、セルの右横に出る[▼]のボタンは何て名前ですか?
631名無しさん@そうだ選挙にいこう:2009/05/27(水) 21:52:22
>>630
ドロップダウンボタンでいいとオモ
英語表記だとShow Drop Button
632名無しさん@そうだ選挙にいこう:2009/05/27(水) 21:59:21
>>621
あんな言い方しながらExelってw
633名無しさん@そうだ選挙にいこう:2009/05/27(水) 22:34:51
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel03, 07
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel txt インポート 取り込み フォーム

インターネットのフォームからメールとして送られてきた情報を、
excelで名簿としてまとめたいのですが、効率のいい方法はないでしょうか。
メールでは

名前:山田太郎
年齢:20

のような形で送られてきます。
インポートのウィザードの使い勝手が良くなかったので、
これを名簿として集計するような良い方法がありましたらご教授ください。
634名無しさん@そうだ選挙にいこう:2009/05/27(水) 22:39:28
>>631
さんくす
635名無しさん@そうだ選挙にいこう:2009/05/27(水) 22:51:31
>>633
03だと
新しいシートに貼り付け、区切り位置を「:」するとB1B2が山田太郎と20になる
それをコピー、右クリックで貼り付け。針付けするときに行列を入れ替える

07だと
sheet2!a1=名前:山田太郎
sheet2!a2=年齢:20
で追加するときは右へ貼り付けて、
sheet1!a1=SUBSTITUTE(Sheet2!A1,"名前:","")
とすれば自動的に「名前:」の部分が消えたデータベースを作れる

VBA。sheet2のA1A2に貼り付けて、sheet1の最後に追加するマクロ。コマンドボタンに登録してload辺りを組み合わせると使い勝手は良くなると思う
Sub a()
Dim gyo
gyo = 1 + Range("A65536").End(xlUp).Row
Range("a" & gyo) = Range("sheet2!a1")
Range("b" & gyo) = Range("sheet2!a2")
End Sub

って感じかな
636名無しさん@そうだ選挙にいこう:2009/05/27(水) 22:52:50
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel03,
【3 VBAが使えるか    .】 可 すこし
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 インボリュート関数 逆関数 

VBAでエクセルにない関数を作成できると聞きました。
ainv(適当)と言う名前の関数を作ろうと考えています。

ainv問い名前と関連づけたどうやって取り込むか試行錯誤しています。
その方法をご教授ください。

拾ってきたVBA↓ 内容は間違ってないと思います。

Function INV(α)
INV = Tan(α) - α
End Function
Function AINV(invα)
B = 1.5706
Do
A = B
B = A - (Tan(A) - A - invα) / (Tan(A) ^ 2)
Loop Until Abs(B - A) < 0.000000001
AINV = B
End Functioninn
637名無しさん@そうだ選挙にいこう:2009/05/27(水) 22:56:46
>>636
http://74.125.153.132/search?q=cache:0oI7PzYAb8gJ:www.nc-net.or.jp/morilog/m120353.html+INV+%3D+Tan(%CE%B1)+-+%CE%B1&cd=1&hl=ja&ct=clnk&client=opera
このページ?
>>636の最後の一行がEnd Functionだよ。
638名無しさん@そうだ選挙にいこう:2009/05/27(水) 23:27:48
>>637
できた ありがとうございます。

私が探したページ
http://park7.wakwak.com/~efc21/cgi-bin/exqalounge.cgi?print+200609/06090218.txt

他にも計算速度を上げるため単位変換をすれば早くなるとも聞きました
その件については、2つVBAを作成してから質問させて下さい。
ありがとうございました。
639XP、2002:2009/05/28(木) 01:31:02
マクロで、テキストファイルを開くには、どう書けばいいですか?
これだとエクセルが開いてしまいます。
Workbooks.Open Filename:="C:\Excel\test1\help.txt"
640名無しさん@そうだ選挙にいこう:2009/05/28(木) 01:36:48
Sub エクセル外のアプリを使うにはそれじゃ駄目なんだな()
Shell ("NOTEPAD.EXE C:\Excel\test1\help.txt"), vbNormalFocus
End Sub
641XP、2002:2009/05/28(木) 01:42:15
>>640
ありがとです。
642名無しさん@そうだ選挙にいこう:2009/05/28(木) 18:51:13
質問させてください。
リストの中の最新の日付を参照する方法が思いつかなくて困っています。
具体的には、以下の表のH3からH8に左のリストの最新の枚数を反映させたいのです。
B列の項目が1円で、且つA列の日付が最新の場合に同じ行のEの値をH1に代入させたい、と言えばわかりますでしょうか・・・
説明が苦手なのでわかりにくいかも知れませんがお願いします。

ttp://imagepot.net/view/124350382336.jpg

OSはWindowsXPでexcelのverは2003です。
VBAは出来るだけ使いたくありませんが、他に方法がない場合はVBAでも構いません。
643名無しさん@そうだ選挙にいこう:2009/05/28(木) 19:09:37
>>642
H3=IF(VLOOKUP(MAX(A:A),A:B,2)=G3,VLOOKUP(MAX(A:A),A:E,5),"")
H8までオートフィル
644名無しさん@そうだ選挙にいこう:2009/05/28(木) 19:36:08
>>642
=SUMIF(B:B,G3,C:C)-SUMIF(B:B,G3,D:D)
ピボットテーブルでも出来るが。
645名無しさん@そうだ選挙にいこう:2009/05/28(木) 19:38:42
ところで>>642はE列の式はどうやってるんだ?
E列の式が分ればH列の式も分りそうなもんだが。
646名無しさん@そうだ選挙にいこう:2009/05/28(木) 20:04:50
>>643,644
ありがとうございます。
変に難しく考えていましたが>>644さんの解の様にすべて計算すれば済む話でしたね。

>>645
取り敢えず手動で入力してみましたが、実はこちらもどうやって計算させようか悩んでいた所です。
647名無しさん@そうだ選挙にいこう:2009/05/28(木) 21:35:05
>>646
数字だけ入力するようにして、単位はユーザー書式
B列に「#,###"円"」とユーザー書式設定後、B1B2を標準にする
C列以降も同様
こうすればSUM等で計算できるようになるよ
648名無しさん@そうだ選挙にいこう:2009/05/28(木) 23:08:46
RPGの戦闘部分を作っています。
FFみたいなアクティブタイムバトル(パラメータのすばやさに毎秒1ずつ足して行き、規定値になったら行動)
というものですが、勝利判定はどこでどういう風にすればよいでしょうか?

行動が終わった時に、goto文で戦闘部分の処理を抜け出すのが一般的でしょうか?
649名無しさん@そうだ選挙にいこう:2009/05/29(金) 01:32:33
>>648
たぶん質問する場所が違う予感
650名無しさん@そうだ選挙にいこう:2009/05/29(金) 07:14:22
>>649
すいませんでした!恥ずかしい
651名無しさん@そうだ選挙にいこう:2009/05/29(金) 09:08:03
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 ピボットテーブル 並び替え

ピボットテーブルでの各個人での集計を降順、昇順での並び替えしたいのですができますでしょうか。
うまく説明できないので、下記にうpしました。パスはxlsです。
シート1が集計元データ、シート4がピボットテーブル作成先です。
ttp://upload.jpn.ph/10/bin/bin0878.zip.html
652名無しさん@そうだ選挙にいこう:2009/05/29(金) 09:27:25
>>651
ピボットテーブルの「名前」と「商品名」の右の▼をクリックすれば
並べ替え関係のメニューが出てくるけど。
653名無しさん@そうだ選挙にいこう:2009/05/29(金) 09:28:38
あ、ごめん。今のなし。メニューから並べ替えできるのは2007からだったわ。
654名無しさん@そうだ選挙にいこう:2009/05/29(金) 09:31:06
2003の場合は「名前」「商品名」を右クリック、フィールドの設定→詳細ボタンで
並べ替えの設定ができる
655651:2009/05/29(金) 11:15:51
フィールドの設定→詳細ボタンで計の昇順、降順で並び替えできました。
>>652-654
ありがとうございました。とても助かりました。
656名無しさん@そうだ選挙にいこう:2009/05/29(金) 17:44:40
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003

VBAで新規のbookを作ってファイル名をYYYYMMDDhhmmssにしたいのですが、

Wbook_out = Year(Date) & _
Right("0" & Month(Date), 2) & _
Right("0" & Day(Date), 2) & _
Right("0" & Hour(Now), 2) & _
Right("0" & Minute(Now), 2) & _
Right("0" & Second(Now), 2)

もっと適当な命令や定番テクニックってないですか?
657656:2009/05/29(金) 17:49:20
Excle VBAのスレがあったんでそちらに移動します。

失礼しました。
658名無しさん@そうだ選挙にいこう:2009/05/29(金) 17:57:47
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 ルビを別のセルに表示

例えばA1のセルに「山田 太郎」と入力してあって、
そこからLEFT関数とFIND関数を使ってB1セルに名字を、
RIGHT関数とLEN関数を使ってC2セルに名前を表示してあります。
ここからD1セルとE1セルに名字と名前の振り仮名を表示しなければ
いけないのですが、どうしたらいいのでしょうか?
ちなみに学校の課題で、PHONTENIC関数を習ったのでそれを使わないといけないかなー…と思ってるのですがうまくいきません。
よかったら回答お願いします。
659名無しさん@そうだ選挙にいこう:2009/05/29(金) 18:11:11
【1 OSの種類         】 WindowsXP
【2 Excelのバージョン .】 Excel2003
【3 VBAが使えるか   】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 データ配列
660659:2009/05/29(金) 18:14:30
すみません。途中で書き込んでしまいました。
以下、質問です。よろしくお願いいたします。

ワークシート上で、行に「名前・数量・単価・合計」という風に何行か並んでいるのを
列の並びに変換する方法はないでしょうか?

つまり、
名前 数量 単価 合計

名前
数量
単価
合計
に変えたいのです。
661名無しさん@そうだ選挙にいこう:2009/05/29(金) 18:38:03
EXCEL2007、VistaUltimateです。
グラフについての質問です。

一行目の[データ系列名]が[データ要素]と見なされている時、
これを[データ系列名]に変更するには、どうすれば良いのでしょうか
データ要素は二行目、三行目で、一列目はデータ系列名です。

よろしくお願いします。
662454:2009/05/29(金) 19:35:05
すみません。
>>454の質問で、>>458さんから「標準モジュールに Public PWD」と
回答を頂きましたが、Excel2000だと動作しませんでした。
(自宅のPCはExcel2003で、こちらで動作確認してました)

Excel2000では無理なのでしょうか?
663名無しさん@そうだ選挙にいこう:2009/05/29(金) 20:32:06
>>658
D1=LEFT(PHONETIC(A1),FIND(" ",PHONETIC(A1))-1)
E1=RIGHT(PHONETIC(A1),LEN(PHONETIC(A1))-FIND(" ",PHONETIC(A1)))
「A1」を「PHONETIC(A1)」と置換すればいいよ
>>660
コピー、貼り付けで「行列を入れ替える」にチェック
若しくはそれがA1-D1に入力されていれば、「A2=INDIRECT("r1c"&ROW()-1,0)」で舌にオートフィル
664名無しさん@そうだ選挙にいこう:2009/05/29(金) 20:35:59
>660
とりあえず並べ替えたいだけなら、
コピーして、右クリック→形式を選択して貼り付け
→行列を入れ替えにチェック
665名無しさん@そうだ選挙にいこう:2009/05/29(金) 22:24:00
【1 OSの種類         .】 WindowsXP SP2
【2 Excelのバージョン   】 Excel2000, 2002, 2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 フォルダ 作る

マクロで集計した結果を"集計結果.xls"という名前で"一時保管"というフォルダに
書き出していますが、ときどきこのフォルダごと消されてしまいます。
"一時保管"フォルダがあればその中に、無ければ"一時保管"フォルダを作って
その中に保存するには、どんなふうに書けばいいのでしょうか?
666名無しさん@そうだ選挙にいこう:2009/05/29(金) 22:47:49
>665
素朴な疑問、フォルダごとけされるっていうのは人為的に?
667665:2009/05/29(金) 22:54:17
>>666
そうです。
一時保管フォルダに入れたファイルは各自で消去するようにしてるのですが、
今日、フォルダごと消されたためエラーになりました。
社員教育の問題もありますね・・・

使った人のコンピュータ名(IPアドレス)を取得して、ログも取っておきます。
668名無しさん@そうだ選挙にいこう:2009/05/29(金) 22:58:03
Sub フォルダ消すんじゃねえおビキビキAA略()
Set FSO = CreateObject("Scripting.FileSystemObject")

MyPath = "C:\TEST\一時保管"
If FSO.FolderExists(MyPath) = False Then FSO.Createfolder (MyPath)

MyFile = MyPath & "\" & "集計結果.xls"
If FSO.FileExists(MyFile) = True Then FSO.DeleteFile (MyFile)
ActiveWorkbook.SaveAs MyFile
End Sub
669名無しさん@そうだ選挙にいこう:2009/05/30(土) 08:44:19
Excel関数やマクロを1日1時間時間をとって勉強すればどれくらいでそれなりに分るようになるでしょう?
670名無しさん@そうだ選挙にいこう:2009/05/30(土) 08:55:35
人によるとしか
671名無しさん@そうだ選挙にいこう:2009/05/30(土) 08:59:10
まずは1週間ぐらいで一区切りだな。
マクロの記録した物を見るだけでもある程度はわかるようになると思う。

さらに先に進んでちゃんと理解するには、変数とか制御構造とか精度とか、
他のコンピューター言語にも共通する概念の理解が必要になってくる。
こっから先は人によって理解力に差が出るので、何ヶ月もかかることもある。
672名無しさん@そうだ選挙にいこう:2009/05/30(土) 13:02:48
プッ、なんだなんだエクセルで、お勉強かっ
673名無しさん@そうだ選挙にいこう:2009/05/30(土) 13:28:50
セルに入った商品コード(半角英数字)をオートフィルタのキーにするとき、
*だと全部がヒットしてしまうので、5文字以上はOK、または5文字*もOK、
4文字以下はExit Subにするにはどうすればいいですか?

'途中まで書いたやつ
Dim PCODE
PCODE = Range("B5").Value
If Len(PCODE) >= 5 Then
'オートフィルタで抽出(略)
Else
Exit Sub
End If
674名無しさん@そうだ選挙にいこう:2009/05/30(土) 14:07:35
>>673
?????*ではだめですか
675名無しさん@そうだ選挙にいこう:2009/05/30(土) 17:03:49
エクセル2000
VBA勉強中
質問というか確認なんですが
生年月日からその人の年齢を表示する数式?
を書いたのですがこれでも合ってるのでしょうか?
とりあえずは動くのですが不安なのでチェックお願いします
ちなみにF10には生年月日が入ってます

=ROUNDDOWN(DAYS360(F10,TODAY())/360,0)
676名無しさん@そうだ選挙にいこう:2009/05/30(土) 17:12:53
自分の年齢計算してみたか?
ふつうはDATEDIFつかうね
677名無しさん@そうだ選挙にいこう:2009/05/30(土) 17:26:10

=DATEDIF(F10,TODAY(),"Y")

>>676
>>675のためにはならないかもしれないけどスマン。
678659:2009/05/30(土) 18:05:46
>>663-664
660です。
できました!
ありがとうございました。感謝します。
679名無しさん@そうだ選挙にいこう:2009/05/30(土) 18:15:09
【1 OSの種類         .】 WindowsXP sp2
【2 Excelのバージョン   】 Excel 2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 google でExcel "新しいタブ" リンク 等…

Excelで実験データを管理する、以下のようなファイルを作成しようとしています。
・タブ毎に、特定のフォーマットでデータベースを登録する (実験データタブ)。
・実験データタブを管理するタブを一個作成する       (管理用タブ)。

ここで質問なのですが、
管理用タブが、実験用タブの値を参照する事はできているのですが、
管理用タブにリンクを記述しておき、別のタブを開く方法が判りません…
実験データタブの数が少なくとも数百に達する為、
できればクリック一発で飛ぶ方法を見つけたいのですが…

素人な質問かもしれませんが、何卒ご教示下さい。
680名無しさん@そうだ選挙にいこう:2009/05/30(土) 18:19:48
関数などではなく、エクセルで文章作成をしなければならないのですが、何かメリットがあるのでしょうか?
不馴れで時間かかります。
こう言う使い方をする企業って多いものなのでしょうか?
681名無しさん@そうだ選挙にいこう:2009/05/30(土) 18:24:06
得意なワードなどのソフトで文章作成しておいてエクセルへコピー&ペースト
しとけば?
682名無しさん@そうだ選挙にいこう:2009/05/30(土) 18:31:38
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2000
【3 VBAが使えるか    .】 可
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル 角度 °

同僚からもらったファイルVBAの計算式で角度の表示を°→# で表示してます。
仕事で使っているVBAなのですべてアップロードできません。
やっていることは0°から 180°まで1°ずつ角度を増やしています。
ここで質問は#を角度として使ってokなのか知りたいことです。

やっていることは
A = 0#
B = 180#

A=A+1#

A=Bになるまで計算します

#の取り扱いについてご教授いただきたくおねがいします
683>>675:2009/05/30(土) 19:11:37
>>676
自分の年月日入れても合ってました(汗)
しかし色々チェックするとなんか微妙な動きをしてたもので

>>677
=DATEDIF(F10,TODAY(),"Y")
コピペさせてもらいました、しかしDATEDIFとは
どのような関数なのか解らなかったので
ググッてみます(笑)
684名無しさん@そうだ選挙にいこう:2009/05/30(土) 19:14:41
>>680
多くはないけど程度の低い会社には結構あることだな

頭の中で全体のレイアウトを構成し、それを実現するためにはどうすれば良いかを考えられない無能者にとって
Excelの罫線は作りながらレイアウトを錬っていける便利な機能なのだよ
小学生が高学年では罫線ノートを使うが、低学年では方眼ノートを使うのと同じ

ある程度のものを作ろうとすると逆に邪魔になるんだが、そこまでの物を求められない無能者にはExcelの方が
文書作成に使いやすいんだろうね
685名無しさん@そうだ選挙にいこう:2009/05/30(土) 19:19:12
>>684
うちの会社もエクセルで文章というか日報書かされる。
アホ上司はプリントアウトした時の見栄えしか考えてない。
686名無しさん@そうだ選挙にいこう:2009/05/30(土) 19:25:58
>>683
#は倍精度浮動小数点数型(Double)を示す記号
その用途だとA=Bにならないことがまれにあるかもしれないから、ふつうは整数型をつかうとおもう
687名無しさん@そうだ選挙にいこう:2009/05/30(土) 19:39:25
Wordは高機能すぎて詳しくない人間には使いづらい。
ちょっと文章打って簡単にレイアウトするならExcelの方が楽だ、ってなっちゃうんだと思う。
688名無しさん@そうだ選挙にいこう:2009/05/30(土) 20:38:48
まぁ実際A41枚に収まる程度ならどっちでもいいと思うけどな
逆に、Excelもちゃんと使い慣れてない人が作ると
右側切れまくりだったりするし
689679:2009/05/30(土) 21:01:36
自己解決しました。

=HYPERLINK("#タブ名!A1","ラベル")
=HYPERLINK("[ファイル名]#タブ名!A1","ラベル")

のようにする事で解決可能でした。セルの位置まで指定しなければ上手く行かないんですね…
690682:2009/05/30(土) 21:05:08
>>686
ありがとうございます。
691名無しさん@そうだ選挙にいこう:2009/05/30(土) 21:07:13
ワードは高機能で確かに見栄えのいい文書が作れるが・・
ちょっとした報告書程度のものならほとんどエクセルだな
表とかも楽に作れるし

逆にエクセルばっか使ってるからワードが使えんorz
692名無しさん@そうだ選挙にいこう:2009/05/30(土) 21:08:15
てゆーか、ルーラー管理とか行間の処理に困るだろ
Excelで文書作成とかありえんわ
693名無しさん@そうだ選挙にいこう:2009/05/30(土) 21:10:53
申請書とか月報とかの定型文書はExcelが多用されるな。
等幅フォントにすると、印刷時文字が隠れる割合が減る w
あと、数字とか入れる欄がある場合は、数式作っておいて
勝手に増加したとか減ったとか、予算達成とか書けるんで
横着な人には少し便利かも w
694名無しさん@そうだ選挙にいこう:2009/05/30(土) 21:21:31
>>692
こんな方法使えばどうにでも作れる
ttp://excel.k-solution.info/2006/02/post_5.html

>>693のように定型文書はExcelで作る方が楽だね。
695名無しさん@そうだ選挙にいこう:2009/05/30(土) 21:46:25
文書って定型文書のことをいってんのか?
それなら>>694の方法でつくるのはあたりまえだ。だれでもやってる。

報告書みたいなものをExcelでつくるとしたら無理だってはなし。
第一、行送りをセル内改行でするとしても、セル内なら行の高さを
調整できないし、行を変えるとしたら文字の追加・削除をするたびに
行送りを手動で行う必要がある。そんなこととてもやってられない。
696名無しさん@そうだ選挙にいこう:2009/05/30(土) 21:48:48
×定型文書はExcelで作る方が楽
△定型文書は使い慣れたソフトで作る方が楽
○定型文書に限らず使い慣れたソフトで作る方が楽

Wordを使いこなせれば、定型文書だってWordで楽に作れる
> あと、数字とか入れる欄がある場合は、数式作っておいて
> 勝手に増加したとか減ったとか、予算達成とか書けるんで
あたりも、やり方次第で掛かる手間はExcelと変わらず、より見やすく見栄え良く出きる
697673:2009/05/30(土) 21:49:08
>>674
意味がわからんw

俺だけが使うわけじゃなので・・
698名無しさん@そうだ選挙にいこう:2009/05/30(土) 21:57:54
? は1文字

????? は5文字

?????* は5文字*

5文字* は君の要望
699名無しさん@そうだ選挙にいこう:2009/05/30(土) 22:04:15
>>698
もうええわ。
700名無しさん@そうだ選挙にいこう:2009/05/30(土) 22:20:15
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2007(保存形式はExcel97-2003ブック)
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 できるだけ否
【5 検索キーワード     】 セル 指定 可変
対戦ゲームの戦績表を作ってます
試合結果(対戦相手・勝敗)を入力すると、
自動で全体/相手ごとの試合数・勝敗などを表示するものを作りたいです
ここで、最新の100試合分の勝敗などを表示させたいと思っています
(100試合未満の時は表示なし、またはそこまでの試合分のみなどで誤魔化す)
COUNTIFで特定範囲の勝敗を計算させようと思いましたが、最新の100試合のみを
指定する方法が分かりませんでした

作製中のものをアップしました
全くこの通りの形を維持する必要はないですが、表の横幅はあまり変更したくないです
ttp://up2.shinetworks.net/cgi-bin/snup-mini/src/shinemini13296.zip.html
DL KEY:excel

以下アップしたものの捕捉
・2行目と14行目のF〜U列は対戦相手の名前(仮にA〜Xとしています)
・F15以降に対戦結果を入力(勝ち:○ 負け:●)
・B〜E列の15行目以降の入力情報は未定なので、計算用に使用してもOK
・現状1000試合分の入力欄があるが、必要に応じて追加したい
701名無しさん@そうだ選挙にいこう:2009/05/30(土) 22:47:16

          ∧∧
        ⊂(・∀・)つ-、  そんな貴方に、ピボットテーブルw
      ///   /_/:::::/   
      |:::|/⊂ヽノ|:::| /」
    / ̄ ̄旦 ̄ ̄ ̄/|
  /______/ | |
  | |-----------|
702名無しさん@そうだ選挙にいこう:2009/05/30(土) 22:59:32
680です。皆さんありがとうございます。
やっぱり変じゃなかったんですか。
助っ人みたいな感じで、言われるままに作るには作るけど、逆に
「ェェ!エクセル使いこなせないの?」と、呆れられます。
A4にビッシリちまちま何これ? 凄く時間掛かるし汚いです。

>>681さん
ありがとうございます。
コピー&ペースト出来るんですか?
エクセルで開いた時、印刷した時バランス良く現れてくれますか?
コツがあれば教えて下さい。
703名無しさん@そうだ選挙にいこう:2009/05/30(土) 23:50:10
>>702
ペースト時、そのまま貼り付けるのではなく「形式を選択して貼り付け」→
「Microsoft Word文書オブジェクト」→enter(OKボタンクリック)
としていけばワードでつくった文書はオブジェクトとして貼り付けることが出来る。
この場合作成した文書や罫線をそのまま形を崩さず貼り付けることが出来ます。

印刷時は印刷プレビューを立ち上げて「設定」でレイアウトを弄っていけば
良いかと思います。
704703:2009/05/31(日) 00:19:33
だけどいちいちそんな手間掛けるのも何だけどね。
705名無しさん@そうだ選挙にいこう:2009/05/31(日) 01:02:21
>>703さん
早速ありがとうございます!テストしてみます。
>>704
それはそうかもしれませんが、ボリュームあったり枠が細々している場合703さんの方法が私には向いているかも。
出来栄えに対する消化不良も無くなるでしょうし。
706名無しさん@そうだ選挙にいこう:2009/05/31(日) 03:21:44
ワープロがわりにExcel使うなハゲとか怒られるのはわかるけど
うちは各営業所が作成した報告書をExcelでテーブル化してるんで
報告書もExcelの方がマクロで一気にまとめれて楽なんだよね。

Wordは高機能だけど初心者には何をどうしていいかわからんな。
使いこなしてる人は尊敬するよ。

>>699
? は *と同じくワイルドカードだよ。
707名無しさん@そうだ選挙にいこう:2009/05/31(日) 03:43:32
【1 OSの種類         .】 WindowsXP sp2
【2 Excelのバージョン   】 Excel 2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 google でExcel "新しいタブ" リンク 等…

実現したい事は、以下の通りです。
あるページから、別のページの特定のセルを記述したいです。
=ページ名!セル座標
と記述すれば参照できることは判っています。
やりたい事は、この 『ページ名』 を、別のセルに入れておき、
そのセルの番号を指定して、別のページのセルを参照したいのです。

例えば、
Sheet1 のA1に "Sheet2"
と記述し、
Sheet2 のB5を参照するのに、
Sheet1のA2 から 『=Sheet2!B5』 と記述する代わりに、
『=A1!B5』のような記述(これは上手く行かない)のようにしたいのです。

どのようにすれば直接数式の中にページ名を入れずに値を参照できるでしょうか?

708名無しさん@そうだ選挙にいこう:2009/05/31(日) 03:53:44
>>707
=INDIRECT(A1&"!B5")
709名無しさん@そうだ選挙にいこう:2009/05/31(日) 17:51:20
>>708
おかげさまで解決しました、有難う御座いました!!!
710名無しさん@そうだ選挙にいこう:2009/05/31(日) 18:27:31
>>706
WordがExcelみたいにシートになっていて一つのブックにまとまって
いればもっと活用されていたかもな。昔はそのためにバインダー
なんてものがあったが、ほとんど誰にも相手にされず消えていったけど。
711名無しさん@そうだ選挙にいこう:2009/05/31(日) 23:16:02
教えてください。

一つのセルに長っい文を入れたいのですが、「文がはいっっている
状態でもそのセルの高さ幅は横や上の他のセルと変わらず、その
セルをクリックすると初めて、文全体が表示される」といった
形式の入力法が知りたいんです。

自分でやってみてるんですが、普通に入力してしまうとそのセルのみが
以上に長く大きくなってしまいます。

クリックしなければ
712名無しさん@そうだ選挙にいこう:2009/06/01(月) 01:02:51
散布図上に回帰直線等ではなく、任意の直線を引くことはできますか?
713名無しさん@そうだ選挙にいこう:2009/06/01(月) 01:03:44
>>711
「クリックすると文全体が表示される」ってセルに表示されるの?
数式バーに表示されるの?
後者だとしたら入力するセルの右セルに空白なり何か文字が入っていれば
全部表示されないけどそういうことじゃなくて?
714名無しさん@そうだ選挙にいこう:2009/06/01(月) 02:11:15
検索するマクロで、A1セルに"*"が入ってたら終了させたいのですが、
Ifの後は何て書けばいいの?
715名無しさん@そうだ選挙にいこう:2009/06/01(月) 02:20:45
If ActiveSheet.Range("A1") = "*" Then Application.Quit
716名無しさん@そうだ選挙にいこう:2009/06/01(月) 06:56:32
チェックボックス使えよw
717名無しさん@そうだ選挙にいこう:2009/06/01(月) 08:22:30
>>712
引けるよ
718名無しさん@そうだ選挙にいこう:2009/06/01(月) 14:34:01
質問です。
A1:F20000をセルの塗りつぶしで白黒の市松模様にするにはどうしたらいいですか?
できればVBAでやりたいのでお願いします。
ModとかRowを使うんでしょうがいまひとつまとまりません。
719名無しさん@そうだ選挙にいこう:2009/06/01(月) 19:41:14
>>718
条件付書式をVBAでいれる方法
Sub test()
With Range("A1:F20000")
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=MOD(ROW()+COLUMN(),2)"
.FormatConditions(1).Interior.ColorIndex = 1
End With
End Sub
720名無しさん@そうだ選挙にいこう:2009/06/01(月) 22:25:23
>>718と逆のパターンの方がいいかも

Sub test2()
With Range("A1:F20000")
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=MOD(ROW()+COLUMN(),2)=0" '← >>718との違いはここで=0のみ
.FormatConditions(1).Interior.ColorIndex = 1
End With
End Sub

色づけを無しに戻す
Sub test3()
Range("A1:F20000").FormatConditions.Delete
End Sub
721711:2009/06/02(火) 00:07:39
>>713
「クリックすると文全体が表示される」ようにしたい、というのは
そのままだと、文が挿入されているセルの大きさは小さくて
他のセルと揃っていて、でも長文はすべて入っているため、文の一部が
わくの範囲に一部見えるのみです。が、そのセルをクリックすると、
表の罫線とかにかぶさって罫線は見えなくなってしまいまるで、
いちまいのシートの上に全文があるようにそこだけ別枠?(枠線は
ないけれど)で浮き出てるような感じです。このとき、数式バーにも
文が同時に表示されていて、修正はバーで行ったと思います。

こんな説明でわかりにくくて申し訳ありません。
722718:2009/06/02(火) 00:31:54
>>719-720
そうか行番号と列番号を足したものをModすればいいんですね。
参考になりました。ありがとう。
723名無しさん@そうだ選挙にいこう:2009/06/02(火) 00:38:51
drg
724名無しさん@そうだ選挙にいこう:2009/06/02(火) 00:41:04
>721
長文の文字数が、数式バーでの表示で、4行を超えると枠からはみ出ないで
########の表示になるみたい。
・・・こういうこと?
725名無しさん@そうだ選挙にいこう:2009/06/02(火) 19:40:53
CSVに12桁の数字があって、それを開くと数式みたいなのになってます。
でもセルをクリックすると数字になってます。
これを直すには、どうすればいいですか?
726名無しさん@そうだ選挙にいこう:2009/06/02(火) 19:54:35

  おーい、エスパー!!

    こっちこっち。>>725を頼むよ。
727名無しさん@そうだ選挙にいこう:2009/06/02(火) 19:57:42
文字列で「=A1」とセルに入ってるとします(実際はもっと長いのですが)
こういう文字列が大量にあるとき、どうすれば数式と認識されるのでしょうか
728エスパー:2009/06/02(火) 20:00:38
>>725
セルの書式設定→表示形式→
分類;ユーザー設定
種類;0

>>727
セルの書式設定→表示形式→
分類;標準→OK
セルの上でF2押した後、Enter押す。
729名無しさん@そうだ選挙にいこう:2009/06/02(火) 20:02:04
>>728
ありがとうございます
一度にやる方法はありますか?ないならキーボードマクロと組み合わせてやってみます
730名無しさん@そうだ選挙にいこう:2009/06/02(火) 20:14:40
>>279
表示形式を標準にしてから、データ 区切り位置 次へ 次へ 完了
731名無しさん@そうだ選挙にいこう:2009/06/02(火) 20:17:30
>>727
1列だけなら
データ→区切り位置→完了
でできるんでループすれば?
732名無しさん@そうだ選挙にいこう:2009/06/02(火) 20:45:17
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 使える
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 図 画像 解像度 dpi

シートに図を貼り付け印刷したところボケけしまい困っています。
ボケるというか dpi が下がるというかギザギザな画像になってしまいます。
もとの画像は 300dpi で作ってあり、図の挿入で張り付けました。
図の「サイズとプロパティ」の高さ・幅はそれぞれ100%。
印刷時のページの拡大縮小で80%。

試してみたこと:
「ページ設定」の印刷印刷品質は 300dpiと 600dpi で試してみました。
プリンタは2台と仮想PDFプリンタ1台の計3台で試しました。
画像を PNG,BMP,TIF で作り直してみました。

ボケの程度の若干の差はありますが、すべてのパターンでギザギザが
はっきり分かるくらいボケてます。解決策を教えていただけないでしょうか?
733名無しさん@そうだ選挙にいこう:2009/06/02(火) 20:54:53
>>732
図のプロパティは100%だろうけど
シートの表示は100%かな
734732:2009/06/02(火) 21:19:17
>>733
工エエェェ(´д`)ェェエエ工
まさか画面上の拡大縮小が印刷に影響しているとは・・・・・。

即答、ありがとうございます。解決しました。
なやんだ時間はなんだったんだ・・・。

735725:2009/06/02(火) 21:50:01
>>728
すいません。セルの書式設定というのはどこにあるのでしょうか?
書式→セルにはありませんでした。
736725:2009/06/02(火) 21:50:52
エクセルは2003です。
737725:2009/06/02(火) 21:54:01
セルの書式設定がみつかりました。
お騒がせしました。
738名無しさん@そうだ選挙にいこう:2009/06/02(火) 21:55:20
>>735
Ctrl+1か
右クリックして選択するか
メニューの書式→セル
739名無しさん@そうだ選挙にいこう:2009/06/02(火) 22:14:52
>>734
ごめんなさい
ちゃんと質問読んでませんでした
まさか関係有るとは思わずに
答えてしまった所正解だったいうマジエスパーでした
740名無しさん@そうだ選挙にいこう:2009/06/02(火) 22:36:53
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2000
【3 VBAが使えるか    .】 可
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 SubまたはFunctionが定義されていません

A列に文章が書いてあり、一度、MS明朝にし、">" という不等号があったら
それ以降の右側の文字をMSゴシックにして強調したいです。
100行目でSubまたはFunctionが定義されていませんとエラーになってしまいます。
どこを直せばいいのでしょうか?

Sub ゴシック化()
Dim i, X, Y, Z
10 Columns("A:A").Font.Name = "MS 明朝"
20
30 Z = Range("A65536").End(xlUp).Row
40  For i = 1 To Z
50
60   If Left(Cells(i, 1), 1) = ">" Then
70    Cells(i, 1).Font.Name = "MS ゴシック"
80   End If
90
100   X = Find(">", Cells(i, 1))
110   Y = Len(Cells(i, 1)) - X
120
130    If X > 0 Then
140     Cells(i, 1).Characters(Start:=X, Length:=Y).Font.Name = "MS ゴシック"
150    End If
160
170   Next i
180
End Sub
741名無しさん@そうだ選挙にいこう:2009/06/02(火) 23:20:15
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2002
【3 VBAが使えるか    .】 不可
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 関数 特定条件 抽出 セルを返す
                 0以下

以下のようなシートを組んでいます。
____在庫数_1日目消費数_1日目在庫_2日目消費数_2日目在庫_・・・・
りんご   
いちご
なし

各品目について、2列目に入力した在庫数に対し、一日ごとに消費数を引いていく表です。
ここで、在庫数がマイナスになる日が何日目かをセルに表示したいのですが、
関数のみで可能でしょうか?
IF関数は複数範囲の指定ができないと記憶しています。
VLOOKUP関数などを調べてみましたが、そのセル自体の値が欲しいわけではないので、
つまづいています。やり方のヒントをご教示願います。
742名無しさん@そうだ選挙にいこう:2009/06/02(火) 23:24:15
>740
文字列対象の検索はInStr関数を使います。詳しくはヘルプ参照してください。
743742:2009/06/02(火) 23:41:15
>740
試してみました。100行の部分だけだと最後の1文字がフォント変更されなかったので、Yを+1してます。

Sub ゴシック化()
Dim i, X, Y, Z
010 Columns("A:A").Font.Name = "MS 明朝"
020
030 Z = Range("A65536").End(xlUp).Row
040 For i = 1 To Z
050
060 If Left(Cells(i, 1), 1) = ">" Then
070 Cells(i, 1).Font.Name = "MS ゴシック"
080 End If
090
100 X = InStr(Cells(i, 1), ">") ←Findから変更
110 Y = Len(Cells(i, 1)) - X + 1 ← + 1 を追加
120
130 If X > 0 Then
140 Cells(i, 1).Characters(Start:=X, Length:=Y).Font.Name = "MS ゴシック"
150 End If
160
170 Next i
180
End Sub

セル内の文字の一部のフォントを変更する方法は、自分にとって初めてでした。勉強になります。
744740:2009/06/03(水) 00:26:30
>>742-743
ありがd!!
感動(完動)しますた。
745740:2009/06/03(水) 00:41:37
If Left(Cells(i, 1), 1) = ">" Then
  Cells(i, 1).Font.Name = "MS ゴシック"
End If

これは不要でしたね・・・
746名無しさん@そうだ選挙にいこう:2009/06/03(水) 00:47:28
>>741
かなり無理矢理だけど。
数式列をA列に挿入してA2に
=INDEX($C$1:$I$1,1,MATCH(0,$C2:$I2,-1)+1)
747名無しさん@そうだ選挙にいこう:2009/06/03(水) 01:02:37
別にA列でなくても最終列でもいいけど。
748名無しさん@そうだ選挙にいこう:2009/06/03(水) 09:24:01
【1 OSの種類         .】 WindowsXPSP3
【2 Excelのバージョン   】 Excel 9.0.3821 SR-1
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】エクセルの書式

質問させてください
セル1/8と記入したいのですが1月8日となってしまいます。
セル内で右クリックで書式設定で標準を選んでも1月8日となってしまいます
どうすればいいのでしょうか?
749名無しさん@そうだ選挙にいこう:2009/06/03(水) 09:27:58
エクセルVBAで

a=1
b=2
c=3
.
.
.

などと記載したコードのイコール左辺と右辺を入れ替えるのに
簡単な方法ないものですか?
ユーザーフォームテキストボックス=シート内セルデータの
入力と呼び戻しで左右入れ替えが必要なんだけど
一つ一つカットペーストしてますが
100行以上あってそこそこ面倒なのです。

教えてくださいませ

750名無しさん@そうだ選挙にいこう:2009/06/03(水) 09:35:40
>>749
コピーしてシートに貼り付け
メニューから、データ→区切り位置→カンマやタブなど…→区切り文字 その他 =
ドラッグして位置を入れ替え、=をフィルコピー
コピーして貼り直す
751748:2009/06/03(水) 09:44:42
自己解決しました文字列でした。
752名無しさん@そうだ選挙にいこう:2009/06/03(水) 11:54:29
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel セルの書式設定 表示形式 空白 任意の文字を表示

空白セルの時任意の文字「-」を表示する、という表示形式の設定はできますでしょうか?
753名無しさん@そうだ選挙にいこう:2009/06/03(水) 13:35:51
>>752
入力されているデータに対する 「書式設定」 だから、何もないところにデータを表示させることは出来ない。
VBA使えば空白セルに「-」を表示させることは可能。
754名無しさん@そうだ選挙にいこう:2009/06/03(水) 20:39:44
>>752
特定のセルに対して、そのセルが空欄の場合、別のセルに−を表示するのはIF関数で
例えば特定のセルをA1と仮定する場合、
=IF(A1="","-",A1)
とすれば空欄を-表示にすることは出来るけど

そういうことじゃないよね。
755名無しさん@そうだ選挙にいこう:2009/06/03(水) 23:47:42
(x-y)2
2は2乗

の計算をエクセルでしたい場合関数は何を入力すればいいでしょうか?
756名無しさん@そうだ選挙にいこう:2009/06/04(木) 00:16:06
>>755
=(x-y)^2
757名無しさん@そうだ選挙にいこう:2009/06/04(木) 01:37:46
それは演算子な
関数でやる場合は
=POWER(x-y,2)
758名無しさん@そうだ選挙にいこう:2009/06/04(木) 01:58:36
>>756-757
ありがとうございます
759名無しさん@そうだ選挙にいこう:2009/06/04(木) 12:22:58
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 VBA offset
VBAの質問です
セルのA1:C5が結合セル
セルのD1:E5が結合セルで"あ"という文字が入っています

A1:C5のセルに"い"という文字をマクロで入力するのに
以下のコードを書きましたがうまくいきません

Sub test()
Dim seru As Range
Set seru = Cells.Find(What:="あ").Offset(0, -1)
seru.Value = "い"
End Sub

対処方法を教えてください
ちなみに Offset(0, -1)をOffset(0, 1)に書き換えると
セルのF1には"い"の文字が入ります

よろしくお願いします
760名無しさん@そうだ選挙にいこう:2009/06/04(木) 13:06:13
>759
mergearea を入れて、2ステップにするとうまくいきます。
Sub test()
Dim seru As Range
Set seru = Cells.Find(What:="あ")  ←オフセットは入れずに
seru.Offset(0, -1).MergeArea.Value = "い" ←ここでmergeareaと組み合わせる
End Sub
761名無しさん@そうだ選挙にいこう:2009/06/04(木) 13:24:21
>>760
おかげさまで解決しました
プラス方向にoffsetだと結合セルでもうまくいくのに
マイナス方向だとうまくいかないのでかなり悩んでいました
ありがとうございました
762名無しさん@そうだ選挙にいこう:2009/06/04(木) 13:27:13
>761
2ステップに分けなくてもokでした。(いろいろテストしたときに間違えたのかも)
Set seru = Cells.Find(What:="あ").Offset(0, -1).MergeArea
seru.Value = "い"
これでもよかったのね。
763名無しさん@そうだ選挙にいこう:2009/06/04(木) 13:33:23
>>762
うまくいきました
もっと経験を積んで精進します
764名無しさん@そうだ選挙にいこう:2009/06/04(木) 20:16:31
Excelを初心者並にしか扱えないのに、上司が勝手に上級者に仕立て上げ困っている新卒社会人です。
その上司から今日頼まれ事をされました。
「Excelを開く時と閉じる時に‘非表示モジュールがなんちゃらかんちゃらでコンパイルエラーがどうちゃらこうちゃら’というエラーが出るからどうにかしてくれ」
と。

そそくさと帰ってきたので、バージョン等を確認しておりませんで、怒られるの覚悟ですが、分かっているのは

・上司のパソコンは古い
・Adobeのバージョンは7,0
・他のパソコンのExcel2003で作成したファイルをフロッピーに移し、上司のパソコンで開く時のみ上記のエラーが出る

という感じです。

ググってみると
1・Excelのファイル内にある、dotファイルとexlファイルを別の場所に移動させる
2・Adobeのバージョン5の最新のアドオンをダウンロードする
という2つが対処法として挙げてありました。
3・ノートンアンチウィルスをなんちゃらかんちゃら

時間が無かった(パニクっていた)ので、対処法1のみを実行しました(対処法3はノートン自体が上司のパソコンに入っていなかったのでスルー)が、やはり同じエラーがorz
「明日までの宿題ね!」
ということで帰ってきました。

明日、対処法2を実行しようと思うのですが、万が一それでも解決しなかったらと考えると不安でたまりません。
そこで、もし他にも考えられる原因・対処法がありましたらご教授下さい。
お願いします
765名無しさん@そうだ選挙にいこう:2009/06/04(木) 20:29:06
マクロを書いてる途中ですが、シートごとに行数が変わる最下行に合計値を数式で表すとき、
同じようなことを繰り返しています。もっと簡素化する書き方を教えてください。

With Worksheets("DATA")
件数 = .Range("A65536").End(xlUp).Row - 2
'DATAの合計
.Range("C65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)"
.Range("D65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)"
.Range("E65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)"
.Range("G65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)"
.Range("H65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)"
.Range("I65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)"
.Range("K65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)"
.Range("L65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)"
.Range("M65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)"
.Range("O65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)"
.Range("P65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)"
.Range("Q65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)"
End With
766名無しさん@そうだ選挙にいこう:2009/06/04(木) 21:05:56
>>765
Sub a()
For i = 99 To 113
If i <> (102 Or 106 Or 110) Then
With Worksheets("DATA")
件数 = .Range("A65536").End(xlUp).Row - 2
.Range(Chr(i) & "65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)"
End With
End If
Next
End Sub

もしかして、C〜Qの最終行は同じ行?
767名無しさん@そうだ選挙にいこう:2009/06/04(木) 21:06:27
まったく検証してないがこんな感じか?
Dim i as long
For i = 1 to 12
 .Range("C65536").offset(0,i-1).End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)"
End With
768名無しさん@そうだ選挙にいこう:2009/06/04(木) 21:06:28
>>764
コンパイルエラーは大抵現物見なきゃわからん
そのエラーの出るブックをうp出来ないなら
自分が初心者であることを正直に話して他の人にその仕事振ってもらえ


>>765
For i = 3 To 17
  If (i Mod 4) <> 2 Then
    .Cells(65536, i).End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)"
  End If
Next i

------------------------------------------------------------
For i = 0 To 3
  For j = 0 To 2
    Cells(65536, 3 + i * 4 + j).End(xlUp).Offset'以下略

------------------------------------------------------------
For Each c In Split("C D E G H I K L M O P Q") 'もしくはArray("C", "D"〜
  Range(c & "65536").End(xlUp).Offset'以下略

769名無しさん@そうだ選挙にいこう:2009/06/04(木) 21:44:15
>>768
ご返答感謝します。
うp出来るとおもいます。
ちなみに、エラーが出た際にヘルプを見ると、‘〜が保護されているから解除してくれ’と表示されました。
肝心の〜の部分が思い出せないのですが…
770名無しさん@そうだ選挙にいこう:2009/06/04(木) 22:15:27
そんなウンコみてーなライブラリの参照設定してるブックうpさせんなよ。アホか
771765:2009/06/04(木) 22:23:52
>>766-768
みなさん、ありがとうございます。
For i で回してるので、i を ii に変えて試しました。

>>766
C〜Qの最終行は同じ行になります。
そのまま使えました。

>>767
C〜Qなので、12を15に変えるだけで使えました。
件数 = .Range("A65536").End(xlUp).Row - 2
For ii = 1 To 15
.Range("C65536").Offset(0, ii - 1).End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)"
Next ii

>>768
そのまま使えました。
また、Mod 演算子というのを初めて知りました。

ただ不思議なのは、767さんのFor文でも何故かF列、J列、N列に数式(例えば、=SUM(F3:F2085))が
入ってないんです。うぅ〜ん・・・
772名無しさん@そうだ選挙にいこう:2009/06/04(木) 22:26:28
>>771
>F列、J列、N列に数式(例えば、=SUM(F3:F2085))が入ってないんです。
わざと抜いてるからだけど
もしかしてFJNにも入れるの?
773765:2009/06/04(木) 22:30:55
>>772
FJNには不要です。

何度見ても、何故FJNに入らないのか分かりません。
774名無しさん@そうだ選挙にいこう:2009/06/04(木) 22:34:54

表示形式について質問です。

「2009/6/4 12:34:56」がシリアル値で入っているセルに表示形式を設定して
「分」の「34」のみを2桁表示したいのですが、「mm」にすると分ではなく月の「06」になってしまいます。
時や秒、記号などを表示せず、シリアル値に対する表示形式の設定のみで
「分」のみを2桁表示させる方法を教えてください。

WinXP/Excel2003/非VBAでお願いします。
775765:2009/06/04(木) 22:37:37
771、773の疑問ですが分かりました。
.End(xlUp).Offset(1, 0)がミソですね。
776名無しさん@そうだ選挙にいこう:2009/06/04(木) 22:38:07
【1 OSの種類         .】 WindowsXP sp2
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 EXCEL ショートカットキー 無効化

EXCELで数式を入力するときなどに記号や大文字アルファベットを入力するためにSHIFTキーを使います。
しかしEXCELにはShift+SPACEキーに行選択をするショートカットキーが割り当てられているので
たまにSHIFTキーを離さないままでSPACEキーを押してしまうとこのショートカットキーが反応してしまいます。
他のテキストエディタなどでは気にせずにShiftを押したままSPACEキーを押していたので、
EXCELも同じ感覚で操作をするために上記のショートカットキーを無効化したいのですが、キー割り当ての設定は見当たりません。
どのようにすれば無効化できるでしょうか?
777名無しさん@そうだ選挙にいこう:2009/06/04(木) 22:38:25
>773(765)
横レスですが、F列、J列、N列にも他の列と同じ行までデータがありますか?
列毎に最終行位置を計算しているので、F、J、N列のどこかには計算式があるはず。

というか、C〜Qまで合計行位置が同じなら列毎にEndで最終行位置を計算するのは無駄な気がする。
ここまで書いたら>775で気付かれたようです。
778名無しさん@そうだ選挙にいこう:2009/06/04(木) 23:23:17
>>774
そんな表示形式はない。
それとも仕方なくm.0として34.0と表示するか?
779名無しさん@そうだ選挙にいこう:2009/06/04(木) 23:27:22
>>774
[m]
ぐらいしか。一時間以内の時に限られるけど
後はminute関数を使って別セルに出すか
780765:2009/06/04(木) 23:27:50
>>777
データが無いので、例えばF2セルには =SUM(F1:F59463) が入ってました。

>列毎にEndで最終行位置を計算するのは無駄
確かにw
781名無しさん@そうだ選挙にいこう:2009/06/04(木) 23:29:12
>>774
見た目だけでよいなら
表示形式のユーザー定義で
mm と入力したあとで Ctrl+J を入力してそのまま s と入力
配置タブで 縮小して全体を表示する、折り返して全体を表示する、にチェック。
分のあとに 改行コードを入れてるので見た目は分だけに見える。

この技を使うと見た目だけ千円単位や億円単位にすることもできるよ。
782名無しさん@そうだ選挙にいこう:2009/06/04(木) 23:41:00
>>765
Sub a()
件数 = Worksheets("DATA").Range("A65536").End(xlUp).Row - 2
g = Worksheets("DATA").Range("C65536").End(xlUp).Row + 1
Range("C" & g & ":E" & g & ",g" & g & ":i" & g & ",k" & g & ":m" & g & ",o" & g & ":q" & g) = "=SUM(R[-" & 件数 & "]C:R[-1]C)"
End Sub
783774:2009/06/05(金) 00:04:40
>>778
自分も無いような気はしているけど、無いという証拠もないので聞きに来ました。

>>779
先にも書いたように時間ではなく時刻なのでその方法は使えません。
現在は値を入れた列を非表示にして別セルにMINUTE関数で表示していますが
別セルを使わない方法があればと思い「シリアル値に対する表示形式の設定のみで」と
させていただきました。

>>781
その手法は自分も千円単位のときによく使いますが、Ctrl+J以降が表示されないわけではなく、
セルの高さを1行分丁度にするとか、セルの高さを変える度に改行(Ctrl+J)数を変えるなどの
必要があるのが玉に瑕です。見た目だけでよいのですが、そういう制限が無い手法を探しています。
784名無しさん@そうだ選挙にいこう:2009/06/05(金) 00:42:45
>>784
VBAのFormat関数にはmの代わりに分を表すnがあるんだが、残念ながら表示形式にはないので無理だろう。
もしかしたら英語版には万が一あるかも知らんが、まぁないだろうな。
785名無しさん@そうだ選挙にいこう:2009/06/05(金) 02:43:36
ボタンをクリックしたときに

cell(1,4)のvalueを現在の日時にしたいのですが、
フォーマットとしては、

○月○日 ○時○分
と出て欲しいです。

time と dateで組み合わせようとしましたが、難しくてできませんでした。
now() 関数から上のように組み立てればいいのでしょうか?
786名無しさん@そうだ選挙にいこう:2009/06/05(金) 05:36:37
>>785
セルの書式設定で
m"月"d"日" h"時"m"分"
787680:2009/06/05(金) 08:04:49
680です。
702さん、その節はありがとうございました。 ところがどうしても同じ表示が出ません。

>>702
ペースト時、そのまま貼り付けるのではなく「形式を選択して貼り付け」→
「Microsoft Word文書オブジェクト」→enter(OKボタンクリック)
としていけばワードでつくった文書はオブジェクトとして貼り付けることが出来る。
この場合作成した文書や罫線をそのまま形を崩さず貼り付けることが出来ます。

と、Microsoft〜がそもそも表示されません。
何か方法はありませんでしょうか?
未だにエクセルでの文章に慣れません。
よろしくお願いします。
788名無しさん@そうだ選挙にいこう:2009/06/05(金) 09:45:39
お質問

・Userform1がある(メインメニュー)
・Userform1内に
  Unload Userform1
 Userform2.show
 が記述されているコマンドボタン1がある

・Userform2が開く
・Userform2内にテキストボックスがある
・Userform2内にコマンドボタン1がある
・コマンドボタン1を押すとテキストボックス内の文字が
 エクセルシート1に書き込まれる

・Userform2内に
 Unload Userform2
Userform1.show
 のコマンドボタン2がある

↑このコマンドボタン2を押せば
Userform2が消えてUserform1が開くはずなのに
Userform2が消えずに画面に残るのだけれど
なぜなのでしょうか?
789名無しさん@そうだ選挙にいこう:2009/06/05(金) 11:00:01
>788
当方の環境はWindowsXp(sp3)、Excel2003で試してみましたが、問題なくUserForm2が消えて
UserForm1が表示されました。
念のため、UserForm2のコードをそのままコピペします。
Private Sub CommandButton1_Click()
Worksheets(1).Range("A1").Value = UserForm2.TextBox1.Text
End Sub

Private Sub CommandButton2_Click()
Unload UserForm2
UserForm1.Show
End Sub
790名無しさん@そうだ選挙にいこう:2009/06/05(金) 11:53:45
Excel2000です
データの入力規則(入力の種類:リスト)で重複を排除したデータのみ表示
する方法がありますでしょうか?
791785:2009/06/05(金) 15:23:28
>>786
ありがとうございます。
ちょっと欲張って
送信日時: ○月○日 ○時○分
とセルに格納したかったのですが、

私の考えでは
CONCATENATE("送信日時:", Format("m"月"d"日" h"時"m"分"",now())
とやれば、今の日時と文字を結合できるかなと思ったのですが、

formatでのダブルクォートに悩まされています。
どのようにすればよろしいでしょうか?
792785:2009/06/05(金) 15:26:22
CONCATENATE("送信日時:", Format("m月d日 h時m分",NOW()))
こ、これでもダメでしたorz
793名無しさん@そうだ選挙にいこう:2009/06/05(金) 16:02:10
とりあえずVBEのヘルプでFormat関数について調べようか
794名無しさん@そうだ選挙にいこう:2009/06/05(金) 20:58:42
>>791
Cells(1, 4) = Format(Range("A1"), "送信日時:m月d日 h時m分")
795名無しさん@そうだ選挙にいこう:2009/06/05(金) 21:07:56
A列の最下行はRange("A65536").End(xlup)ですが、A列最下となる行全体をSelectするには
どう書けばいいの?

エクセル マクロ 最下行 でググっても、FAQばかりで的を得たものが
見つかりません。
796名無しさん@そうだ選挙にいこう:2009/06/05(金) 21:13:44
>>795
変数を覚えましょう
変数gyoに最下層の行番号を入れ、gyo行目を選択

Sub a()
gyo = Range("A65536").End(xlUp).Row
Rows(gyo & ":" & gyo).Select
End Sub
797名無しさん@そうだ選挙にいこう:2009/06/05(金) 21:29:32
>>796
あんがと。
Rows(gyo).Select じゃダメなの?
798名無しさん@そうだ選挙にいこう:2009/06/05(金) 21:38:19
>>797
そんなことできるのか、ありがとう私も知らなかった
ttp://www.k1simplify.com/vba/tipsleaf/leaf21.html
一緒みたいだね
799名無しさん@そうだ選挙にいこう:2009/06/05(金) 21:42:44
1、「(a)山田 & (b)田中 & (p)森下」
2、「(p)森下 & (a)山田 & (b)田中」
3、「(b)田中 & (a)山田 & (p)森下」
4、「(a)山田 & (p)森下」

A1セルにそれぞれこういった内容の記述がある場合
1〜3のパターンの場合は
B1セルに山田
C1セルに田中
D1セルに森下

4の場合は
B1セルに山田
C1セルは空白
D1セルに森下

になるようにしたいのですが、教えてください
おそらくifとsearchを駆使すると思うのですが
どうしてもうまくいかないので…
800名無しさん@そうだ選挙にいこう:2009/06/05(金) 21:51:02
>>799
すいません山田、森下、田中は固定値ではないです
そこにはいろんな苗字が入って変動します
(a)(p)(b)は固定値ですが
801名無しさん@そうだ選挙にいこう:2009/06/05(金) 21:57:24
>>800
「」はないよね?
&と" "(半角スペース)はある?
802名無しさん@そうだ選挙にいこう:2009/06/05(金) 22:19:42
>>801
「」はないです
&と半角スペースはあります
803765:2009/06/05(金) 22:45:00
>>782
ありがとうございます。
804名無しさん@そうだ選挙にいこう:2009/06/05(金) 23:43:50
E1=FIND("(a)",$A1)
F1=FIND("(b)",$A1)
G1=FIND("(p)",$A1)
B1=IF(RANK(E1,$E$1:$G$1,1)=3,MID($A1,E1+3,LEN($A1)-2),MID($A1,E1+3,-E1-3+FIND(" ",$A1,E1)))
C1=IF(RANK(F1,$E$1:$G$1,1)=3,MID($A1,F1+3,LEN($A1)-2),MID($A1,F1+3,-F1-3+FIND(" ",$A1,F1)))
805名無しさん@そうだ選挙にいこう:2009/06/05(金) 23:55:16
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000

Sheet("売上")の月ごとのデータを、Sheet("集計")に1Q、2Q、3Q、4Qでまとめてますが、
ゴチャゴチャになってしまいました。スッキリとまとめるには、どう書けばいいでしょうか?
ピボットテーブルではなく、マクロでお願いします。

---Sheet("売上")---------------------------------------------------------

商品名 4月  5月 6月   7月 8月  9月   10月 11月 12月   1月 2月 3月
A1     12  15  7     3   2   6
A1      3   5  2     4   9  11
A1     10  12  8    10  16   5
A2      3   0  5     1   3   0
A3      8   6  11     8   7   2
A3      0   3  7     0   1   1 


--Sheet("集計")---------------------------------------------------------

商品名 1Q  2Q  3Q  4Q
A1    74  66
A2      8   4
A3    35  19
806805:2009/06/05(金) 23:56:05
Sub まとめ1()
Sheets("集計").Rows("2:65536").Delete Shift:=xlUp
Sheets("売上").Select
i = 3
j = 1
Do While Cells(i, 1) <> ""
NAME1 = Cells(i, 1)

With Sheets("集計")
If NAME1 <> NAME2 Then
小計1 = 0
小計2 = 0
小計3 = 0
小計4 = 0
j = j + 1
小計1 = Cells(i, 3) + Cells(i, 4) + Cells(i, 5)
小計2 = Cells(i, 7) + Cells(i, 8) + Cells(i, 9)
小計3 = Cells(i, 11) + Cells(i, 12) + Cells(i, 13)
小計4 = Cells(i, 15) + Cells(i, 16) + Cells(i, 17)
.Cells(j, 3) = 小計1
.Cells(j, 4) = 小計2
.Cells(j, 5) = 小計3
.Cells(j, 6) = 小計4
NAME2 = NAME1
807805:2009/06/05(金) 23:56:56
Else
小計1 = 小計1 + Cells(i, 3) + Cells(i, 4) + Cells(i, 5)
.Cells(j, 3) = 小計1
小計2 = 小計2 + Cells(i, 7) + Cells(i, 8) + Cells(i, 9)
.Cells(j, 4) = 小計2
小計3 = 小計3 + Cells(i, 11) + Cells(i, 12) + Cells(i, 13)
.Cells(j, 5) = 小計3
小計4 = 小計4 + Cells(i, 15) + Cells(i, 16) + Cells(i, 17)
.Cells(j, 6) = 小計4
End If
Sheets("集計").Cells(j, 1) = NAME1
End With
i = i + 1
Loop
End Sub
808名無しさん@そうだ選挙にいこう:2009/06/06(土) 00:37:21
>>799
B1=IF(E1="","",IF(RANK(E1,$E$1:$G$1)=1,MID(SUBSTITUTE(A1,A1,A1&" "),E1+3,LEN(SUBSTITUTE(A1,A1,A1&" "))-2),MID(SUBSTITUTE(A1,A1,A1&" "),E1+3,-E1-3+FIND(" ",SUBSTITUTE(A1,A1,A1&" "),E1))))
c1=IF(F1="","",IF(RANK(F1,$E$1:$G$1)=1,MID(SUBSTITUTE(A1,A1,A1&" "),F1+3,LEN(SUBSTITUTE(A1,A1,A1&" "))-2),MID(SUBSTITUTE(A1,A1,A1&" "),F1+3,-F1-3+FIND(" ",SUBSTITUTE(A1,A1,A1&" "),F1))))
D1=IF(G1="","",IF(RANK(G1,$E$1:$G$1)=1,MID(SUBSTITUTE(A1,A1,A1&" "),G1+3,LEN(SUBSTITUTE(A1,A1,A1&" "))-2),MID(SUBSTITUTE(A1,A1,A1&" "),G1+3,-G1-3+FIND(" ",SUBSTITUTE(A1,A1,A1&" "),G1))))
E1=IF(ISERROR(FIND("(a)",SUBSTITUTE($A1,$A1,$A1&" "))),"",FIND("(a)",SUBSTITUTE($A1,$A1,$A1&" ")))
F1=IF(ISERROR(FIND("(b)",SUBSTITUTE($A1,$A1,$A1&" "))),"",FIND("(b)",SUBSTITUTE($A1,$A1,$A1&" ")))
G1=IF(ISERROR(FIND("(p)",SUBSTITUTE($A1,$A1,$A1&" "))),"",FIND("(p)",SUBSTITUTE($A1,$A1,$A1&" ")))

舌にオートフィル。
色々失敗した木もするけどもういいわ
E-Gの作業列使いたくなかったらB-Dの該当部分を置換して下さい
809名無しさん@そうだ選挙にいこう:2009/06/06(土) 01:57:50
>776どなたかアドバイスいただけないでしょうか
810名無しさん@そうだ選挙にいこう:2009/06/06(土) 02:02:54
sendkey云々だろうけど眠い
また明日
811名無しさん@そうだ選挙にいこう:2009/06/06(土) 02:12:23
>>809
そういう変な癖を直すよう努力した方がいいと思う。
Excelで解決できたとしても、また別のソフトで苦労することになる。
812名無しさん@そうだ選挙にいこう:2009/06/06(土) 02:33:42
セルの内容で一文字目に半角/全角スペースを打つということ?
813名無しさん@そうだ選挙にいこう:2009/06/06(土) 08:11:00
>>805
こんなんでどう?
一応処理時間も1/4程度になってる

Sub まとめ2()

Dim i As Long, j As Long, k As Long
Dim Rng(3) As Range

Sheets("集計").Rows("2:65536").Delete Shift:=xlUp
i = 3
j = 2

With Sheets("売上")
Do While .Cells(i, 1).Value <> ""
If .Cells(i, 1).Value <> .Cells(i - 1, 1).Value Then
For k = 0 To 3
Set Rng(k) = .Cells(i, 3).Resize(1, 3).Offset(0, k * 4)
Next
Else
For k = 0 To 3
Set Rng(k) = Union(Rng(k), .Cells(i, 3).Resize(1, 3).Offset(0, k * 4))
Next
End If
814813:2009/06/06(土) 08:12:42
If .Cells(i, 1).Value <> .Cells(i + 1, 1).Value Then
Sheets("集計").Cells(j, 1).Value = .Cells(i, 1).Value
For k = 0 To 3
Sheets("集計").Cells(j, k + 3).Value = WorksheetFunction.Sum(Rng(k))
Next
j = j + 1
End If
i = i + 1
Loop
End With

For k = 0 To 3
Set Rng(k) = Nothing
Next

End Sub
815名無しさん@そうだ選挙にいこう:2009/06/06(土) 08:49:04
>>795-798
わざわざ行番号を使う必要はないな。
Range("A65536").End(xlUp)..EntireRow.Selectでよい。

あと>>795と国語のお勉強
「的を射た」「当を得た」だったかな。
俺は国語は通信簿2を貰ったこともあってあまり得意じゃないが。
816名無しさん@そうだ選挙にいこう:2009/06/06(土) 08:53:08
>>809
どうしてもやりたきゃOnKeyメソッド調べてみれ。
817名無しさん@そうだ選挙にいこう:2009/06/06(土) 09:26:13
VBAのコンボボックスで参照した値をセルに表示します。
参照先をクリヤーしても、作業済のセルは、クリヤーされない方法はありますか?
818名無しさん@そうだ選挙にいこう:2009/06/06(土) 09:54:06
ローマ字入力ではなく、かな入力になってる場合に
半角英数プロパティにしているエクセルVBAテキストボックスに
入力すると文字化け?するのは入力方式を変える以外に
改善方法は無いもんなんでしょか?
819名無しさん@そうだ選挙にいこう:2009/06/06(土) 11:15:24
>>818
テキストボックスのIMEModeプロパティで
自動的にIMEをOFFとか半角モードとかにできる
820名無しさん@そうだ選挙にいこう:2009/06/06(土) 14:18:32
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 EXCEL 条件付書式 行の挿入

よろしくお願いします。
1つ上の行の日付と比較して<>のとき、
罫線を入れ文字色を変えるという条件付書式のシートがあります。
(日付は、月日をそれぞれの列で取っているので普通の数値)

シートには2ヶ月くらい先までの日付が入っていて、
今日の記録をするために足りない分を行挿入をしますが、
そうすると参照式が1つ上ではないところを見てしまいます。
RC型でもやってみましたが改善しないようなので
書式の再度コピー以外で何か方法があればよろしくお願いします。

821名無しさん@そうだ選挙にいこう:2009/06/06(土) 14:37:10
>>820
右クリックでオートフィル
書式のみコピー
822名無しさん@そうだ選挙にいこう:2009/06/06(土) 15:04:13
>821
すみません、右クリックしても「オートフィル」というのはなく、
「形式を選択して貼り付け」を選んで出てくるのは
Unicodeテキスト と テキスト の二択になります。


ちなみに、行挿入前には 「=RC2<>R[-1]C2」 だった書式の条件が、

行挿入後は 「=RC2<>#REF!」 となるようです。

挿入した行よりずっと上のほうまで。

823名無しさん@そうだ選挙にいこう:2009/06/06(土) 15:08:23
>>822
いや、違う
オートフィルは分かる?選択したセルの右下をドラッグして「1/1」を「1/2」「1/3」・・・と連続データとか作っていける奴
あれはをマウスの右ボタンでやるとメニューが出てくるのよ
824名無しさん@そうだ選挙にいこう:2009/06/06(土) 15:28:42
>>822
セルの右下でマウスカーソルが十字キーみたくなったら
その状態で右クリックを押しつつドラッグして
希望のセルでもう一度右クリック。
825名無しさん@そうだ選挙にいこう:2009/06/06(土) 15:49:03
【1 OSの種類         .】 Mac OSX Tiger
【2 Excelのバージョン   】 Office 2004
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 EXCEL 隣接セルまコピー

よろしくお願いします。
ヘルプをずーっと読みましたが、なさそうでしので質問します。

以下のようなことを、キーボード操作でワンタッチな方法があるのでしょうか?

・今いるセルの、すぐ上のセルの内容をコピーしたい。
  普通にやると、
    ・選択セルを1つ上にして
    ・CTRL+Cで記憶
    ・選択セルを1つ下にして
    ・CTRL+Vで貼付け
  ですが、操作が多くて面倒だと思います。
  これを、「○○キー+○○」を押すだけで、実行できないでしょうか。
     あるいは、「○○キー+○○」の後、「○○キー+○○」のように
     2タッチでも良いです。
・さらに、上、下、左、右それぞれがあれば、さらに嬉しいです。
・さらに、書式情報を持ってくる場合と、文字だけの場合もあれば、最高です。
826名無しさん@そうだ選挙にいこう:2009/06/06(土) 15:54:39
>>825
CTRL+D
827名無しさん@そうだ選挙にいこう:2009/06/06(土) 15:56:48
>>825
Ctrl+R 左のセルをコピー
下と右はあったきもするけど無かったかもしれない
828名無しさん@そうだ選挙にいこう:2009/06/06(土) 16:24:09
>>826,827
ありがとうございました。バッチリですね。
Dは下にコピー、Rは右にコピー、通常のCTRL+C, CTRL+Vと同じですね。
ありがとうございました。
すみませんでした。
829名無しさん@そうだ選挙にいこう:2009/06/06(土) 17:25:00
office97sr-1を入れなおしたんだが、sr-2がMSサイトからダウンロードできなくなってる・・
どこかにないですかね?
830名無しさん@そうだ選挙にいこう:2009/06/06(土) 18:00:42
>>776
おお、15年近くExcelを使っているがそんなショートカットがあること
すら知らなかったよ。そもそもShiftを押しながらスペースを押す
習慣が全くないから気がつかなかった。
入力で英字大文字を連続するときだって、Shiftを左手の小指で
押さえて、普通にブラインドタッチしていれば、何の問題もなさそうだが、、、
大文字の連続入力ならCapsLockすればいいだけだし。
831名無しさん@そうだ選挙にいこう:2009/06/06(土) 19:15:58
>>815
的を得るは間違いとは言い難い
832名無しさん@そうだ選挙にいこう:2009/06/06(土) 19:54:21
>>831
いや、あきらかに間違い
833名無しさん@そうだ選挙にいこう:2009/06/06(土) 20:02:38
よし、1000までその話題を続けろ
834名無しさん@そうだ選挙にいこう:2009/06/06(土) 20:15:25
そういや遥か昔、このスレで

「喧々諤々」

が正しいか否かで延々と話題が続いたのを思い出した。


侃々諤々 ○
喧々囂々 ○

喧々諤々 △(本来は×だが、最近は誤用を一般的なものと認める辞書も出てきた)
835名無しさん@そうだ選挙にいこう:2009/06/06(土) 20:28:59
うざ
836名無しさん@そうだ選挙にいこう:2009/06/06(土) 20:48:16
Pardon? Is it USER?
837名無しさん@そうだ選挙にいこう:2009/06/06(土) 20:54:34
俺様の気に入らない書き込みは全部うざってか?
838名無しさん@そうだ選挙にいこう:2009/06/06(土) 21:42:12
>>823-824
わかりました、何度もありがとうございます。

ただ、行挿入した時点でコピー元が「=RC2<>#REF!」 となり…
しかし、それにもかかわらず書式は一応それなりの結果になってる?!

というか、今何箇所かで試していて気づいたのですが、
同じ操作をしているにもかかわらず、結果に違いがあるようです。
左端に月と日、曜日(date関数+曜日表示の書式)があって、右に記入項目がいくつかある、
というシートなので、日付については書式だけでなくデータもコピーしていいのですが、
複数行を挿入をして上行をコピー後の状態が、ざっと3種類に分かれるようです。(一貫性がない)

@元が「=RC2<>#REF!」 となり、コピーも同じ
A比較する対象行が、ずっと上のほうを参照している
B期待通り、1つ上の行と比較してる

不具合?のような気がしてきました…
839名無しさん@そうだ選挙にいこう:2009/06/06(土) 21:49:40
>>832
色々論じてるページあるけど例えば
http://tak-shonai.cocolog-nifty.com/crack/2006/03/__51fb.html
840名無しさん@そうだ選挙にいこう:2009/06/06(土) 22:58:49
>>838
重くなるかもしれないけど、あきらめてOFFSET関数を使いましょう。
=OFFSET(A2,-1,0,1,1)=A2
841805:2009/06/06(土) 23:35:55
>>813
凄いです!
見たことがないコードが並んでるので、ヘルプでひとつずつ確認してるんですが、
Dim Rng(3) As Range の意味が分かりませんでした。
Dim Rng(0) As Range, Rng(1) As Range, Rng(2) As Range, Rng(3) As Range という意味でしょうか?
842名無しさん@そうだ選挙にいこう:2009/06/06(土) 23:43:26
>>840
ありがとうございます!

最初、OFFSET関数の意味が、HELPを見てもよくわからず
質問がうまく伝わってないのかな?などと思いましたが
検索で、行挿入で#REFを出さない方法の質問やりとりを見つけ、
使い方がわかりました。(形を真似ただけなので、関数の意味とかは
まだ理解できてないっぽいですが)

比較条件の座標にOFFSETを入れてみたら、うまくいきました。
#REFが出るたときは、行挿入後に列全体の式が狂ってしまったので
どうしようかと思いましたが、完璧に解決です。本当にありがとうございました。

843名無しさん@そうだ選挙にいこう:2009/06/07(日) 01:18:55
>>841
その解釈はある意味斬新だな。それで正解。
それは「配列」と言って、たくさんの変数に通し番号をつけて、
まとめていっぺんに扱うことが出来る便利機能。
844名無しさん@そうだ選挙にいこう:2009/06/07(日) 03:51:19
はじめまして。
こんな夜分にくだらない質問で申し訳ないんですが、無知すぎてわからないので
助けてください;w;
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 はい(本当に多少ですが)
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 貼り付け IE EXCEL

IEにて、ある表をexcelに張り付けたいんですが、各々a,b,cと違う情報なのに
一つのセルに入ってしまいます。
例えば日付と値段と商品名が同一のセルに入って貼り付けされてしまう、という状況です。
調べてみて、どうもテキストで張り付ければいいみたいな事が書かれていたんですが、IEでコピー、
EXCELで貼り付け→形式を選択して貼り付け→テキストでもうまく別々のセルに入ってくれません。
どなたか解決方法がわかれば、お教えしていただけないでしょうか?よろしくお願いします。
845名無しさん@そうだ選挙にいこう:2009/06/07(日) 04:22:14
>>844
その「ある表」ってのURL晒せる?
複数データが1つのセルに入るのは、貼り付け方じゃなくて元の表の作り方に問題がある。
ちゃんとしたテーブル形式なら特別な操作しなくても「編集」→「貼り付け」だけでおk。

対策としてはExcelに貼り付けてから「データ」→「区切り位置」を使って
くっついたデータをバラバラにすることができる
846名無しさん@そうだ選挙にいこう:2009/06/07(日) 14:41:45
>>845
ありがとうございます。URLはある口座のログイン後ページなので難しいですねぇ。。
今試しにまったく同じコピー→形式を選択して貼り付け→テキストで何故かきちんとセルが
ばらけて入力されました。根本的な解決にはなってないですねこれでは・・・。

区切り位置は試してみましたが、かなり使えそうですね。今後同様の状態になったら試してみます。
ありがとうございました!
847名無しさん@そうだ選挙にいこう:2009/06/07(日) 20:14:23
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

IF関数を使ってメタボリック症候群か判定する式を作らなければなりません。
性別、腹囲、中性脂肪値、HDLコレステロール値、収縮期血圧、拡張期血圧、空腹時血糖値
の七項目を入力すると診断してくれる、というものなのですが、全然作れなくて困っています。
腹囲 男性85cm以上、女性90cm以上が基準で
・中性脂肪 150mg/dL以上 かつ/または HDLコレステロール値 40mg/dL未満
・収縮期血圧 130mmHg以上 かつ/または 拡張期血圧 85mmHg以上
・空腹時血糖値 110mg/dL以上
の3項目のうち2項目以上当てはまればメタボリックだそうですが
どうすれば式を作ることができますか?調べましたが分かりませんでした。
長文で申し訳ありません。どうぞよろしくお願いいたします。
848名無しさん@そうだ選挙にいこう:2009/06/07(日) 20:18:23
・中性脂肪 150mg/dL以〜 の条件に該当したら1を表示する列をつくる
収縮期血圧、空腹時血糖値についても同様につくり、3列を合計する列を作成
そこが2以上だったらメタボリック
849名無しさん@そうだ選挙にいこう:2009/06/07(日) 20:19:14
>>847
「かつ/または」の意味がよく分らない。
「かつ」か「または」どっちかにして下さい。
850名無しさん@そうだ選挙にいこう:2009/06/07(日) 20:52:37
英語のAND/ORの訳でね 実務ではよく使う言葉
ANDでも真、ORでも真なんだよ
851名無しさん@そうだ選挙にいこう:2009/06/07(日) 20:56:01
and/or
and/or /nd?|‐?/

―【接】 およびまたは 《両方とも,またはいずれか一方》.
852名無しさん@そうだ選挙にいこう:2009/06/07(日) 20:56:34
こんな言葉実務で使ってるようじゃトラブル起こすだろ
そもそも自分で意味分かってないだろ
853名無しさん@そうだ選挙にいこう:2009/06/07(日) 20:59:32
勝俣さんは静岡県に多いな
854名無しさん@そうだ選挙にいこう:2009/06/07(日) 21:06:10
855名無しさん@そうだ選挙にいこう:2009/06/07(日) 21:18:33
856名無しさん@そうだ選挙にいこう:2009/06/07(日) 21:35:48
>>839
的を得るは間違いだよ
素人のHPを証拠としてもダメ!!

白羽の矢が当たったと同じ間違い スレ違いだからもう止めます
857名無しさん@そうだ選挙にいこう:2009/06/07(日) 21:44:06
>847
Excel的には「または」でいいわけですね
858名無しさん@そうだ選挙にいこう:2009/06/07(日) 21:44:28
>>854
由緒正しい
JISにあるから
そんなのどうでもいいからお前の考え方を書けよ。
AND/ORって結局どういう意味?
ANDなの?ORなの?どっち?
859名無しさん@そうだ選挙にいこう:2009/06/07(日) 22:01:45
>>857 そうだね
>>858 両方だってば。辞書にもJISにもそう書いてあるだろ。小学生にでもわかるように
説明してほしければしてやってもいい。
860名無しさん@そうだ選挙にいこう:2009/06/07(日) 22:03:22

  ワケ    ワカ     ラン
  ∧_∧   ∧∧    ∧_∧
 (゚ー゚*)  (*゚ー゚)   (*゚−゚)
⊂ ⊂ )  ( U つ  ⊂_へ つ
  ( ( (   ) ) )     Uノ
   UU   UU       U
861名無しさん@そうだ選挙にいこう:2009/06/07(日) 22:09:26
>両方だってば。
この書き方で論理的な思考が出来ないのが丸わかりだな
まあ君の程度は分かったから無理に説明しようとしなくてもいいよ

それよりも>>847本人が言葉の意味分かって使ってるかどうかが問題なんだけどな・・・
862名無しさん@そうだ選挙にいこう:2009/06/07(日) 22:10:49
>>858
例えば
X AND/OR Y が成り立つならZを実行する
だったら

どんな時にZを実行するのか教えて。
863名無しさん@そうだ選挙にいこう:2009/06/07(日) 22:11:35
アンカー間違い
>>859
例えば
X AND/OR Y が成り立つならZを実行する
だったら

どんな時にZを実行するのか教えて。
864名無しさん@そうだ選挙にいこう:2009/06/07(日) 22:14:48
文章解釈でいえば、
1 Aが成り立ち、Bが成り立たないとき
2 Bが成り立ち、Aが成り立たないとき
3 AとBが成り立つとき
の3つの場合にZを実行する

Excel的には単にOR(A,B)が真ならZを実行する

そんだけのことだよ
865名無しさん@そうだ選挙にいこう:2009/06/07(日) 22:19:14
>>864
>文章解釈でいえば、
>1 Aが成り立ち、Bが成り立たないとき
>2 Bが成り立ち、Aが成り立たないとき
>3 AとBが成り立つとき
>の3つの場合にZを実行する

1と2がよくわからない。そんな解釈できる?
866名無しさん@そうだ選挙にいこう:2009/06/07(日) 22:20:31
使えないバカほどたいした事ないことをもったいぶって得意になってんのな
クソばっかだわ
867名無しさん@そうだ選挙にいこう:2009/06/07(日) 22:20:53
おいおいw 逆に聞くけど おまえの理解してるORってなに?
どうでもいいけどA,BじゃなくてX,Yだったな
868名無しさん@そうだ選挙にいこう:2009/06/07(日) 22:29:46
>>867
「成り立たない時」というのは解釈し過ぎじゃないの?
まあ3つの条件全部使えば結局同じ条件だけどね。

AND/ORはORだという解釈なんだな?
869名無しさん@そうだ選挙にいこう:2009/06/07(日) 22:39:57
もう好きに解釈してくれ。ふつうのひとなら常識だし、いままでの説明でわかるはずだ。
870名無しさん@そうだ選挙にいこう:2009/06/07(日) 22:41:28
>>869
AND/ORを単純にORと解釈していいなら問題ないんだが、そうは解釈しない人もいるんだぞ。
871名無しさん@そうだ選挙にいこう:2009/06/07(日) 22:44:32
ワケワカラン(AAry
872名無しさん@そうだ選挙にいこう:2009/06/07(日) 23:17:03
>>856
納得いかね
873名無しさん@そうだ選挙にいこう:2009/06/07(日) 23:17:28
まあ改めて考えてみると、Excel抜きにしても一般的に、
「または」には「かつ」が含まれてるよね。

だからこそ、わざわざ別個に「かつ」が書かれてると迷う。



874名無しさん@そうだ選挙にいこう:2009/06/07(日) 23:23:16
だからよく分かってないなら無理に説明しなくていいと言ったのになぁ・・・

日常語のorは論理学やプログラム言語のorの意味で使われたり
xor(排他的論理和:どちらか一方のみ成り立つ時に真)の意味で使われたり
曖昧だから問題になる事が多いんだよな。

  (A and B) or (A or B)
と書けばどういう捉え方をしても誤解なく伝えられるが、長ったらしいので
  A and/or B
という書き方になったんだろうか。
でも余計に誤解を招くという結果にw

日本語だったら
  「AとB少なくともどちらか一方」
みたいに書けばどんな人に対しても誤解なく伝えられるね。
875名無しさん@そうだ選挙にいこう:2009/06/07(日) 23:23:23
>>873
はあ?
876名無しさん@そうだ選挙にいこう:2009/06/07(日) 23:26:31
>>874
日本語は曖昧で英語は論理的とかよく言われるけど、AND/ORの存在が英語を欠陥言語にしている。
それをわざわざ「及び/又は」と翻訳している日本語は…。
877名無しさん@そうだ選挙にいこう:2009/06/07(日) 23:35:14
まあ こんな常識程度のことでぐだぐだ自説を論じられるのもある意味すごい
自分が知らなかっただけなのに言語の欠陥のせいにまでするんだからあきれるわ
878名無しさん@そうだ選挙にいこう:2009/06/07(日) 23:37:56
>>877
AND/ORに何の疑問も持たずに常識の一言で済ませられるお前にあきれるよ。
879名無しさん@そうだ選挙にいこう:2009/06/08(月) 00:02:30
ていうかExcel聞きにきたんじゃなかったんだ
880名無しさん@そうだ選挙にいこう:2009/06/08(月) 00:06:00
まさか常識だろとか言ってる奴が質問者じゃないだろうな
もしそうだったらこのくらい自分で考えろよな、お前頭いいんだろ?
881名無しさん@そうだ選挙にいこう:2009/06/08(月) 00:19:08
882名無しさん@そうだ選挙にいこう:2009/06/08(月) 00:28:03
ついでに厚労省の資料みれ。
ttp://www.mhlw.go.jp/shingi/2005/08/s0826-9d.html
883名無しさん@そうだ選挙にいこう:2009/06/08(月) 00:42:25
おまえら、エクセルの話しろよ
884名無しさん@そうだ選挙にいこう:2009/06/08(月) 01:20:14
1/X=1.14-2log10(0.001/0.2 +9.35/(569314.8*X))^28

1/X=1.14-2log10(0.001/0.15 +9.35/(10120158*X))^28

という計算をexcelでしようと思ったんですが、
このXの値を求める場合はどうすればいいんでしょうか?
できれば、求めてください(汗)
885名無しさん@そうだ選挙にいこう:2009/06/08(月) 01:49:51
x1=1、3,5、9、12
x2=2,5,7,8,11
y=9.18.27,34,41
みたいな感じで、yの出力が一つでxが異なる値をとるようなグラフを1つの表に
まとめたいんだけどやり方わかる人いますか?
たぶんyが独立変数でxが従属変数になっているようなグラフを書きたいんだとおもいます。
本当に困っているのでお願いします。
886名無しさん@そうだ選挙にいこう:2009/06/08(月) 02:11:41
>書きたいんだとおもいます

誰の質問だよwww
887名無しさん@そうだ選挙にいこう:2009/06/08(月) 02:15:43
ところでここに書かれてるのって
エクセル以前の話じゃないのか
888名無しさん@そうだ選挙にいこう:2009/06/08(月) 02:39:13
ちょっと教えてください。
(C18)には→ 2009/7/10 0:00
(E18)には→ 2009/7/11 0:00

(F18)には→ =IF(C18=0,"",(E18-C18))

の関数が入っており、(F18)の結果は24:00です。
この24:00の場合は空欄に(0と言うこと)したいのです。
どなたか教えてもらえませんか。
889名無しさん@そうだ選挙にいこう:2009/06/08(月) 02:42:46
補足ですが、24:00以下の場合は表示させたいのです。
よろしくお願いします。
890名無しさん@そうだ選挙にいこう:2009/06/08(月) 07:16:55
>>888
まずF18のセルの書式設定をユーザー定義にして[h]:mmとすれば24:00の表示
になります。
そしてそこに入る式は
=IF(C18=0,"",IF((E18-C18)>1,"",(E18-C18)))
とすればどうでしょうか。
※(F18>24:00=""という形にしてありますが、24:00のみ空欄でしたら
=IF(C18=0,"",IF((E18-C18)=1,"",(E18-C18)))
で入力を。)
891名無しさん@そうだ選挙にいこう:2009/06/08(月) 13:22:24
A列とB列があります。
A列と、B列では行数が異なります。
A列とB列では、重複したデータがあります。
重複データーは、同じ行にあるとは限りません。
データ行の並び替えは出来ません。
マクロは利用出来ません。

   A      B
1 パンジー  バラ
2 スミレ    菊
3 サクラ   スミレ
4 アジサイ  パンジー
5 菊      アジサイ
6 スズラン


「どの行に重複データが入っているか?」をわかりやすく表示させる方法、何かありませんか?
たとえば、条件付書式で重複行に色を付けたり、C列に「○、×」を表示させるなどで、

よろしくお願いします。
892名無しさん@そうだ選挙にいこう:2009/06/08(月) 13:35:03
linest関数で、空白を無視して計算させたいのですが、
方法はありますか?
893891:2009/06/08(月) 14:49:35
すんません、勉強不足でした。
match関数で解決しました。
894名無しさん@そうだ選挙にいこう:2009/06/08(月) 17:11:17
>>847
ちょっと力技してみた
B5=中性脂肪
C5=HDLコレステロール値
D5=収縮期血圧
E5=拡張期血圧
F5=空腹時血糖値

血糖値が110以上じゃなかったら1番目の項目と2番目の項目を満たさないとメタボじゃない
血糖値が110以上だったら1番目と2番目のどっちかの項目を満たすとメタボ
っていう式

=IF( F5>=110, IF(OR(IF(OR(B5>=150,C5<40),TRUE,FALSE),IF(OR(D5>=130,E5>=85),TRUE,FALSE)),"メタボ",""),IF(AND(IF(OR(B5>=150,C5<40),TRUE,FALSE),IF(OR(D5>=130,E5>=85),TRUE,FALSE)),"メタボ",""))
895名無しさん@そうだ選挙にいこう:2009/06/08(月) 22:45:10
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

シート名が部品番号になっているブックがあり、1ブックあたり10〜20枚程度になっています。
(ブック名は規則性がなくバラバラになっています)

これらを部品番号順にシートを並び替え、1ブックあたり50枚として、名簿1xls、名簿2xlsと
いうように規則性を持たせたブック名で作りたいのですが、どうすればいいですか?
シート数は、約500枚ありますので、手作業でやるにはかなり辛いです。
896名無しさん@そうだ選挙にいこう:2009/06/08(月) 23:30:38
>>895
質問に対する回答じゃないけど
そういう場合はいっそのこと1ファイル=1部品に分けちゃった方がいいと思うね。
あるいは逆に1ファイルに全部品の情報を収めるか。
1ファイルに50部品、それが何ファイルかあるって構成は中途半端で何かメリットがあるとは思えない。
897名無しさん@そうだ選挙にいこう:2009/06/09(火) 00:03:49
いっそのことACCESSあたりに移しちゃえばどうかとも思う
898名無しさん@そうだ選挙にいこう:2009/06/09(火) 00:08:03
>>895
まずは全ブックとシートの一覧を作る。
一覧を作ったら部品番号でソート。
最後に、ソートされた一覧表を頼りに50枚ずつまとめる。

というプログラムをVBAで組む。
ちょっと面倒だけど、そんなに難しくはない。

自分でやるなら、もっと細かい条件がわかってるから
適度に手を抜いたプログラムを作ってちゃっちゃとやるけど、
他人のために作るのは、例外とかエラー処理とか説明とか大変だからやりたくない。
899名無しさん@そうだ選挙にいこう:2009/06/09(火) 00:11:43
シート分けるのが間違い
1枚でやれ
900名無しさん@そうだ選挙にいこう:2009/06/09(火) 00:23:55
とりあえず最初の部分だけ

Sub ブックとシートの一覧()
  d = "C:\buhin\" 'ここにフォルダ名を書く。最後の\を忘れないよう。
  Set s = ActiveSheet
  r = 1
  ChDir d
  fn = Dir("*.xls")
  Do While fn <> ""
    Workbooks.Open fn
    For Each ws In Worksheets
      s.Cells(r, 1) = d + fn
      s.Cells(r, 2) = ws.Name
      r = r + 1
    Next
    ActiveWorkbook.Close
    fn = Dir()
  Loop
End Sub

ところで1つのブックに500シートって作れたっけ
901名無しさん@そうだ選挙にいこう:2009/06/09(火) 00:47:14
・複数のブックのシートを全部まとめて一つのブックにするマクロ
・シート名順に並び変えるマクロ
この辺はググれば出来あいの物が見つかるだろうからそのまま使う
全シートが順番に並んでれば50シートごとにシートを
別ブックにコピーしていく作業は手作業でやっても5分もかからないだろう。

>>900
上限は特に決まって無くて、使用可能メモリに依存、て事らしいね。
902名無しさん@そうだ選挙にいこう:2009/06/09(火) 00:47:52
シートの数はメモリに依存らしいよ。
903895:2009/06/09(火) 01:04:15
>>896
各ブックのシートから情報を抜き出すとき、ブックを開いて閉じてを繰り返えしているので、
10くらいに分けたブックを初めに開いておいて収集しようかと考えた次第です。

>>897
Officeスタンダードなので、ACCESSがありませんw

>>898
最初の3行はVBAでやってみました。
Forとかで50回して、名簿1xlsにシートを追加って感じでしょうか?

904名無しさん@そうだ選挙にいこう:2009/06/09(火) 01:14:26
質問です。

住所録を作っているのですがそこでの数字には「全角文字を使う事」というルールがあります。
また、一つのセルには漢字部分と番地文があります

○ 「漢字+全角数字」
× 「漢字+半角数字」

としたいのですが、「入力規則」で下をキックするもしくは書式設定で半角入力しても強制的に
全角に置き換えて表示とさせたいのですが可能でしょうか?
Excelは2002を使用しています。
905名無しさん@そうだ選挙にいこう:2009/06/09(火) 01:19:01
>>904
WorkSheet_Changeイベント処理でVBA使って半角全角変換
906名無しさん@そうだ選挙にいこう:2009/06/09(火) 01:21:13
>>903
全ブックをいっぺんに開くならFor Eachの二重ループで全シートにアクセスできる
907名無しさん@そうだ選挙にいこう:2009/06/09(火) 01:49:35
>>906
それは知ってるけど、ブックの数が37。
タクストレイが渋滞しそうです。
誰がこんなの作ったんだって感じ。
908名無しさん@そうだ選挙にいこう:2009/06/09(火) 02:29:50
目視ではなくVBAで並べ替えや50まとめをやるなら、
表示が必要ないんだから非表示で開けばいいんじゃね?
非表示でもVBAからのデータアクセスは問題なく出来るし

というか、ExcelってMDIアプリなんだから、ブックをいくつ開こうと
タスクトレイというかタスクバーのアイコンは1つだろ?

ブック1つに対して個別にExcel立ち上げる事も出来るが
こういう処理ではソレやるメリット無いし、たとえそれをやっても
OSがXPなら、タスクバーアイコンをグループでまとめる機能がある

更に言えばグループ化機能を使わなくても、渋滞するのはVBAで
処理している数秒だけなんだから渋滞したところで何も困らないと思うけど
909名無しさん@そうだ選挙にいこう:2009/06/09(火) 02:46:38
うだうだ質問してる暇があるなら手作業でやったって1時間もあれば終わる作業だろうにw
VBAの勉強がしたいって事であれば他人の完全解答待ってるだけじゃ大した勉強にならんよ。
自分ではここまでやったけどこの部分が分からない、みたいに聞かないと。
910名無しさん@そうだ選挙にいこう:2009/06/09(火) 03:08:12
>>890
お返事が遅くなりまして申し訳御座いません。
あなた様のご尽力により、見事私めの希望どうりの表示が出来ました。
本当にありがとう御座います。
あなた様のご多幸を心より願っております。<(_ _)>

敬具
911名無しさん@そうだ選挙にいこう:2009/06/09(火) 07:01:44
>>907
XPならタスクバーのグループ化がOS標準の機能で付いてるだろ
ってよく読んだらタスクトレイ?タスクバーの間違いだよな?

あと、いつも窓を30個ぐらい開いてるんならタスクバーを画面の右か左に縦に置くと
タイトルが省略されにくくなるからアプリの切り替えがやりやすくなるぞ

もはやExcel関係ないな
912名無しさん@そうだ選挙にいこう:2009/06/09(火) 07:15:41
>>847
一行でやる必要はあるのか?
913名無しさん@そうだ選挙にいこう:2009/06/09(火) 07:19:33
>>912
質問から見て、たぶん学校の宿題か何か。
1行にまとめるのが条件じゃないのかな。
914名無しさん@そうだ選挙にいこう:2009/06/09(火) 13:15:17
論理式でA1がりんごかみかんかすいかの時に真、をあらわすには
or(a1="りんご",a1="みかん",a1="すいか")
とかくしかありませんか?
a1=or("りんご","みかん","すいか")
のようにまとめて記述することはできませんか?

今回は論理式の記述方法を知りたいので、
りんご、みかん、すいかをB1:B3に入力してvlookupでエラーだと偽という方法は
ナシでお願いします。
915名無しさん@そうだ選挙にいこう:2009/06/09(火) 13:41:32
>>914
B1:B3を使わなくても
=MATCH(A1,{"林檎","蜜柑","西瓜","梨"},0)
=HLOOKUP(A1,{"林檎","蜜柑","西瓜","梨"},1,FALSE)
のように直接書けるってのもアウトですか?
916名無しさん@そうだ選挙にいこう:2009/06/09(火) 13:51:10
>>915
アリです!ありがとうございました
917名無しさん@そうだ選挙にいこう:2009/06/09(火) 15:44:08
えええええええ論理式関係ないのかwww
918名無しさん@そうだ選挙にいこう:2009/06/09(火) 15:52:01
>今回は論理式の記述方法を知りたいので

はどうなったの?
919名無しさん@そうだ選挙にいこう:2009/06/09(火) 16:11:01
「論理式」と「数式」を混同してると見た
920名無しさん@そうだ選挙にいこう:2009/06/09(火) 19:20:10
楽天、出店企業に顧客情報…中止表明後も1件10円で
http://www.yomiuri.co.jp/national/news/20090605-OYT1T00623.htm
921名無しさん@そうだ選挙にいこう:2009/06/09(火) 19:28:38
横レス失礼します
>>914を関数を使わずに実現する方法ってありますか?
922名無しさん@そうだ選挙にいこう:2009/06/09(火) 19:40:11
無い
923名無しさん@そうだ選挙にいこう:2009/06/09(火) 19:52:05
>>921
(A1="りんご")+(A1="みかん")+(A1="すいか")
924名無しさん@そうだ選挙にいこう:2009/06/09(火) 19:59:22
>>922>>923
ありがとうございました、無いのですね
925923:2009/06/09(火) 20:01:10
ちょww俺が書いたの無視なの?
926名無しさん@そうだ選挙にいこう:2009/06/09(火) 20:05:03
はい
927名無しさん@そうだ選挙にいこう:2009/06/09(火) 20:44:02
>>922
無いとはまたずいぶんだな。
>>923が1か0になるのが嫌なら=((A1="りんご")+(A1="みかん")+(A1="すいか"))=1 とすりゃ出来るじゃん。
928名無しさん@そうだ選挙にいこう:2009/06/09(火) 20:51:59
また日本語が不自由なひとがわいてるな
>のようにまとめて記述することはできませんか?
をなぜ読み飛ばすのか
929名無しさん@そうだ選挙にいこう:2009/06/09(火) 20:53:20
>>914
学校の論理式の宿題でORを使って出来るだけ簡単に書けっていうのなら=OR(A1={"りんご","みかん","すいか"})の方がいいかもね。
930名無しさん@そうだ選挙にいこう:2009/06/09(火) 20:55:19
>>928
文句しか言えねーのか?
さくっと>>929くらいの回答しなよ。
931名無しさん@そうだ選挙にいこう:2009/06/09(火) 20:56:17
常に「おととい」を表示するようにしたいのですが、「=TODAY-2」と打ってみたのですがうまくいきません。おとといの表示でいい方法があればお願いします。
932名無しさん@そうだ選挙にいこう:2009/06/09(火) 20:59:02
>>931
表示形式[=928]"おととい"
933名無しさん@そうだ選挙にいこう:2009/06/09(火) 20:59:19
「まとめて記述」じゃ曖昧だって事が分かってないのかねえ。
数式や論理式、関数の意味がよく分かってない事といい、
曖昧な言葉を自分だけの思い込みで使う点といい、
学生さんだとしたらExcel以前に数学や国語を勉強した方がいいと思うよ。
934名無しさん@そうだ選挙にいこう:2009/06/09(火) 21:00:21
>>931
=TODAY()-2
935名無しさん@そうだ選挙にいこう:2009/06/09(火) 21:13:43
>>929
うおおおおおおおおおおおおおおおありがトーーーーーーーーーーーーーーーーーー
愛してる!!
936931:2009/06/09(火) 21:14:47
>934
うおおおおおおお、、ここ二ヶ月くらい悩んでいたんですが一気に解決しました!!
ありがとうございます!!
937名無しさん@そうだ選挙にいこう:2009/06/09(火) 21:20:00
それは良かったですね
938名無しさん@そうだ選挙にいこう:2009/06/09(火) 21:24:23
すいません、バイトの出勤表があり、○、×をたぶんセルの入力規則の
プルダウンメニューでリスト入力する方法で入力しているのですが、これに
バイトの予定が未定の場合△を入力したいということになり、△を入力したいということになったのですが、

この参照元のリストがどこにあるのか分りません、同一シート内には見当たらないので別のシートにあるのですが、
ワークシート分析などでこのリストがどこにあるかトレースする機能などはないのでしょうか?

教えてくださいよろしくお願いします。
939名無しさん@そうだ選挙にいこう:2009/06/09(火) 21:30:52
>>938
選択肢が○か×だけなら、わざわざシート上にリストを用意してるわけじゃなくて
  データ→データの入力規則→設定→元の値
の欄に"○,×"って入れてるだけじゃね?そこを"○,×,△"にすればOK
940名無しさん@そうだ選挙にいこう:2009/06/09(火) 21:32:29
プルダウンから選ぶなんてちまちましたことしないで
1とか2とかテンキーで入力できる数値にしてあとから一括置換すればいいのに
941名無しさん@そうだ選挙にいこう:2009/06/09(火) 21:33:01
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 勉強中 (マクロを記録してつけたしたり書き換えたりするのがやっと)
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 オートフィルタ セルの値

セルの値でオートフィルタすることって可能でしょうか?
マクロを記録しようにも当然出来ないし別の方法を考えるべきか悩んでいます。


例えば、住所録を作ってるとします。
住所と別に都道府県だけを入力しているセルも用意してるとします。

A会社 大阪府 大阪府大阪市…   06-0000-0000
B会社 東京都 東京都世田谷区… 03-0000-0000


で、表の外側に、都道府県名を入力するためのセルを用意してその隣に フォームのボタン を配置。
フォームのボタンをクリックするとそのセルに入力された都道府県の会社のみ抽出される。
そんなことが出来たらと思っています。



もし可能なら教えていただけないでしょうか?お願いします。
942名無しさん@そうだ選挙にいこう:2009/06/09(火) 21:33:33
>>929
普通に知らなかったわ

ちなみにこれ、マクロで使う方法はある?
943名無しさん@そうだ選挙にいこう:2009/06/09(火) 21:36:41
あ、すいません、なんか勘違いしてました、このあいだ
いじった時はセルの書式設定の表示形式に○とか×とか△とか入れて
ワカンねーとかやっていたのですが、データ入力規則のリストを多分使っているということに気づいたので
これをいじればいいだけの話ですよね。単純に多分○,×になっているところに○,△,×にすればいいんですよね。

よく考えたら、自分で選択範囲を設定して入力してるわけだからそこに書いてあるんですよね。

自分で書いていて。あれ?とおもいました。明日会社で試してみます。
944名無しさん@そうだ選挙にいこう:2009/06/09(火) 21:37:29
>>941
Sub Macro1()
Columns("A:A").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=Range("e1")
End Sub
こんな感じ。マクロの記録でもできるよ
Range("e1")をかえれば好きなセルにできる
945名無しさん@そうだ選挙にいこう:2009/06/09(火) 21:37:59
>>938
おれも>>939と同意見だが、もし別のシートにあるのなら名前定義使わないと出来ないはずだから、セルにカーソルを置いて入力規則を調べれば分るだろ?
式が=表とかなってたら、名前ボックスに"表"と入れりゃそこに飛ぶ。
946名無しさん@そうだ選挙にいこう:2009/06/09(火) 21:38:48
なんだ、自己解決してたか。
947名無しさん@そうだ選挙にいこう:2009/06/09(火) 21:39:36
>>943
書式設定は「;」で区切って設定する
"し";"ら";"す"
とユーザー定義で設定すると、正の数は「し」負の数は「ら」0は「す」になる
948名無しさん@そうだ選挙にいこう:2009/06/09(火) 21:47:03
>>942
ないんじゃない?
Evaluate使うなら別だけど。
949名無しさん@そうだ選挙にいこう:2009/06/09(火) 21:49:49
>>948
ありがと
Evaluateはそのまんまだからなぁ
950名無しさん@そうだ選挙にいこう:2009/06/09(火) 21:52:41
>>949
そういうときは普通Orじゃ無くてSelect Case使うじゃん。
951名無しさん@そうだ選挙にいこう:2009/06/09(火) 22:27:21
Select Caseで思い出したんだけど、Ifとの使い分けが良くわからん。

「Ifは上から順に判定、Select Caseは一気に判定」ってことは
本で読んだけど、別に体感速度が速くなるわけじゃいし・・・
誰か教えて。
952名無しさん@そうだ選挙にいこう:2009/06/09(火) 22:34:11
同じプログラムをifとselect caseで書いて見ればわかるだろ
3つ以上に分岐するときはcaseの方がわかりやすく美しい
953名無しさん@そうだ選挙にいこう:2009/06/09(火) 22:35:34
ttp://homepage1.nifty.com/rucio/main/technique/Select.htm
色々なメソッド・プロパティをまとめtipsがあればいいのにねぇ
954941:2009/06/09(火) 23:03:29
>>944
お礼のレス遅くなりすみません。

新規シートで適当に作ったデータだとうまくいくのに、
本番用のシートだとなぜかうまくいかなくていろいろ試行錯誤してました。
(抽出に使う名前が微妙に違っているのが原因でした…)

無事出来ました。思い通りの表が出来ました。

本当にありがとうございました!
955名無しさん@そうだ選挙にいこう:2009/06/09(火) 23:52:20
>>952
美しいって、誰かに見せたいわけ?wwwww

俺はいつもパスワード掛けて見せないようにしてるんだけど
956名無しさん@そうだ選挙にいこう:2009/06/09(火) 23:59:58
美を意識しないおまえのプログラムなんかだれもさわりたくないからしっかりパスかけとけ
957名無しさん@そうだ選挙にいこう:2009/06/10(水) 00:02:00
情報セキュリティの認識もないヘタレは、シッカリ句読点が打てるよう日本語を勉強しろ。
958名無しさん@そうだ選挙にいこう:2009/06/10(水) 00:44:41
情報セキュリティ云々じゃねーだろ?
汚い奴を人に見せるなってことだよ。
959名無しさん@そうだ選挙にいこう:2009/06/10(水) 00:48:03
>>955は数多く分岐するときにSelect Caseより IfとElseIf使った方が速いとかいって汚いコード書いてるんじゃねーの?
960名無しさん@そうだ選挙にいこう:2009/06/10(水) 00:51:16
Select Caseで素直に書ける時はその方が分かりやすいとは思うが
美しいってのとはちょっと違う気もするんだよなあ
961名無しさん@そうだ選挙にいこう:2009/06/10(水) 01:00:50
>Select Caseより IfとElseIf使った方が速い

         ↑はぁ?
962名無しさん@そうだ選挙にいこう:2009/06/10(水) 01:15:33
>776です

Application.OnKeyメソッドを使えばよいというアドバイスをいただき検索しながら挑戦してみたのですがうまくいきませんでした。
まず、どういう状況を考えているかというと例えば
= 1 + 2
という数式を入力しようとすると'='と'+'を入力するときにshiftキーを押しますが、
その直後に空白を入れるためにはshiftキーを離さなければショートカットキーが反応してしまいます。
しかし高速に入力していると(私の指の反応が遅いからですが)空白を入れるまでにshiftキーを離せない場合がたまにあるのでそういったときに問題が生じます。

VB editorで以下のマクロをmacro book(?)に保存すると、bookを開いた時点で自動的にWorkbook_Open()が実行され、
その中でOnkeyメソッドがShift + SpaceをSpaceに置き換えるのだと理解しました。

Private Sub Workbook_Open()
 Application.OnKey "+ ", " "
End Sub

しかしThisWorkBookというシートに上記のマクロを記述してみましたがShift + Spaceで相変わらずExcel自身のショートカットキーが反応してしまいます。
正しくは下記のようにしなければならないのでしょうか?

Private Sub Workbook_Open()
 Application.OnKey "+ ", "hogehoge"
End Sub

Sub hogehoge()
 空白を入力するマクロ
End Sub

キーを押すメソッドが分からず試すことができませんでした。
また、できれば特定のexcelファイルだけではなく全てのexcelファイルでこのショートカットキーを殺したいのですが
その場合はどのmacro book(?)に記述すればよいのでしょうか?

もう少しアドバイスいただければと思います。
963名無しさん@そうだ選挙にいこう:2009/06/10(水) 01:30:14
and/orって英語の契約書では良くでてくるけどなぁ。
orがxorか否かって論争を避けるために、曖昧さを排除するために
使うんだよねー 遅レスだが w
You or your wife can get $1,000.- at xxxxxx.
って文章読んで、夫婦そろって行けばそれぞれ$1,000の合計$2,000
もらえるのかっておはなし。
964名無しさん@そうだ選挙にいこう:2009/06/10(水) 07:12:05
>>963
and/orにすれば曖昧さは解消されるの?
965名無しさん@そうだ選挙にいこう:2009/06/10(水) 07:15:29
>>961
そのコードは+キーを押したときのコードじゃん。
Shift + Spaceを押したときのコードにしないとだめだよ。
なおOnKeyメソッドは記述したブックだけに効くもんじゃない。
Applicationにかかるから、全部のブックで有効になる。
966名無しさん@そうだ選挙にいこう:2009/06/10(水) 07:45:19
>>961
はぁ?の意味が分らんが、IfとElseIf使った方が速いのは事実だよ。
俺は速さより可読性優先だけどな。
967名無しさん@そうだ選挙にいこう:2009/06/10(水) 08:31:53
XP HE SP3 Excel2003 を数取機(カウンター)のように使いたいのですが
あるマス内の数字に最も素早く1を足し算する方法を教えてください。
VBAは使えません
検索ワードにはexcel 固定数 足し算 1 数取機 等を組み合わせて使いました
968966:2009/06/10(水) 08:36:42
>>966に補足です
例えばA1内の数が1555ならそこに1を足した数である1556を
A1内に上書きできる最速の方法を知りたいです。
969967:2009/06/10(水) 08:38:34
967でした。何度もageてすみません。
970名無しさん@そうだ選挙にいこう:2009/06/10(水) 08:46:43
そんなもんスピンボタンでも使えよ
971名無しさん@そうだ選挙にいこう:2009/06/10(水) 08:54:58
>>970
ありがとうございました
972名無しさん@そうだ選挙にいこう:2009/06/10(水) 08:55:54
>967
絶対にVBAがダメという条件だと、こんなこと↓ぐらいしか思いつかない。

すでにセルに書き込まれている数に+1じゃなくて、
どこか適当なセル(A2と仮定)に半角英字を入力した文字数を別セル(A1と仮定)で調べる方法。

A1セルの式 =LEN(A2)
A2セルにカーソルを移動して、カウントする都度[H]でも[J]でもいいからキーをポンポンと
押していく。
カウント終了したら[Enter]キーを押せばA1セルには文字数=カウント数が表示される。
973名無しさん@そうだ選挙にいこう:2009/06/10(水) 09:29:19
A1にカーソルを置いておいてエンターかカーソルキーの↓を押す
で、アクティブセルのある行が現在の数
じゃダメかい
974名無しさん@そうだ選挙にいこう:2009/06/10(水) 09:59:13
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

A1に20090401のような形で日付けが入っており、B1にはその日の注文金額が入っており、
それがn行まであります。
一月ごとの注文金額を出すにはどのように書いたら良いでしょうか?
200904 5320←セルは分けます。
200905 2912
みたいに出したいのです。
975名無しさん@そうだ選挙にいこう:2009/06/10(水) 10:23:11
年+月となる作業列を作る方法が簡単かと。
A列:元データの「日付」列(「」内は項目見出しのこと)
B列:「金額」列
で、1行目は項目見出し、データは2行目からと仮定して、C2セルに =INT(A2/100) と入れて
必要な行数分下へドラッグコピーする。

B1:C(n+1)まで範囲指定してからメニューバーのデータ−ピボットテーブルを選択
[レイアウト]ボタンをクリックしてから
「日付」を行(R)のエリアへ、「金額」をデータ(D)へドラッグ ここらへんは実際の画面をみるとわかる。

日付が文字列だった場合はINTじゃなくてLEFTを使用する。
976名無しさん@そうだ選挙にいこう:2009/06/10(水) 10:37:38
>972

無理に自分で設問してまで答えなくてもいいと思うんだな。
977名無しさん@そうだ選挙にいこう:2009/06/10(水) 10:38:04
【1 OSの種類】 WindowsXP
【2 Excelのバージョン】 Excel2007
【3 VBAが使えるか】 はい(初級程度)
【4 VBAでの回答の可否】 可

<状況>
1.画像(bmp)がフォルダに入っています。
画像の数は何千とあり、重複しない番号が振ってあります。
2.Excelのシートがあり、画像用の(画像と同一の)番号が振ってあります。
3.2の番号の下に1の画像を貼りこむのを手作業でやっています。非常に大変です。

<質問>
上記の作業を、関数なりVBAなりを使って簡単に行うことは可能でしょうか。
不可能なら不可能と言っていただけたらと思います。
よろしくお願いいたします。
978名無しさん@そうだ選挙にいこう:2009/06/10(水) 10:49:46
【1 OSの種類】 WindowsXP
【2 Excelのバージョン】 Excel2003
【3 VBAが使えるか】 マクロの記録を改変する程度
【4 VBAでの回答の可否】 可

あるフォルダにエクセルファイルがいくつか入っています。
拡張子は.xlsで目的のエクセルファイル以外はありません。
そのフォルダにある全てのエクセルファイルの、全てのシートのA列の幅を
1.68にしたいのですが、どうやればいのでしょうか?

foreachを使うと思いますが、うまく使えません。よければコード書いてください
お願いします。
979名無しさん@そうだ選挙にいこう:2009/06/10(水) 11:22:50
>977
>画像の数は何千とあり
ひとつのブックに全部取り込むの?
リンク貼り付けじゃないので、ブックのファイルサイズがとんでもないものになるけど大丈夫?
PCのメモリによっては不具合が起きるかもしれませんよ。
それから、いくつか質問。
1 1シートにひとつの画像を取り込むのですか? それとも複数?
2 ファイル名となる番号が記録されているセル位置は各シート同一ですか?
3 画像の挿入を 新しいマクロの記録 で記録してコードをみたことはありますか?
980名無しさん@そうだ選挙にいこう:2009/06/10(水) 11:47:30
>>974
>>975みたいな方法もあるが、日付を普通のシリアル値に直してからピボットテーブルで
年月でグループ化する方法もある。
シリアル値にするなら区切り位置使えば簡単。
「データ」 「区切り位置」 「次へ」 「次へ」 日付にチェックして「完了」
981974:2009/06/10(水) 12:38:31
答えていただきありがとうございます。
教えてもらった方法をやってみます。
982名無しさん@そうだ選挙にいこう:2009/06/10(水) 12:49:18
>978
マクロを記録したブック名を"列幅揃え.xls"として、処理対象ブックのあるフォルダに保存してください。
Option Explicit
Dim Path As String, myfile As String
Sub 列幅揃え()
  Path = ThisWorkbook.Path & "\"
  MsgBox (Path)
  myfile = Dir(Path)
  Do While myfile <> Empty
    myfile = Dir()
    If (Right(myfile, 4) = ".xls") Or (Right(myfile, 4) = ".XLS") Then
      If Not (Left(myfile, 4) = "列幅揃え") Then 'マクロを記録しているブックは処理対象外とする
        Call ブック処理
      End If
    End If
  Loop
  MsgBox ("幅揃え処理を終了しました。")
End Sub
続きます。
983982:2009/06/10(水) 12:53:23
続きです。
Private Sub ブック処理()
  Dim sh As Excel.Worksheet
  Workbooks.Open Filename:=(Path & myfile)
  If MsgBox(ActiveWorkbook.Name & "のすべてのシートについて幅揃えを行いますか?", vbYesNo) = vbYes Then
    For Each sh In ActiveWorkbook.Sheets  '全てのシートに対して順次処理する
      sh.Activate
      MsgBox ("シート名:" & ActiveSheet.Name)
      Range("A:A").ColumnWidth = 1.68
    Next
  End If
  ActiveWorkbook.Close
End Sub
不要なMsgboxの行は省略してかまいません。
ひとつのブックの処理が終わる都度「変更を保存しますか?」と聞いてくるので、これがわずらわしいなら
表示させずに強制的に保存する方法もあります。(自分で調べてね)
984名無しさん@そうだ選挙にいこう:2009/06/10(水) 13:03:28
>>979
情報が足りず、申し訳ございません。

>1 1シートにひとつの画像を取り込むのですか? それとも複数?
貼り込む画像の数は1シートに50個位。それが4シートで1つのブックにつき200個程です。

>2 ファイル名となる番号が記録されているセル位置は各シート同一ですか?
ファイル名となる番号が記録されているセル位置は、各シート同一です。
ブックのフォーマットがあらかじめ決まっていて、そこへ、同じサイズの画像を貼りこんでいきます。
1つのシートで、画像と画像の間隔は、一定です。

>3 画像の挿入を 新しいマクロの記録 で記録してコードをみたことはありますか?
以下のような感じでしょうか。

Sub 画像の挿入()
ActiveSheet.Pictures.Insert( _
"D:\001.bmp" _
).Select
End Sub

このコードをどう書き換えればいいのか、というところで行き詰まります。
よろしくお願いいたします。
985名無しさん@そうだ選挙にいこう:2009/06/10(水) 13:03:45
>>982-983
ありがとうううございますうううう!!
986名無しさん@そうだ選挙にいこう:2009/06/10(水) 13:20:45
>>984
ちなみにどういう仕事(趣味?)のためにそういう事をしたいの?
目的が具体的に分かるともう少しまともなアドバイスが出来るかもしれんのだが・・・
とりあえず今の情報だけだと本当にExcelでそれやる意味あるのか?って思えるな
987名無しさん@そうだ選挙にいこう:2009/06/10(水) 13:48:50
よろしくお願いします
Bの列で並び替えしたいんですが
  A  B
1 あ  c

2 い  b

3 う   a

   ↓
  A  B
1 あ  a

2 い  b

3 う   c
こうなってしまいます。希望は
  A  B
1 う  a

2 い  b

3 あ   c
どうしたらいいんでしょうか?XPでexcel2000です
988名無しさん@そうだ選挙にいこう:2009/06/10(水) 13:57:55
並べ替える前の範囲選択はどうやってますか? まさかB1:B3とか。
989名無しさん@そうだ選挙にいこう:2009/06/10(水) 14:02:19
B(灰色のとこ)をクリックすると列が範囲になって
AZ↓ボタンです
990名無しさん@そうだ選挙にいこう:2009/06/10(水) 14:09:10
>>987
先にBをクリックして、
BとAを範囲選択
その後並びかえ

もしできないならメニューのデータの中に詳細な並び替えオプションがあるからそれ使うとよろし
991名無しさん@そうだ選挙にいこう:2009/06/10(水) 14:18:30
>>989
(1) Bにマウスポインタを合わせる
(2) 左ボタンを押す(押したまま)
(3) マウスを左に動かす
(4) ポインタがAのとこに来たらボタンを離す
(5) AZ↓
992名無しさん@そうだ選挙にいこう:2009/06/10(水) 14:19:33
出来ました!ありがとうございます
もうひとつ聞きたいんですが検索するとき
検索をする文字列に1種類ではなく複数(or検索みたいな)することは出来るんでしょうか?
993名無しさん@そうだ選挙にいこう:2009/06/10(水) 14:20:25
>984
作ってみた。ただし、1シートに10個の画像を読み込む設定です。
ファイル名を書き込んだセル位置は↓のように配列で指定してます。(シート共通が前提)
画像を貼り付ける場所は、ファイル名を書き込んであるセルのひとつ下になります。
Sub 画像読込()
  Cell_Adr_Ary = Array("A1", "A3", "A5", "A7", "A9", "B1", "B3", "B5", "B7", "B9")
  Path = ThisWorkbook.Path & "\" ' フォルダのパス取得
  For Each sh In ActiveWorkbook.Sheets
    sh.Activate
    For Each C In Cell_Adr_Ary
      If IsNull(Range(C).Value) Then
        MsgBox (C & "セルにはファイル名指定なし")
        Exit For
      End If
      Full_Path = Path & Range(C).Value & ".bmp"
      On Error GoTo Error_Proc
      sh.Range(C).Offset(1, 0).Select  '←ひとつ下のセルを選択
      ActiveSheet.Pictures.Insert (Path & Range(C).Value & ".bmp")
      GoTo Normal_proc
Error_Proc:
      MsgBox (Range(C).Value & ".bmpファイルがありません。")
      Resume Next
Normal_proc:
    Next
  Next
End Sub
994名無しさん@そうだ選挙にいこう:2009/06/10(水) 14:52:49
>>993
そういう場合は文字列の配列じゃなくてRange型にするもんだよ

Set R = Range("A1,A3,A5,A7,A9,B1,B3,B5,B7,B9")
For Each C In R

そうすれば Range(C).Value みたいになってる部分がみんな C.Value に短縮できるようになる
995名無しさん@そうだ選挙にいこう:2009/06/10(水) 15:08:19
で?
996993:2009/06/10(水) 15:10:02
>994
そういう方法があったんですね。勉強になりました、ありがとうございます。
997名無しさん@そうだ選挙にいこう:2009/06/10(水) 18:34:48
>>986
仕事です。
データをグラフ化してくれるアプリケーションがあるのですが、
そこから取得した画像(グラフ)を、Excelにまとめて、報告書として提出しています。

報告書は、「Excelのこの形式で」と、管理者から指定されております。
しかしながら、(Excel以外で)この業務を行うのに適切な方法があれば、
次の機会に、改善点として提言したいと思います。
(どんな方法でやるのが適切か、もし何かアドバイスがあればお願いいたします)

当面は変更できないので、Excelでの作業になります。

>>993-994
ありがとうございます。

目的のファイルを該当するフォルダへ探しにいき、
ファイル名とセルのデータが一致したら、画像を挿入、
で、(オフセットで)ひとつ下のセルに移動し、同じことをする、
という感じでしょうか。
エラーの返しも含めていただいているのですね。

>>994は、>>993を改良するアイディアですね。

すらすら読み解くレベルではないので、時間をかけて取り組んでみようと思います。
行き詰まったらまた尋ねさせていただけたらと存じます。
998993:2009/06/10(水) 19:00:09
>997
マクロを記録したブックは、画像ファイルと同じフォルダに入れてください。
Path = ThisWorkbook.Path & "\" ' フォルダのパス取得 ←開いているブックのパスのこと

それから50個のセルアドレスの指定方法は、レンジで利用するとした場合
array1 = "A1,A3,A5,A7,A9,A11,A13,A15,A17,A19,A21,"

array5 = "E1,E3,E5,E7,E9,E11,E13,E15,E17,E19,E21"
Set R = Range(array1 & array2 & array3 & array4 & array5)
For Each C In R
などとして読みやすくできると思う。

画像の拡大・縮小をして収まりをよくするような処理は、まだ自分でしたことがないので入れてません。
999名無しさん@そうだ選挙にいこう:2009/06/10(水) 19:21:27
次スレのご案内

Excel総合相談所 83
http://pc11.2ch.net/test/read.cgi/bsoft/1244628763
1000名無しさん@そうだ選挙にいこう:2009/06/10(水) 19:22:22
age
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。