Excel総合相談所 92

このエントリーをはてなブックマークに追加
1名無しさん@そうだ選挙にいこう
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★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総合相談所 91
http://pc11.2ch.net/test/read.cgi/bsoft/1270542226/
2名無しさん@そうだ選挙にいこう:2010/05/24(月) 19:34:49
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・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名無しさん@そうだ選挙にいこう:2010/05/24(月) 19:37:06
★ルールを無視すると…
 >>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名無しさん@そうだ選挙にいこう:2010/05/24(月) 19:40:08
★ 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名無しさん@そうだ選挙にいこう:2010/05/24(月) 19:42:40
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

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

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

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

 ▼グラフ
  ・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる
   (オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入)
  ┌┐
  〜〜
  ||
6名無しさん@そうだ選挙にいこう:2010/05/24(月) 19:45:31
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。
間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。
Excel2007についても未確認な項目が多いので変更点が有ればご指摘下さい。

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

>▼環境・書式
> ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
補足
2007ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、
指定も同じくcm単位でできる。
ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように
近い値に勝手に丸められる。

以上でテンプレ終わり (Excel総合相談所 89からコピペしました)
7複乳:2010/05/24(月) 21:04:22
>>1
8名無しさん@そうだ選挙にいこう:2010/05/24(月) 21:49:48
複乳の読み方を下でたしかめると「フクチチ」と出たのですが、合ってますか?

Sub gg()
MsgBox Application.GetPhonetic("複乳")
End Sub
9前996:2010/05/24(月) 21:54:23
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 フォームコントロール 連動

御願いします。 (前997様の方法では連動しませんでした)
シート1にあるフォームコントロール(チェックボックス1)に、
チェックをつけると、
シート2にあるフォームコントロール(チェックボックス4とフォームコントロール(チェックボックス5)
も連動してチェックが付き(シート1のチェックを外すと4と5も外れる)、
かつシート2のA1セルに○を入力するといった
方法をとりたいのですが、どのように記述(VBA)したら良いでしょうか?
10前スレ988:2010/05/24(月) 22:02:50
>>前スレ993さん、997さん
セルの色は引き継がれませんでした。
でも、全セルをコピーするのは大きな収穫でした。
ちょっとギコチないですが、それなりに動いてます。

Sub 保存()
WBN = ThisWorkbook.Name
Cells.Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste

For Each BTN In ActiveSheet.Shapes
BTN.Delete
Next BTN
ActiveWorkbook.Colors = Workbooks(WBN).Colors
Range("A1").Select
ActiveWorkbook.SaveAs "C:\data\" & "test.xls"
End Sub
11名無しさん@そうだ選挙にいこう:2010/05/24(月) 22:24:55
前スレの>>979です!
前スレ>>981様、ありがとうございます!
INDEX関数を、ようやく理解することができました!本当にありがとうございます!
12名無しさん@そうだ選挙にいこう:2010/05/24(月) 22:39:53
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 積算 グラフ

質問です。

月次のデータと、積算データをこのようなグラフで表したいのですが、
http://markezine.jp/static/images/article/10329/nc.gif
シートにどういう風にデータを入力していけばいいのかと、
どのグラフを選択すればわかりません(´;ω;`)ウッ…

どなたか親切な方、お教え頂けると幸いです。m(_ _)m
13名無しさん@そうだ選挙にいこう:2010/05/24(月) 22:47:45
>>9
フォームコントロールのチェックボックスは
Sheets("Sheet1").CheckBoxes("Check Box 1").Value
とかでアクセスする
値は xlon 又は xloff
14名無しさん@そうだ選挙にいこう:2010/05/24(月) 22:56:19
>>12
とりあえずグラフウィザードで折れ線にしたいものも含めて積み上げ棒グラフにして
折れ線にしたい系列を選んで右クリックしてグラフの種類を折れ線
かな
15名無しさん@そうだ選挙にいこう:2010/05/25(火) 01:59:05
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ

シートが100あるのですがいちいち手入力せずに
EXCELかtxt状態の100行を貼り付けて一度に100シート名入力
できる方法はないでしょうか?
16名無しさん@そうだ選挙にいこう:2010/05/25(火) 02:19:36
imigawakarimasen
17名無しさん@そうだ選挙にいこう:2010/05/25(火) 02:28:00
SUIMASEN

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ

ブックに100シート作りシート名を付ける場合いちいち手入力せずに
EXCELかtxt状態の100行を貼り付けて一度に100シート名入力
できる方法はないでしょうか?
18名無しさん@そうだ選挙にいこう:2010/05/25(火) 04:29:59
A・B 2種類の数列のグラフを作った時、Aの数値が200000〜2000000で
Bが100%までの数値だとAだけが見えてBは見えません
右側に%軸を追加するためにBを右クリックするにも小さすぎてなかなか選択できません
このような場合簡単に右縦軸に%軸を作成する方法はないでしょうか?
ちなみにエクセル2007です
19名無しさん@そうだ選挙にいこう:2010/05/25(火) 05:53:15
zoomshinahare
20名無しさん@そうだ選挙にいこう:2010/05/25(火) 07:40:10
>>17
Alt+F11キー → 開いてるブックの名前で右クリック→挿入→標準モジュール。
以下 sub 〜 end sub までを全部コピペして、A列(A1〜空白行の前まで)に記入。
Alt+F8で Yatuke を選択して実行。

Sub Yattuke()
' A1以下に追加したい名前を列記して、Alt+F8で Yatuke を選択して実行。
' A列(A1〜空白行の前まで)に記入した内容でシートを追加するやっつけマクロ。
' やっつけなので、いろいろ不具合はあるが、とりあえず既存シートと同じ名前がなければ動く。
Dim SetSheet As String
Dim WorkRows As Integer
WorkRows = 1
SetSheet = ActiveSheet.Name
Do While Sheets(SetSheet).Cells(WorkRows, 1) <> ""

  Sheets.Add

  ActiveSheet.Name = Sheets(SetSheet).Cells(WorkRows, 1)
  Sheets(SetSheet).Select
  WorkRows = WorkRows + 1
Loop
End Sub

こういうのを求めてんのかな・・・?
2112:2010/05/25(火) 08:21:02
>>14
ありがとうございます!
なんとなくそれっぽいものが出来ました!

http://www.dotup.org/uploda/www.dotup.org911770.jpg

出来れば、△のマークを別の記号に、たとえば○のマークに変更とかって出来たりするんでしょうか?
22名無しさん@そうだ選挙にいこう:2010/05/25(火) 13:03:23
>>21
グラフを右クリックしてマーカーの変更、だったかな
形も色も大きさも変更できる
自分で作った画像も貼り付けられる
23名無しさん@そうだ選挙にいこう:2010/05/25(火) 13:11:27
Excelで文字列の中に含まれた制御コードを判定したいのですが、うまくいきません。

例えばA1に改行だけを入れてB1に
 =if (A1=chr(13),"改行","")
と入れて数式エラーになるのです…
どうすればいいんでしょうか
24名無しさん@そうだ選挙にいこう:2010/05/25(火) 13:18:56
すみません。

VBがchrなので、Excel関数もてっきり、同じかと思ってました。
charにしたらうまくいったよ!幸せゲットだよ!
25名無しさん@そうだ選挙にいこう:2010/05/25(火) 16:38:23
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ

はじめて質問させてもらいます。
エクセルファイルで URLがいくつも入ったデータを持っているのですが、
URLの最後のアドレス部分のみ抜き取りたいのですが、可能でしょうか?
また可能な場合どういった作業になるのでしょう?


http://www.yahoo.co.jp/test/index.html
セルに↑のようなデータが入っています。最後の部分index.htmlだけ抽出したいのです。

どうぞよろしくお願いします。
26名無しさん@そうだ選挙にいこう:2010/05/25(火) 16:42:33
>>20
これはいわゆるVBAっていうやつでしょうか?
VBA使わずにできる方法はないでしょうか?
よろしくお願いします
27複乳:2010/05/25(火) 16:57:29
>>25
変なのしか出来ないな
A1=http://www.yahoo.co.jp/test/index.html
B1=FIND("/",$A1)
C1=IF(ISERROR(B1),RIGHT($A1,LEN($A1)-A1),FIND("/",$A1,B1+1))
後はCを→にオートフィル、下にもオートフィル
例だとG1に出てくる
このスレのアドレス(http://pc11.2ch.net/test/read.cgi/bsoft/1274695863/24n-)だとJ1にでてくるな
vba使ったらsplitで一発なんだけど
>>26
無い
shift+F11でシートは作れるけど、名前変更はショートカットでは出来ないな
28名無しさん@そうだ選挙にいこう:2010/05/25(火) 17:00:00
>>25
気持ち悪い方法を考えたぞ
=MID(A1,1+MAX(MOD(FIND("/",A1&"/",ROW(OFFSET(A1,1,0,LEN(A1),1))),LEN(A1))),LEN(A1))
としてctrl+shift+enter
2925:2010/05/25(火) 17:06:29
>>27 さん
すごいっす!!
めっちゃ助かりました。ありがとうございます。
30複乳:2010/05/25(火) 17:22:07
>>28
応用しすぎワロタ
31名無しさん@そうだ選挙にいこう:2010/05/25(火) 23:56:01
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 検索 置換 メニューバー

↓のようにメニューバーに検索、置換それぞれ文字も入力できるようにするのはどのようにすればいいのでしょうか?

http://deliver.vector.co.jp/screenshot/483/483497_00.jpg
32複乳:2010/05/26(水) 14:10:58
ツールバー カスタマイズ エクセル でぐぐれ
33名無しさん@そうだ選挙にいこう:2010/05/26(水) 21:55:00
次の表で、「見込実績」の欄に入る数字を自動化したいです。
数値が入るセルは「計画」と「実績a」〜「実績d」です。
実績の欄に何も入ってないときは「計画」の値が入ります。
-------------------------------------------------
   A        B       C      D       E
3           4月     5月     6月     7月
4  計画     1,000     500    2,000
5  見直
6  見込実績  1,000     500    2,000
7  実績a
8  実績b
9  付替
10 実績c
11 実績d


実績に数値が入ると、その合計が「見込実績」に入り、
「計画」との差があれば、翌月の「見込実績」に入ります。
-------------------------------------------------
   A        B       C      D       E
3           4月     5月     6月     7月
4  計画     1,000     500    2,000
5  見直
6  見込実績   600     900    2,000
7  実績a     300
8  実績b     200
9  付替
10 実績c      0
11 実績d     100

よろしくお願いします。
34名無しさん@そうだ選挙にいこう:2010/05/26(水) 22:04:25
どうせ「見直し」に数字が入ったら「見込実績」の数字を変えるんだろ?
3533:2010/05/26(水) 22:25:13
>>34
見直しは下期になって、計画に置き換わるので、今回の質問とは関係ありません。
36名無しさん@そうだ選挙にいこう:2010/05/26(水) 22:36:16
>33
9行目の「付替」が何を意味するかわからないけど、7行目〜11行目までの計が実績と仮定します。
B6セル =IF(COUNT(B7:B11)=0,B4,SUM(B7:B11))
C6セル =IF(COUNT(C7:C11)=0,IF(COUNT(B7:B11)=0,C4,C4+B4-B6),SUM(C7:C11)) で、右にフィルコピー
「付替」を実績に含めないのであれば、COUNT(B7:B11)→COUNT(B7:B8,B10:B11)などのように変更のこと。

ただし、当方OOoのCalcで作った(;→,の変更のみ)ので、あしからず
37名無しさん@そうだ選挙にいこう:2010/05/26(水) 22:45:11
>>25
関数やvbaなんか使わなくても
*/ を置換で消せば一発なんだが。
3833:2010/05/26(水) 23:09:08
>>36
ありがとうございます。
B6は、=IF(AND(B7="",B8="",B10="",B11=""),B4,B7+B8+B10+B11)と
考えてみましたが、=IF(COUNT(B7:B11)=0,B4,SUM(B7:B11))の方が
シンプルでいいですね。
39名無しさん@そうだ選挙にいこう:2010/05/26(水) 23:19:54
>33 まあおんなじだけど
B6 : =IF(SUM(B7:B11)>B9,SUM(B7:B11)-B9,B4)
C6 : =IF(SUM(C7:C11)>C9,SUM(C7:C11)-C9,C4+B4-B6)
40名無しさん@そうだ選挙にいこう:2010/05/27(木) 00:35:24
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000

エラーが出るのでF8で検証してます。
@もAもセレクトしてくれるのに、Bで
実行時エラー424
オブジェクトが必要です というエラーが出ます。
なにがマズーでしょうか?

@ Cells(i, 12).Select
A Range("A65536").End(xlUp).Offset(, 2).Select
A Cells(i, 12).Copy Destination:=Range("A65536").End(xlUp).Offset(, 2)
41名無しさん@そうだ選挙にいこう:2010/05/27(木) 00:41:22
>>32
分かりません…
42名無しさん@そうだ選挙にいこう:2010/05/27(木) 00:45:15
エラーが出るのでF8で検証してます。
(1)も(2)もセレクトしてくれるのに、(3)で
実行時エラー424
オブジェクトが必要です というエラーが出ます。
なにがマズーでしょうか?

(1) Cells(i, 12).Select
(2) Range("A65536").End(xlUp).Offset(, 2).Select
(3) Cells(i, 12).Copy Destination:=Range("A65536").End(xlUp).Offset(, 2)
43複乳:2010/05/27(木) 00:53:34
>>40
ならん。多分iが0か65537以上になっている
と思ったが違うかなー。
コードを全部教えて欲しい
>>41
新しいツールバー作ってボタン乗せてマクロの記録で記録したコード登録と思う
やった事ないけど
また明日
44名無しさん@そうだ選挙にいこう:2010/05/27(木) 01:05:00
>>43
Cells(i, 12).Copy Destination:=Range("A65536").End(xlUp).Offset(0, 2) にしたら動きました。
なんででしょう???



ついでに・・・
Range(Cells(i, 15), Cells(i, 18)).Copy Destination:=Range("A65536").End(xlUp).Offset(0, 4) の値を
プラスマイナス反転させるにはどうすればいいでしょうか?
-(Range(Cells(i, 15), Cells(i, 18)).Copy) と書いたらコンパイルエラーになってしまいました(><)
45複乳:2010/05/27(木) 01:35:12
>>44
知らん
一旦変数に入れて*-1
もしくはcells(1,1).value=-cells(1,2).value
toka
46複乳:2010/05/27(木) 09:45:47
>>41
何でわかんねーンだよw
ttp://www1.axfc.net/uploader/Img/so/83630.jpg
こんな漢字
>>44
知らんってのはoffsetの件ね
引数は0でも入れておいたほうがいいんじゃない

-(Range(Cells(i, 15), Cells(i, 18)).Copy) 
に関しては、rangeはオブジェクトっていって色々な要素を持つ
Range(Cells(i, 15), Cells(i, 18))のvalue(値)なのかrow(行)なのかhidden(表示/非表示フラグ)わからない
そのどれをマイナスにするか分からないし、そもそも記述もテキトーすぎる
言いたいことは分かるんだけどな
47名無しさん@そうだ選挙にいこう:2010/05/27(木) 21:57:53
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

A12にオンラインで株価を取得する関数が入っているのですがOLで繋がっている時は
数値が表示されますが通信を切断すると関数の文字列に変わってしまいます。
なのでその値のみをB12に自動的にコピーしたいのですがどのような関数を用いれば良いでしょうか?
宜しくお願いします。。。
48名無しさん@そうだ選挙にいこう:2010/05/27(木) 22:06:20
値でコピーする
自動的にするためにはVBAしかない
49名無しさん@そうだ選挙にいこう:2010/05/27(木) 22:11:25
>>47
>>48に追加するとマクロの記録程度でできるから試してみれば?
50名無しさん@そうだ選挙にいこう:2010/05/27(木) 22:27:33
>>46
ありがとうございました。
メニューバーに文字を打ちたいのです!
マクロですか?
51名無しさん@そうだ選挙にいこう:2010/05/27(木) 22:29:29
やはりVBAですよね・・・ちょっと調べてみます
5233:2010/05/28(金) 00:15:59
33です。
36の例で試してたら、4月5月が0のとき6月は3,500になるべきが
2,500になってしまいます。

-------------------------------------------------
   A        B       C      D       E
3           4月     5月     6月     7月
4  計画     1,000     500    2,000
5 
6  見込実績      0        0    2,500
7  実績a       0       0
8  実績b       0       0
9 
10 実績c       0       0
11 実績d       0       0

39の例だと、予想外の数字が・・・
-------------------------------------------------
   A        B       C      D       E
3           4月     5月     6月     7月
4  計画     1,000     500    2,000
5 
6  見込実績      0     1,500    1,000    1,000   -1,000  1,000
7  実績a       0       0
8  実績b       0       0
9 
10 実績c       0       0
11 実績d       0       0

再度お助けを。
53名無しさん@そうだ選挙にいこう:2010/05/28(金) 00:21:32
意味のない引き算してる
多分1000を変えたらその金額も変わる
5433:2010/05/28(金) 00:37:22
自己解決しました。
55名無しさん@そうだ選挙にいこう:2010/05/28(金) 22:30:50
>>53
56名無しさん@そうだ選挙にいこう:2010/05/29(土) 00:23:09
>>44
…Offset(, 2)はダメで…Offset(0, 2)なら動く
なんて事はないよ。問題は別にある。
貧乳も余計なアドバイスしない方がいい。
あと、インタプリタにコンパイルエラーは無いし
マイナスのオブジェクトも存在しない。
57名無しさん@そうだ選挙にいこう:2010/05/29(土) 00:40:10
>インタプリタにコンパイルエラーは無いし
へぇ〜
http://uproda.2ch-library.com/250644fbW/lib250644.jpg
58名無しさん@そうだ選挙にいこう:2010/05/29(土) 01:17:56
恐れ入りますが、お詳しい方宜しくお願いします。

日付  1日  2日  3日  4日  5日
10 10 15 20 10
15 10 20 15 20
10 10 10 10 10
日計   35 30 45 45 40(オートSUM済)

累計   35 65 110 155 195


当日の累計を出す際ですが、自動的に前日の累計に今日入力した
日計を足す操作方法を教えてください。前任者は、前日の累計を
クリックして横に引っ張ったまま、今日の日計の部分をクリック
すると加算された累計が出ると言うのですが、何度やっても出来
ないので、自分で計算して手入力してます。初歩的なことで、
恐縮ですが、お願いします。
5938:2010/05/29(土) 01:27:56
申しワケありません。日付の下の数字が、全部左に寄ってしまった・・・
60名無しさん@そうだ選挙にいこう:2010/05/29(土) 05:08:15
"日付"がA1セルに入ってるとして、
累計の左から=B5, =B7+C5と入れてオートフィル・・・じゃダメなの?
61Cherry ◆d/pQlCc6hA :2010/05/29(土) 05:51:54
>>58
「累計」が6行目だとして、
B6=SUM($B5:B5)、右にオートフィルでいかがでしょう。
62名無しさん@そうだ選挙にいこう:2010/05/29(土) 20:32:09
>>58
=SUM(B5,A6)
63名無しさん@そうだ選挙にいこう:2010/05/29(土) 20:38:52
>>58
累計の出し方も分からないなら見込みがないからやめた方がいいかもね。
上のセルと左のセルを足すだけだろ?
いちいち最初から合計するやつはヴァカ。
64名無しさん@そうだ選挙にいこう:2010/05/29(土) 21:04:04
【1 OSの種類         .】 WindowsXP SP4
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】Dim hogehoge As Worksheet

【やりたいこと】
・他のブックのシートを書き出したい。
 セルA2に任意のブック「piyo.xls」のアドレス「c:\hoge\piyo.xls」を入力しておき、 ブック「piyo.xls」のシート名をセルA4以下に書き出したい。

【やってみたこと】
↓これだと、このマクロのあるブックに含まれるシートがセルA4以下に書き出されてしまう。
Sub MCR_FindSheetName()
Dim tempSheet As Worksheet
Range("A4").Select
For Each tempSheet In Worksheets
With ActiveCell
.Value = tempSheet.Name
.Offset(1).Select
End With
Next
End Sub
65名無しさん@そうだ選挙にいこう:2010/05/29(土) 21:39:27
>>64
そりゃ、ブックを何も指定してないから・・・

サンプル

Sub MCR_FindSheetName()
Dim tempSheet As Worksheet
Dim r As Range
Set r = ActiveSheet.Range("A4")
Workbooks.Open (Range("a2").Value)
For Each tempSheet In Worksheets
With r
.Value = tempSheet.Name
Set r = .Offset(1)
End With
Next
End Sub

66名無しさん@そうだ選挙にいこう:2010/05/29(土) 21:57:47
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 フーリエ級数+Excel,マクロなど:似たことをしようとしているページは見つけましたがよくわからずです

【やりたいこと】
フーリエ級数の計算をExcelにやらせたいと考えています。具体的には元の関数f(x)に対して成り立つフーリエ級数 f(x)=a0/2 + Σ[k=1→∞](ak*coskx + bk*sinkx) を計算させるというものです。
ただフーリエ係数のうちa0を含めakは0であることが既知ですので、f(x)=Σ[k=1→∞](bk*sinkx)のみの計算をしようとしています。

現在
・B1から下(B列)にはθ[rad]、-π〜πを360個のセルで
・C1から下(C列)にはk (ex) C1セルには1、C2セルには2・・・
・O1から下(O列)にはbk (ex) O1セルにはb1、O2セルにはb2・・・

が計算済みとなっています。ここでQ列からフーリエ級数の計算をさせようと考え、
 Σ(bk × sinkθ) ですから

Q1セルに =$O$1*SIN($C$1*B1) → 下向きにオートフィル

と入力しました。これでb1*sin(1*θ)のみのΣになりますよね?続いてR列には第二次までにしようと考え、

R1セルに =$O$1*SIN($C$1*B1)+$O$2*SIN($C$2*B1) → 下向きにオートフィル

と入力しました。これでb1*sin(1*θ)+b2*sin(2*θ)になりますよね?

これをS,T,U・・・と高調波を増やしながら演算させていきたいのですが、このように「計算項をどんどん増やしていく」という作業が当方わかりません。
理想としては kを指定するセルがあって、ここに100などと入力すると100次高調波までΣされたものが△1セルに出力される、なんてことをしてみたいのですが、関数では実現不可能なのでしょうか?
マクロを使っても構いません。当方マクロの知識がなく、途方に暮れております。

何か質問があれば迅速な回答を心がけますので、よろしくお願いいたします。
67名無しさん@そうだ選挙にいこう:2010/05/29(土) 22:45:51
複合参照を使う。それまでの計算結果を使う。

たとえば、1行目のB〜J列に1〜9。A列2〜10行目に1〜9を入れて
B2に =$A2*B$1 として下と右にオートフィルすれば九九の表ができます。
B列はそのままでC2に =B2+$A2 として下と右にオートフィルしてもできます。
2行目はそのままでB3に =B2+B$1 として下と右にオートフィルしてもできます。
6864:2010/05/29(土) 23:01:31
>>65
Set r = ActiveSheet.Range("A4")
Workbooks.Open (Range("a2").Value)

ここの箇所が思いつかなかった。THXです。
69名無しさん@そうだ選挙にいこう:2010/05/30(日) 00:08:01
文字の下の下線なのですが
担当者___________________ってやりたい場合(担当者の下にも下線があります)スペースを入れると一時的に下線が引かれるのですが
他のセルをクリックすると消えてしまうのですがこのようなやり方は邪道なのでしょうか
7066:2010/05/30(日) 00:16:10
>>67さん
ありがとうございました。$1個っていう使い方が・・・。
無知で申し訳なかったです。
71名無しさん@そうだ選挙にいこう:2010/05/30(日) 01:51:20
>>68
ブックを指定しないのは気持ち悪いね。
エラー処理なしだと
Sub MCR_FindSheetName()
Dim tempSheet As Worksheet
Dim r As Range
Dim wb As Workbook
Set r = Range("A4")
Set wb = Workbooks.Open (Range("a2").Value)
For Each tempSheet In wb.Worksheets
 r.Value = tempSheet.Name
 Set r = r.Offset(1)
Next
End Sub
72名無しさん@そうだ選挙にいこう:2010/05/30(日) 07:08:36
>>69
当方の2002では他のセル選択しても消えないけど。
73名無しさん@そうだ選挙にいこう:2010/05/30(日) 12:16:39
VBAでセル内容を数式にしたいとき

cells(1,1).value="=sum(b2:b10)"
cells(1,1).formula="=sum(b2:b10)"
cells(1,1)="=sum(b2:b10)"

のどれも同じですよね?
なにか違いはあるのですか?
気になって夜も眠れません
74名無しさん@そうだ選挙にいこう:2010/05/30(日) 12:21:46
あと
cells(1,1).FormulaR2D2="=sum(b2:b10)"
みたいなのもあるらしいが、区別すべきですか?
75名無しさん@そうだ選挙にいこう:2010/05/30(日) 12:36:17
>>73
cells(1,1).value="=sum(b2:b10)"
の省略形が
cells(1,1)="=sum(b2:b10)"
なので、このふたつは全く同じ。

formula は知らん。
7673:2010/05/30(日) 12:48:08
>>75
どうもです

どなたかformulaのこと知りませんか?
77名無しさん@そうだ選挙にいこう:2010/05/30(日) 15:53:19
【1 OSの種類         .】 Windows xp home edition
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 IF関数 論理式 数式

--------------------------------------------------------------
エクセルの練習のために家計簿を作っており、以下のようなシートを作っています。

   A      B       C
4 2010/6/1   =A4 =IF(A4="日","休日",IF(A4="土","休日",IF(A4="金","休前日","平日")))

5 2010/6/2   =A5 =IF(A5="日","休日",IF(A5="土","休日",IF(A5="金","休前日","平日")))

6 2010/6/3   =A6 =IF(A6="日","休日",IF(A6="土","休日",IF(A6="金","休前日","平日")))

7 2010/6/4   =A7 =IF(A7="日","休日",IF(A7="土","休日",IF(A7="金","休前日","平日")))

---------------------------------------------------------------------------

B列はユーザー定義で「aaa」にしており、自動的にA列の曜日が出るようになっています。
B列に「月」、「火」、「水」、「木」と表示されるときは、C列に「平日」を、
B列に「金」と表示されるときは、C列に「休前日」を、
B列に「土」、「日」と表示されるときは、C列に「休日」を表示するため、
C列に「=IF(A4="日","休日",IF(A4="土","休日",IF(A4="金","休前日","平日")))」を入力しましたが、
全て表示が「平日」になってしまいます。

どうすれば「平日」、「休前日」、「休日」を表示されるか教えてください。
78名無しさん@そうだ選挙にいこう:2010/05/30(日) 16:28:46
>>77
A列もB列もシリアル値が入っているからね・・・

=IF(TEXT(A1,"aaa")="日","休日",IF(TEXT(A1,"aaa")="土","休日",IF(TEXT(A1,"aaa")="金","休前日","平日")))

でもweekday関数を使って

=IF(WEEKDAY(A1,2)>=6,"休日",IF(WEEKDAY(A1,2)=5,"休前日","平日"))
79名無しさん@そうだ選挙にいこう:2010/05/30(日) 17:12:10
どうもありがとうございます。

シリアル値という概念をはじめて知りました。
80名無しさん@そうだ選挙にいこう:2010/05/30(日) 17:27:26
>>73
Value は値を設定するプロパティ
Formula はA1形式の数式を設定するプロパティ
FormulaR2D2 では無く FormulaR1C1 はR1C1形式の数式を設定するプロパティ

そんで、Excelはプロパティを省略しても、ある程度区別してそれぞれのプロパティに
設定してくれるから違いが解りずらいけど

きちんと区別した方がいい

詳しくはヘルプをみた方が早い
81名無しさん@そうだ選挙にいこう:2010/05/30(日) 18:17:20
凄く初歩的な質問ですみませんが、
B列に1から順番にint型の数字を追加する際に、
C列に「B列に0.9かけた値を表示する」という数式を作りたいと思っています。
ただ、B列に追加されるデータ数が未知であり、時が立つとどんどん追加されます。
この時、C列に上記の数式を実現するには、どのセルにどのような数式を足せばいいでしょうか?
excel2000を使ってます
82名無しさん@そうだ選挙にいこう:2010/05/30(日) 18:21:37
>>81
うん?よく分からない
=IF(B1="","",B1*0.9)
下にコピー ってことじゃないよね?
83名無しさん@そうだ選挙にいこう:2010/05/30(日) 18:52:33
>>82
説明が下手ですみません。
式自体はそうなるかもしれませんが、B列に追加されるデータ数がどんどん増える可変長なのです。
B1〜BXまで、どんどんデータが追加されるとき、いちいちC列に>>82式をコピーしなくても、
自動的に、例えばB32にデータが入力されたらC32にB32*0.9の値が出力されるようにしたいのです
84名無しさん@そうだ選挙にいこう:2010/05/30(日) 18:56:37
77氏ではないですが・・・

77の例で、B列を条件(1) [セルの値が] [次の値に等しい] [="土"] にして
書式のフォント色を青にしましたが色が変わりません。

設定ミスでしょうか?
85名無しさん@そうだ選挙にいこう:2010/05/30(日) 19:06:43
>>84
だから・・ww
シリアル値が入っているからね・・・・

数式で
=TEXT(A1,"aaa")="土" とかにしてくれ
86名無しさん@そうだ選挙にいこう:2010/05/30(日) 19:09:26
>>83
最初から>>82の式をあらかじめコピーしておいたらいいじゃん(´・ω・`)
B列に何も入力していなかったら、見た目はブランクだよ
87名無しさん@そうだ選挙にいこう:2010/05/30(日) 19:15:18
>>86
アドバイスありがとうございます。
私も最初はそのように考えたのですが、データの数が100や200を超える予定であり、
かつ何個になるのか分からないので、どのようにすべきか悩んでおります…
88名無しさん@そうだ選挙にいこう:2010/05/30(日) 19:26:55
>87
B65535まで式を入れておけば悩むことはない
89名無しさん@そうだ選挙にいこう:2010/05/30(日) 19:55:55
>>85
d
90名無しさん@そうだ選挙にいこう:2010/05/30(日) 20:41:48
>>83
VBAのワークシートチェンジを使う
分からないor勉強する気がないなら冗談でも何でも無く
>>86>>88しかない
まぁC列には色つけてからオートフィルタでもすれば式の入れ忘れはそうそうないだろう

後は0.9かけてなにがしたいかによる
例えば合計なら=sum(b:b)*0.9でいいし平均なら=sum(b:b)*0.9/count(b:b)だ
91名無しさん@そうだ選挙にいこう:2010/05/30(日) 21:42:47
VBAでステートメントの辞書的な本で
初心者から中級者向けの本のおすすめを教えていただけませんか?
92名無しさん@そうだ選挙にいこう:2010/05/30(日) 21:47:25
>>90
ありがとうございます。
やりたいことは、0.9かけて小数点以下を切った値を和算したいのです。
全体を足してから0.9かけると別の値になってしまうため、上記の方法を考えています
93名無しさん@そうだ選挙にいこう:2010/05/30(日) 23:05:26
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 たぶん
【4 VBAでの回答の可否】 可
If Cells(i, 4).Value - Cells(i, 12).Value = 0 Then で分岐したら
条件に合わない例が出てきたので、値をみたら-0.00000になってました。
見た目は小数点5ケタの数値で0なのに、なんでこうなってしまうのでしょうか?
94複乳:2010/05/30(日) 23:24:52
>>91
大抵の人は一冊テキトーに買って後は検索ってパターンが多いと思う
俺はかったことが無いけど
MSDN等を調べるか、やりたい事をぐぐったほうが早いと思う
ちなみにプログラム板にVBA専用のスレがある
>>92
配列数式かな
=SUM(INT(B1:B60000))
でCtrl+shift+enterで決定。配列数式の意味は検索して
>>93
多分それ、もっと少ない数じゃないか?-0.000000001とか
小数誤差とおもう。適当なところで切り捨てして比較した方が良いよ
If int(Cells(i, 4).Value*1000) - int(Cells(i, 12).Value*1000) = 0 Then
みたいな感じで
小数誤差の説明は長くなるのでぐぐってくれ
95名無しさん@そうだ選挙にいこう:2010/05/30(日) 23:47:08
>>94
ありがとうございます。配列数式をググってみて、一応理解したつもりなのですが、
配列数式では配列内の各値を0.9倍して端数を切り捨てしたものを合計する、とは出来るのでしょうか?
96名無しさん@そうだ選挙にいこう:2010/05/31(月) 00:13:24
配列数式をB1:B60000までというのもすごい発想。
>>95 できるけど、重くなるから。正直、良い方法とは思えない
97名無しさん@そうだ選挙にいこう:2010/05/31(月) 07:20:11
>>96
B1:B60000じゃないだろ?
1個だと思うなぁ。
98名無しさん@そうだ選挙にいこう:2010/05/31(月) 08:33:46
Windows7 32bit Excel2007を使用。

特定のキーを押せば、特定の文字を打ち込んだり、文字や背景の色を変えることって出来ますか?

例えば、F1を押せば「おはようございます」
F2を押せば「こんにちわ」 F3なら「こんばんわ」
F4を押せば背景が赤く F5なら背景が青く F6なら背景が緑
F7を押せば文字が赤く F8を押せば文字が青く
といった感じにです。
99名無しさん@そうだ選挙にいこう:2010/05/31(月) 08:43:37
>>95
配列で60000まで指定するよりは

=SUMPRODUCT(INT(OFFSET(B1,0,0,COUNTA(B:B),1)*0.9))

とかの方がいいと思うけれど、offsetも重くなるかな。それとこの式の意味が分からないと間違いの元だしね
100名無しさん@そうだ選挙にいこう:2010/05/31(月) 08:46:46
>>98
ファンクションキーはすでに割り当てられているから

http://office.microsoft.com/ja-jp/excel/HP100738481041.aspx

もうちょっと違うキーに割り当てることもできるけど、たぶん操作が難しくなるだけだと思うよ
101複乳:2010/05/31(月) 10:07:41
>>95
それが配列数式の{=SUM(INT(B1:B60000))}だよ。
ちなみにどこでもいいから一箇所に入れるだけでいい
>>96
そうはいうがvba無しで逐一作業列を作らずに合計を出すには配列数式使わずに
どうすればいいの、と思ったら>>99があったか
offsetは揮発性だけど重さ的には似たようなもんじゃないか。
最高でも60000個少々の足し算だ
102名無しさん@そうだ選挙にいこう:2010/05/31(月) 10:53:00
>>101
SUMPRODUCTも実質的には配列数式だよ。
重さもこのケースでは配列数式と全く変わらないし。
SUMPRODUCTがほんのちょびっと軽くなるのは右辺をカンマで区切った場合だけ。

重さ軽さはどうでも無駄を嫌うのであればINDEXを使うべきだよ。
=SUMPRODUCT(INT(B1:INDEX(B:B,COUNTA(B:B))*0.9))
=SUM(INT(B1:INDEX(B:B,COUNTA(B:B))*0.9))の配列数式。
どっちでもいい。
揮発性じゃないがブックを開いた時にも再計算する。
ブックオープン時以外ではもちろんB列を変更した時だけ再計算。
OFFSETはどこのセルいじくっても再計算だから無駄。
無駄の消費に喜びを感じてる人はどうぞ。
103名無しさん@そうだ選挙にいこう:2010/05/31(月) 11:11:01
>>102の方法がスマートだね。ただ、原点に帰ると、作業列を使った方がいいよ
無理に配列を使わなくても、作業列があった方が後からわかりやすいし
104名無しさん@そうだ選挙にいこう:2010/05/31(月) 11:28:21
>>103
102だが原点に帰ればまったくそのとおり。
A列の1個のセルを変更した場合、作業列なら0.9倍するのはその右の1個の計算式だけ。
配列数式なら全データを0.9倍する。
合計するコストは同じだが、0.9倍するコストは作業列が少ない。
105名無しさん@そうだ選挙にいこう:2010/05/31(月) 20:09:36
質問です。

excelで普通の棒グラフを作成する場合、通常ですと下記のようになりますが
(均等に棒線が描かれる)

200  ■   ■   ■   ■
150  ■   ■   ■   ■
100  ■   ■   ■   ■
     A   B   C   D

このようにしたい場合はどうすれば良いですか?
(ABは同じ比較対象で、CDは同じ比較対象。だがAとCは離したい)

200  ■ ■     ■ ■
150  ■ ■     ■ ■
100  ■ ■     ■ ■
     A B     C D
106名無しさん@そうだ選挙にいこう:2010/05/31(月) 20:41:18
>105
A,B,E,C,D の5個のデータを用意してEには値0を設定する方法じゃダメですか?
107名無しさん@そうだ選挙にいこう:2010/05/31(月) 20:42:54
普通にBとCを離せばいいんじゃね?
108名無しさん@そうだ選挙にいこう:2010/05/31(月) 20:43:30
データ0にして標題空白
109名無しさん@そうだ選挙にいこう:2010/05/31(月) 21:04:25
>>106
ありがとうございます。それでやってみます。
AとB、CとDのグラフをぴったり横にくっつけるのは可能でしょうか?
110106:2010/05/31(月) 21:16:41
>109
グラフの棒の間隔はグラフ描画サイズと項目数に依存ので、いろいろ調整してみてください

場合によっては、値0の項目が1個じゃなくて複数必要になるかも
11158:2010/05/31(月) 22:09:35
>>60 61 62 63様へ

レスどうもありがとうございました。おかげ様で解決致しました。
本当に感謝しております。
112名無しさん@そうだ選挙にいこう:2010/05/31(月) 22:17:24
2007のファイルを2003で変換して開く時に、なぜか読み取り専用で開かれ、ファイル名が「XL000000001」になってしまった。
拡張子はxlsx、xlsmの2つを試したけど、とにかく数字が増えていく。
今までこんな現象を見たことがないんだけど、どういうことでしょう???
113名無しさん@そうだ選挙にいこう:2010/06/01(火) 06:44:47
>>111
データ系列を見直した方がいいかも。
114名無しさん@そうだ選挙にいこう:2010/06/01(火) 18:43:38
>>91
ちょっと古いけど、
ExelVBAハンドブック
西沢夢路
オススメ!
115名無しさん@そうだ選挙にいこう:2010/06/01(火) 23:24:17
このような表があって、特定の行のG〜L列の値をA列の最下行へコピペし、
D〜Fまでの数値だけ符号を反転させるマクロの書き方についてです。

     A   B   C   D    E    F    G     H    I    J   K    L   M    N
10  AAA  ああ  1  0.11  0.22  0.33  0.44   EEE  うう   2  0.44  0.55  0.66  0.77
11  BBB  いい  1  0.12  0.23  0.34  0.45   FFF  ええ  1  0.45  0.56  0.67  0.78
12  
13

例えば、行 = 10 のときは、こんな感じに。

     A   B   C   D    E    F    G     H    I    J   K    L   M    N
10  AAA  ああ  1  0.11  0.22  0.33  0.44   EEE  うう   2  0.44  0.55  0.66  0.77
11  BBB  いい  1  0.12  0.23  0.34  0.45   FFF  ええ  1  0.45  0.56  0.67  0.78
12  EEE  うう  2 -0.44  -0.55  -0.66  -0.77
13

で、書いたのがこれです。もうちょっとスマートな書き方があれば教えてくだちい。
Range(Cells(行, 8), Cells(行, 10)).Copy Destination:=Range("A65536").End(xlUp).Offset(1, 0)
Range("A65536").End(xlUp).Offset(0, 3).Value = Cells(行, 11).Value * -1
Range("A65536").End(xlUp).Offset(0, 4).Value = Cells(行, 12).Value * -1
Range("A65536").End(xlUp).Offset(0, 5).Value = Cells(行, 13).Value * -1
Range("A65536").End(xlUp).Offset(0, 6).Value = Cells(行, 14).Value * -1
116名無しさん@そうだ選挙にいこう:2010/06/02(水) 01:21:24
エクセル2003で行を削減すると最終行に罫線が勝手にコピーされてしまい、行の挿入ができなくなってしまいます。
これを防止するにはどうすればいいでしょうか?
117複乳:2010/06/02(水) 08:00:01
>>115
その行程度ならそれでもいいと思うけど
Sub fukunyu()
Dim 行, saigo, i
行 = 10
'最終行は変数に入れる
saigo = Range("A65536").End(xlUp).Row + 1
'最初に全部コピーしてから
Range(Cells(saigo, 1), Cells(saigo, 6)).Value = Range(Cells(行, 8), Cells(行, 14)).Value
'マイナスに
For i = 4 To 7
Cells(saigo, i) = -Cells(saigo, i)
Next
End Sub
>>116
質問の意味がよく分からない
削減じゃなくて削除と思うけど罫線がコピーされることはない
最初から入ってるんじゃないの
118名無しさん@そうだ選挙にいこう:2010/06/02(水) 16:00:47
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 EXCEL 特定文字 乱数
1 3 4 5の4つの数字を使い4桁の数字を作りたいと思っています

1111
1113
1114
1115
1131
1133
1134
1135
と言う風にする関数等は用意されていない物でしょうか?
119名無しさん@そうだ選挙にいこう:2010/06/02(水) 16:18:11
>118
for〜nextの4重ループと、ループ変数の値(1,2,3,4)を(1,3,4,5)に置き換える処理で簡単にできますよ。
ちょっと待ってて
120名無しさん@そうだ選挙にいこう:2010/06/02(水) 16:19:30
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可、できるだけ無い方が助かります
【5 検索キーワード     】 複数条件、SUMIF、IF、SUM

ttp://www.dotup.org/uploda/www.dotup.org932535.bmp

上記の画像のような状態で、
受験者の回答と正解を比較して、真なら配点を追加、偽なら0を追加という風な作業を問題数の数だけ行い、
最終的に合計点を求めて出力したいのですが、何かいい方法はないでしょうか?
色々調べてみたのですがExcelに慣れておらずまったくできませんでした。
よければアドバイスください。
121名無しさん@そうだ選挙にいこう:2010/06/02(水) 16:22:20
>>119
そうか!置き換えればいいのか
2を5にすればいいんですな
122119:2010/06/02(水) 16:42:29
作ってみた
Option Explicit
Dim h As Integer, i As Integer, j As Integer, k As Integer
Dim suretsu As Variant, tate As Integer
Sub ex118()
 suretsu = Array(1, 3, 4, 5)
 tate = 1
 For h = 0 To 3
  For i = 0 To 3
   For j = 0 To 3
    For k = 0 To 3
     Cells(tate, 1).Value = _
     1000 * suretsu(h) + 100 * suretsu(i) + 10 * suretsu(j) + suretsu(k)
     tate = tate + 1
    Next k
   Next j
  Next i
 Next h
 MsgBox ((tate - 1) & "件のデータを書き込みました")
End Sub
123名無しさん@そうだ選挙にいこう:2010/06/02(水) 17:08:32
>120
途中まで作ってみた。要領がわかったら続きはご自分でどうぞ。
もっとスマートな方法もあると思うので、詳しい方よろしく。配列数式がどうのこうのという方法です。

受験番号1の人の問題番号1〜3についての得点の計算方法です。
=(C8=$C$3)*$C$4+(D8=$D$3)*$D$4+(E8=$E$3)*$E$4

(C8=$C$3)の部分は論理式と言って、真か偽ですが、掛け算の片方のときは1か0になります。
回答が正解と一致していれば$C$4の値を×1したもの($C$4の値そのまま)になります。
不正解なら0になります。これを10個つなげればいいわけです。

問題番号7、8の部分も完全一致したときだけ得点になります。片方だけ一致で5点とかの条件が付く
場合には計算式だけでは無理かと思います。
124名無しさん@そうだ選挙にいこう:2010/06/02(水) 19:31:33
test
125名無しさん@そうだ選挙にいこう:2010/06/02(水) 19:36:20
お、アク禁解除されてた。
testカキコ失礼しました。

>118
8桁の2進数に直して、2桁づつ
00→1 01→3 10→4 11→5
に置き換える というのは?
126123:2010/06/02(水) 20:05:21
>120
もっとスマートな方法です。
=SUMPRODUCT((C8:L8=$C$3:$L$3)*$C$4:$L$4)

C8:L8 とか $C$3:$L$3 などのセル範囲を使って論理式や計算を表すのが配列数式です。
127115:2010/06/02(水) 23:22:36
>>117
簡略して書いたので、実際にはもっと長いです。
-Cells(saigo, i)って略せるんですね(@_@
128名無しさん@そうだ選挙にいこう:2010/06/03(木) 01:07:50
セルにコメントを書くマクロですが、【あ】のところが
Cells(i, 4).AddComment Text:="" & OLD_QTYだと動くのに、
Cells(i, 4).AddComment Text:=OLD_QTYだと止まってしまいます。
これは何故でしょうか?

OLD_QTY = Cells(i, 4).Value '数字
If Not Cells(i, 4).Comment Is Nothing Then
  Cells(i, 4).ClearComments
End If
【あ】
129名無しさん@そうだ選挙にいこう:2010/06/03(木) 01:20:48
お願いいたします。

エクセルで受注表を作成しているのですが、途中データコピーなどで
いろいろなブックからシートコピーをしました。
で、作成し終わってコピーしてきたシートを削除したのですが
その後、立ち上げるたびに「リンク更新 はいorいいえ」を聞いてきます。
現在リンクを必要としない状態にしましたのでメッセージが出ないようにしたいのですが
どのようにしたらいいのでしょうか?
編集→リンクの設定でみると確かにリンク先が記録されているのですが、
間違いなく現在利用していません。
ツール→オプションにてメッセージが出ないようにしてみましたが、開くかキャンセルするか
のウインドーがいちいち立ち上がるので、このやり方では無かったです。

どなたかよろしくお願いいたします。
130名無しさん@そうだ選挙にいこう:2010/06/03(木) 02:02:50
Application.AskToUpdateLinks = False
131名無しさん@そうだ選挙にいこう:2010/06/03(木) 06:31:52
>>129
いらないなら、リンクを削除すれば?値だけが残るよ
132名無しさん@そうだ選挙にいこう:2010/06/03(木) 08:02:01
>>128
鳴らない
マクロ書くときはsub〜endsubで書いて

>>129
リンクされている
[ を検索、無ければ新しいシートに必要なところだけコピー
133名無しさん@そうだ選挙にいこう:2010/06/03(木) 08:57:46
ありがとうございます。

全シート数式表示にしてチェックしたのですが、リンクされている
セルが見つからず、削除できません。

どうやって検索するのですか?

>>130
私への回答ですか?どうするのかよく分かりません。
すいません

134複乳:2010/06/03(木) 09:18:38
>>133
http://www.eurus.dti.ne.jp/~yoneyama/Excel/ex-q-a/q_settei.html#link_kensaku
検索で見つからないなら>>132の通り新規シートに必要なところだけコピー
135名無しさん@そうだ選挙にいこう:2010/06/03(木) 09:34:12
>>134
早い回答ありがとうございます
会社に着いたらやってみます
136名無しさん@そうだ選挙にいこう:2010/06/03(木) 13:21:45
A列に動物の名前がランダムで入っているとして、
キリンは2個あるから背景を青、カバとクジャクは3個あるから背景を緑みたいに
列に存在する個数ごとに色分けすることは出来ますか?
137名無しさん@そうだ選挙にいこう:2010/06/03(木) 13:48:45
>136
A列選択、条件付き書式で
数式が  =COUNTIF(A:A,A1)=2
で書式→パターンを青に
条件を追加して =3 の時、緑に設定
138名無しさん@そうだ選挙にいこう:2010/06/03(木) 14:24:46
>118
そういう関数はないから下のFunctionを標準モジュールに
置いてから、=dec2quat(int(rand()*256)) とか記述汁。

Function dec2quat(arg As Integer) As String
  Dim n(4)
  If arg < 0 Or arg > 255 Then
    dec2quat = "Error"
  Else
    For i = 0 To 3
      n(i) = arg Mod 4
      If n(i) > 0 Then n(i) = n(i) + 2 Else n(i) = 1
      dec2quat = n(i) & dec2quat
      arg = arg \ 4
    Next
  End If
End Function
139136:2010/06/03(木) 16:04:51
>>137
出来ました! どうもありがとう。
140名無しさん@そうだ選挙にいこう:2010/06/03(木) 20:20:50
Sub 鳴らないと答えた132()
i = 3
OLD_QTY = Cells(i, 4).Value '数字
Cells(i, 4).Value = Range("A1").Value
If Not Cells(i, 4).Comment Is Nothing Then
Cells(i, 4).ClearComments
End If
Cells(i, 4).AddComment Text:=OLD_QTY
Cells(i, 4).AddComment Text:="" & OLD_QTY
End Sub
141名無しさん@そうだ選挙にいこう:2010/06/03(木) 21:23:33
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 データ 抽出

以下のように、メンバー全員分の最高得点だけを抽出したいです

  A    B
1 伊藤  60
2 田村  78
3 東山  90
4 田村  82
5 伊藤  88
6 東山  80

  A    B
1 伊藤  88
2 田村  82
3 東山  90


超初心者ですみませんが、よろしくお願いします。

142名無しさん@そうだ選挙にいこう:2010/06/03(木) 22:00:55
抽出は、関数でできなくもないけれど、マクロより難しくなる。
メンバー抽出だけはマクロの記録とかでやってみれば?
143名無しさん@そうだ選挙にいこう:2010/06/03(木) 22:46:31
>>141
人数が多い場合は関数でやってはいけない。
特に配列数式はヴァカ。
考え方としては名前を最優先するキー、次に優先するキーに点数を降順にソートして
名前が上と違うものを抽出。
ピボットテーブルで集計方法を最大値にすればこの考え方でやっていることになる。
144名無しさん@そうだ選挙にいこう:2010/06/03(木) 22:49:26
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003 
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】
【5 検索キーワード     】

田中の数がひとつ増えたら、佐藤の数がひとつ減る

田中の数がひとつ減ったら、佐藤の数がひとつ増える

ようするに
田中,と佐藤の合計がいつも同じになるようにしたいんですけど
できますか?


   田中   佐藤

   12   10

田中マイナス3 ↓

   田中   佐藤

   9    13

   
145名無しさん@そうだ選挙にいこう:2010/06/03(木) 23:27:17
>>144
入力するセルと表示するセルが同じセルならVBAじゃなければ無理。
VBAが使えなければ諦めることだな。
146144:2010/06/03(木) 23:28:50
>>145
ありがと
VBAというものを勉強してきます。
147Cherry ◆d/pQlCc6hA :2010/06/03(木) 23:59:42
なんか会社で使ってるExcelファイル、
ワークシートのタブがみえなくなったんですけど・・・
どうやったらなおりますか??
148名無しさん@そうだ選挙にいこう:2010/06/04(金) 01:20:37
>>134
会社でファイルを開くとエラーメッセージが出ないのは会社PCには、そのリンク先ブックが
あるからで、USBメモリに保存して家PCで開こうとするとリンク更新はい、いいえが出るのは
リンク先ブックがないから、ということでOKですか?
で、家PCがExcel2000なので、シート毎しか検索できず、教えていただいたリンク先検索を
35シート全てでやってみましたが「見つかりませんでした。

こうなると、どれか分からないので全シートコピーして新しいシートにしなければメッセージが
出続けるのでしょうか?
できれば、行列幅も変わってしまうのでなんとか避けたいのですが・・・
行列幅も丸々そのままコピーできる方法はありますか?また、そんな丸々コピーでは
またリンクも引き継がれませんか?
149名無しさん@そうだ選挙にいこう:2010/06/04(金) 01:23:42
ちなみに、会社PCで「編集」→「リンクの設定」をしてみるとリンク先が無いという感じで、
「リンクの設定」自体が色が薄くクリックできません
が、しかし家PCだとリンク先ブックが5つほど表示されます。
150名無しさん@そうだ選挙にいこう:2010/06/04(金) 03:40:24
>>147
ツール⇒オプション⇒表示シートで、
シート見出しにチェックを入れる
151Cherry ◆d/pQlCc6hA :2010/06/04(金) 06:06:57
>>150さん
なるほど、ありがとうございます。
でもわざわざこの操作でチェック外すようなことしないんだけど、
他の操作でも非表示になることがあるのかしらん。
152名無しさん@そうだ選挙にいこう:2010/06/04(金) 06:15:15
>>151
オプションはうつることがあるから。
他の非表示のを開いてうつったのかもしれない。

あと、有名どころでは、自動計算のオプションは「ある操作」でチェックが外れたりするね
153複乳:2010/06/04(金) 09:19:29
>>149
>>130はマクロ。VBAでぐぐれといいたいがぐぐった↓
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1312063863

後はリンクが変に残っているのか、オブジェクトにリンクが設定されているかかなぁ
シートのコピーはシートタブを右クリックして「移動またはコピー」を選べばシート丸ごとコピーできる
1シートずつ別ブックにコピー、保存、開くでリンクの有無を確認
もしあればシートごとコピーじゃなく数式をコピーする
そうやって35回繰り返し、ブックの名前を変えればリンクの無いブックの出来上がり
154名無しさん@そうだ選挙にいこう:2010/06/04(金) 09:33:41
>>153
すごくわかりやすくコピー&チェック教えていただき助かります
これならできそうです
155名無しさん@そうだ選挙にいこう:2010/06/04(金) 22:51:58
Excelで逆ポーランドって使えるんですか
156名無しさん@そうだ選挙にいこう:2010/06/05(土) 00:00:56
>152
>自動計算のオプションは「ある操作」でチェックが外れたりする
もったいぶらなくても「複数シート選択:作業グループ」のことでしょ?
157名無しさん@そうだ選挙にいこう:2010/06/05(土) 00:07:37
>>132
Sub test()
i = 3
OLD_QTY = Cells(i, 4).Value '数字
Cells(i, 4).Value = Range("A1").Value
If Not Cells(i, 4).Comment Is Nothing Then
Cells(i, 4).ClearComments
End If
Cells(i, 4).AddComment Text:=OLD_QTY
'Cells(i, 4).AddComment Text:="" & OLD_QTY
End Sub

実行時エラー1004って出るよ。
お前も試してみたらどうだ?
158複乳:2010/06/05(土) 01:47:47
>>157
Sub test()
Dim OLD_QTY As String
i = 3
と文字列として定義すればエラーで無いね
159名無しさん@そうだ選挙にいこう:2010/06/05(土) 10:12:11
 
 D_Q
160名無しさん@そうだ選挙にいこう:2010/06/05(土) 15:49:07
>>158
OLD_QTY って変数名から推測すると、
Dim OLD_QTY As Long(またはSingle)じゃね?
Cells(i, 4).AddComment Text:=CStr(OLD_QTY)
161名無しさん@そうだ選挙にいこう:2010/06/05(土) 21:14:09
検索でコピペが使えないのが不便。だれかコピペが使えるようにするアドオン作って。
162名無しさん@そうだ選挙にいこう:2010/06/05(土) 21:30:21
>>161
?できるよ?
163名無しさん@そうだ選挙にいこう:2010/06/05(土) 21:58:50
1
10
3
33
5
a
e





↑を並べ替えると↓になります。

1
3
5
10
33

a
e




"■"は2バイト文字なのに、なんで"a"より上になるの?
"ゑ"はひらがななのに、なんで"乳"より下になるの?
164名無しさん@そうだ選挙にいこう:2010/06/05(土) 22:26:55
乳が上に来てるのはふりがなを使ってるからだな
165名無しさん@そうだ選挙にいこう:2010/06/05(土) 23:02:17
はぁ?
166名無しさん@そうだ選挙にいこう:2010/06/06(日) 00:12:52
(;´Д`)ハァハァ
167名無しさん@そうだ選挙にいこう:2010/06/06(日) 05:53:09
ふぅ・・・
168名無しさん@そうだ選挙にいこう:2010/06/06(日) 14:21:53
OS  Windows XP Home Edition SP2
Excel 2007
VBAは使えません

ttp://www.age2.tv/rd05/src/up6580.jpg

これはFOMのテキストのものなんですけど、
この中から一人の会員番号を基に利用項目と利用金額を抽出し、
別のシートへ利用明細を作成したい場合、どの関数を使えばいいのでしょうか?
169名無しさん@そうだ選挙にいこう:2010/06/06(日) 14:31:23
>>168
関数はない。まあ、馬鹿みたいにマニアっぽくすれば出来ないことはないけど。
抽出は関数の不得意技。

vba覚えた方が早いくらい。フィルターで抽出してコピペをしてそれをマクロの記録にとっておくとか。
170168:2010/06/06(日) 14:42:29
やっぱりフィルターしてコピペしかないですか?
今、IFの周辺の関数を習いはじめたところで、
条件にあった項目を抽出して一度に表示できたら便利だろうな
って思ったのですが・・・
171名無しさん@そうだ選挙にいこう:2010/06/06(日) 15:31:02
>>170
この手のはAccess使っちまうからようわからんが
ピボットが得意そうな分野じゃね?
172名無しさん@そうだ選挙にいこう:2010/06/06(日) 15:40:42
【1 OSの種類         .】 WindowsXP-Pro
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい(今回は使わない)
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel2000 横軸 縦軸

セルの内容を横軸縦軸に配分する方法が分かりません。

目標はBの列をX軸に、Dの列をY軸にすることで、D自体は D=A*B+C ですが、
下記のように選択して
http://uproda11.2ch-library.com/245761y9Z/11245761.png
グラフ(折れ線)ボタンを押すと以下のようになります。
http://uproda11.2ch-library.com/24576296F/11245762.png

本当はピンの重さがX軸に組み込まれて赤色の線のみにしたいのですが
出来ません。
どうすべきでしょうか?
173名無しさん@そうだ選挙にいこう:2010/06/06(日) 15:41:14
例えばA1に抽出条件(会員番号)があったとして該当の日付を上から抽出しようとすると

=IF(COUNTIF(C:C,$A$1)>=ROW(A1),INDEX(B:B,SMALL(IF(($C$3:$C$100)=$A$1,ROW($C$3:$C$100),10^10),ROW(A1)),0),"")
CTRL+SHIFT+ENTER の同時押しで配列数式に
下にコピー。

もうちょっとスマートにはできると思うし、作業列を設ければもう少し楽にはできるとは思うけど
174名無しさん@そうだ選挙にいこう:2010/06/06(日) 18:27:32
>>172
青い方の線を選択してクリアしたらどう?
175163:2010/06/06(日) 20:26:08
163ですが、マジレスきぼんです!
176複乳:2010/06/06(日) 20:52:28
>>175
エクセルの並び替えは数字アルファベット日本語(フリガナ)順
記号は数字とアルファベットの間になるんじゃないの。試せば
177名無しさん@そうだ選挙にいこう:2010/06/06(日) 21:05:12
>>175
マジレスですが、デフォではExcelはふりがな優先で並べかえられます。
だから、どんなふりがなが入っているかによって、並べ替えの順番は変わる。

ゑ 乳 に関しては当方の環境では並び替えても ゑ 乳 の順番で並んでいます(ふりがなが何も入っていない)

■に関しては不思議だね。まあ、並び替えについては「ー」なんかは変な特性もあるからね・・・
178163:2010/06/06(日) 21:50:03
>>176-177
ふりがなって、B列には何も入ってないんですけど・・・
IMEの単語/用例登録もしていません。
179163:2010/06/06(日) 21:53:50
ついでに質問

数字、アルファベット、漢字が混在した列を並び替えたとき昇順で一番下になる文字は何?
180名無しさん@そうだ選挙にいこう:2010/06/06(日) 22:04:08
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel07
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】vlookup 部分一致

表1と表2があるとします。
項目C(項目AとBのセル結合)を検索キーにし、
表2から「完全に一致しているもの」「部分的に一致しているもの」を項目Dに表示させるとします。

完全一致している場合は"○"で表示、部分的に一致している場合は"110B"というように検索キーと共通しているところがあれば表示させます。
完全一致の場合はvlookupとif関数でやれそうなのですが、 部分一致の場合、いいアイデアが浮かんできません…
稚拙な説明でわかりにくいと思いますが、よろしくお願いいたします。

(表1:項目Dは最終的に関数を使い、下記のように表示させたい)
項目A 項目B 項目C 項目D
110     A 110A 110B
111    A 111A ○
112     A 112A 112B
113     A 113A 113D
114     A 114A #N/A

(表2)
111A
110B
116A
112B
113D
181名無しさん@そうだ選挙にいこう:2010/06/06(日) 22:13:40
>>180
表1がA1〜あるとして、表2がF列にあるとして、

=IF(COUNTIF(F:F,C4),"○",IF(MATCH(A4&"?",F:F,0),INDEX(F:F,MATCH(A4&"?",F:F,0),0)))

部分一致っていうのは、項目Aの部分が入っているという認識ですが、あってる?
182名無しさん@そうだ選挙にいこう:2010/06/06(日) 22:15:42
>>181

OKです。
183名無しさん@そうだ選挙にいこう:2010/06/06(日) 22:17:58
【1 OSの種類         .】 Windows vista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 使えません
【4 VBAでの回答の可否】 できれば避けていただきたいですが、VBAでしかできないということでしたらお願いします。
【5 検索キーワード     】 フィルタオプション 文字列 抽出 検索 COUNTIF OR FIND SEARCH等

以下のような表が約50000行あり、そこから複数の特定の文字列を含むデータを抽出し、別シートにまとめなければなりません。

A              B    C列以降略
04ps-v01シーケンサ  3040
05ps-v01ボックス*    5230
05pr-v01シーケンサ   5120
05ps-v02シーケンサ  6840
05ps-v02シーケンサ  5990
05ps-r02ボックス     6300
05ps-v03シーケンサ  10290
21ps-v02ボックス    760
21vv-r11ルート     850
21vv-r12ルート     1050
★21vs-r11ルート**  340

例えばA列に対し、
「"v02"または"r11"を含む」…条件1
かつ「"ps"または"vv"を含む」…条件2
かつ「"05"または"21"を含む」…条件3
かつ「"21"と"ps"と"ボックス"を同時に含むものを除く」…条件4
という条件で検索をかけなければいけない状況です。
(実際は、一つの条件に含まれる項目数は10個前後で、「AまたはBまたはC…またはJを含む」といった具合に長くなります)
条件1が検索できればあとは条件4以外繰り返しでなんとかなると思うのですが、最初からつまづいてしまいました。
(続きます)
184名無しさん@そうだ選挙にいこう:2010/06/06(日) 22:18:45
通常のフィルタでは条件を3項目以上に増やせないからフィルタオプションの設定をせよということなので
空欄のセルの下に検索条件の式を書き、2セル合わせて検索条件範囲に指定しました。
先ほどまで条件式を思考錯誤しながら編集していたところです。

今のところ試したのは以下のような式です。
=OR(A2="*v02*",A2="*r11*")
=OR(A2=*"v02"*,A2=*"r11"*)
=OR(FIND("v02",商品名),FIND("r11",商品名))
=OR(COUNTIF(商品名,"v02")>0,COUNTIF(商品名,"r11")>0)

文字列が認識されなかったり、ANDで検索したのと同じ結果が出てしまったり、
結果が1行も出てこなかったり、といった具合で全くうまくいきませんでした。
もしよろしかったらどなたかご教示のほどよろしくお願い致します。
長文失礼致しました。
185複乳:2010/06/06(日) 23:49:15
>>178 漢字を入力した時点でふりがな登録はされている。コピーしたらない場合もある
>>179 全部の漢字入力して並び替えればわかるよ
186複乳:2010/06/06(日) 23:53:10
>>183
自分でもどうかとおもうようなものだが・・一応機能するので
A1に上の表の04ps-v01シーケンサ が入ってるとする
以下C1-F1はそれぞれ条件1-4を表す。
C1=IF(OR(NOT(ISERROR(FIND("v02",$A1))),NOT(ISERROR(FIND("v02",$A1)))),1,"")
D1=IF(OR(NOT(ISERROR(FIND("ps",$A1))),NOT(ISERROR(FIND("vv",$A1)))),1,"")
E1=IF(OR(NOT(ISERROR(FIND("05",$A1))),NOT(ISERROR(FIND("21",$A1)))),1,"")
F1=IF(AND(NOT(ISERROR(FIND("21",$A1))),NOT(ISERROR(FIND("ps",$A1))),NOT(ISERROR(FIND("ボックス",$A1)))),-100000,"")
J1=IF(SUM(C1:I1)>0,$A1,"")
それぞれ下にオートフィルすれば条件に当てはまるものだけが出てくると思う

一応説明する。C1の NOT(ISERROR(FIND("v02",$A1))) これ
FIND関数は見つかれば文字列、見つからなければエラー値を返す。FALSEじゃないことに要注意な。エラー値はTRUEでもFALSEでも無い
ISERROR関数はエラーかどうかの判定。エラーならTRUEを返す。つまりTRUEなら"v02"が見つかっていない
NOT関数はTRUEとFALSEを逆転させる。つまりTRUEなら"v02"が見つかっている(逆のままでもいいんだが俺がわかりにくいというだけで使っている)
つまりv02があればTRUEが返り、無いならFALSE。後はORでくくってIF判定に持ち込んでいる
で、IFで判定してTRUEなら1を返し、条件4のように除外するバア愛は-100000だ(本当は全体に0をかけるべきなんだがめんどくさかった)
まーテキトーに変えれば使えるだろう

今気づいたけど条件1-3ってまとめれるな。まとめれるとこはまとめたほうがいいぞ・・
「"v02"または"r11"または"ps"または"vv"または"05"または"21"を含む」…条件1
だな。まぁ、ええけど
187名無しさん@そうだ選挙にいこう:2010/06/07(月) 00:00:37
はじめまして。下記の方法が可能かどうか教えてください。

例えばフォルダ内にエクセルシートを作成すると、おなじみのエクセルのアイコンが表示されますよね。
このアイコンをそれぞれ特定の画像表示に変更することは可能でしょうか?
といいますのも、読書をし終わった後に要点をエクセルでまとめており、
その書籍の表紙を個々に画像で表示できれば視覚的に探しやすくなると思いました。
PCにはあまり詳しくないため、とんでもない事を言ってるのかもしれませんが、
この方法が可能かどうか教えていただきたく思います。

よろしくお願いします。
188名無しさん@そうだ選挙にいこう:2010/06/07(月) 00:03:47
すみません。187の質問ですがテンプレート忘れました。

【1 OSの種類         .】 Windows Xp sp3
【2 Excelのバージョン   】 Excel 07
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 がんばります
【5 検索キーワード     】
189複乳:2010/06/07(月) 00:16:34
>>187-188
個別には無理だったと思う
ショートカット、フォルダなら可能なのでそれをうまく使うしか無いかな
やるならKH IconMagic98ってソフトを使えばいい
アイコン 変更 でぐぐれば情報は色々見つかるわ
190172:2010/06/07(月) 00:22:24
>>174
すいません。X軸は0から始めたいので不可です。
これは人に教えるので、出来るだけ簡単な方法を探しています。
191名無しさん@そうだ選挙にいこう:2010/06/07(月) 00:45:54
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 セル内 数 足す

A1セルに書かれた「abc[5], defg[3], hi[2], jklmn[10]」
のようなカンマで区切られた複数種類の文字列の中の
[ ]で囲われた数字の和を、A2セルに「20」というように
書き出す方法はありますか?
ありましたらどうかお教えください。よろしくお願いします。
192名無しさん@そうだ選挙にいこう:2010/06/07(月) 05:56:37
>>191
Function mysep(varDat As Variant) As Long
Dim varBuf As Variant
Dim i As Long
Dim ans As Long

varBuf = Split(varDat, ",", , vbBinaryCompare)

For i = 0 To UBound(varBuf)
ans = ans + CLng(Mid(Left(varBuf(i), Len(varBuf(i)) - 1), InStr(1, varBuf(i), "[", vbBinaryCompare) + 1))
Next i

mysep = ans
End Function

こんな感じでユーザー関数を作ったほうがスマートじゃない?
193名無しさん@そうだ選挙にいこう:2010/06/07(月) 09:18:15
>191
A1をA2にコピー
]*[ を + に置換
] を "" に置換
*[ を = に置換
194名無しさん@そうだ選挙にいこう:2010/06/07(月) 09:22:30
>172,190
最初のデータ範囲がどちらも数値なので、Excelは2系列(線が2本)のグラフを作ろうとしたようですね。
X軸にしたい方のデータを数値から文字にすることで希望のグラフができます。

E1セルに =B1&"" 、F1セルに =D1 を入力して、11行目までフィルコピーします。
E列の &"" で文字列になります。
後は E1:F11 を選択してグラフ作成するだけです。

データをいじることができない場合はちょっとややこしいですが、次に説明する方法で可能です。
195194:2010/06/07(月) 09:25:26
>172,190
データはいじらない方法です。(ただし、当方Excel2003なので、このとおりにできないかも)

1 D1:D11を選択し、グラフアイコンをクリック、折れ線グラフを選択
2 [次へ]をクリック
  → グラフウィザードには、X軸は1〜10の(仮の一連番号)で線が1本のグラフが表示される
3 「系列」タブをクリックする
4 下の方の「項目軸ラベルに使用(T):」の欄の右端部分をクリック
5 B2:B11を選択して、欄の右端部分をクリック
  →「項目軸ラベルに使用(T):」の欄の内容が =Sheet1!$B$2:$B$11 になる
6 [次へ]をクリック
  → グラフウィザードには、X軸は0〜9で線が1本のグラフが表示される
7 「タイトルとラベル」のタブをクリック
8 「X/項目軸(C):」の欄(現在空欄)に ビンの重さ を入力する
9 [次へ]をクリック
10 グラフの場所を希望に応じて設定のうえ[完了(F)]をクリック → グラフ描画
196複乳:2010/06/07(月) 09:37:01
そこまでするなら
E2=D2-C2
でピンの重さだけの列作ってそれでグラフにしたほうが早くない
197194:2010/06/07(月) 10:07:58
>196
最初、E列に =B1&"" とし、D1:E11の範囲でグラフを作ろうとしたけど、
Excelは左側(D列)をX軸、右側(E列)をグラフデータとみなそうとし、E列が文字列
なもんだから、折れ線が表示できなかったんです。
198183:2010/06/07(月) 10:14:40
>>186 どうもありがとうございます!
ISERROR関数というものがあるのですね。勉強になりました。
原理は理解できたと思うので、応用してうまくやってみます。
見ず知らずの赤の他人なのに、わざわざ丁寧に書いていただいてありがとうございました!
199名無しさん@そうだ選挙にいこう:2010/06/07(月) 10:20:41
【1 OSの種類         .】 WindowsXP home sp3
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel 保存 数値

エクセルで表計算をしていたら、セルに数値を入力しても合計の数値が変わらず、
保存をした時に数値が反映されるという妙な現象が起こっております。
会社のPC全てで同時期に同じ現象が起こってしまい、原因がわからず困っております。
1台を共有ではなく、全てのPCで1ライセンスずつ個別にプリインストールされております。

ある日突然このような現象が起こってしまい、全く原因不明です。

同じような現象が起こった方おりますでしょうか?
解決法をご存じの方がいらっしゃいましたら、是非ご教授頂きたく存じます。
200名無しさん@そうだ選挙にいこう:2010/06/07(月) 10:30:38
>199

>152,156にもちょこっと書いてありますが、複数シートを選択するとなぜか自動再計算が解除されます。
(ただし、Excel2003しか使ってないので2007でも再現するかどうかは不明)

このページをみてください
 http://refuge06.blog54.fc2.com/blog-entry-649.html
 魂の避難所 -パソコン関連トラブル解決メモ-
201199:2010/06/07(月) 11:05:21
>>200

ご教授ありがとうございます。解決し、大変助かりました。
誠にありがとうございました。
202複乳:2010/06/07(月) 12:28:53
>>197
こんな漢字?
ttp://www1.axfc.net/uploader/Img/so/84842.jpg
&""を付けて文字列にしても数値にされてるような感じがする
というわけで&"-"をつけて完全に文字列にし、ピンの重さ列も用意
それでグラフかな
めったにグラフ作らないかrあもっと楽な方法があったりするかも
203163:2010/06/07(月) 19:34:34
>>185
全部の漢字を入力するにはどうすればいいの?
204複乳:2010/06/07(月) 20:02:05
>>203
一つずつ打って行けばイイジャン
205名無しさん@そうだ選挙にいこう:2010/06/07(月) 20:06:08
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 sum エクセル
A1に あ B1に 1 があります
sumだと=sum(a1:b1)でエラーがでないのに=a1+b1だとエラーが出るのはナゼ?
206複乳:2010/06/07(月) 20:10:25
>>205
その検索結果の一つ目に書いてるんだが
207名無しさん@そうだ選挙にいこう:2010/06/07(月) 20:11:18
>>205
sumは文字列を除いて足してくれる関数だから。

というか、これはExcelの仕様です
208名無しさん@そうだ選挙にいこう:2010/06/07(月) 20:24:59
手書きで文字など書き込めますか
書類作成時にどうしてもある記号が必要なんですがペンタブあればできるってことはないですよね・・・
OSの種類ってのはXPですが、今手元に使用するはずのパソコンがないのであとはわかりません
209名無しさん@そうだ選挙にいこう:2010/06/07(月) 20:29:07
>208

Excel以前の問題だ。

周りにPCのこと知ってるヤツはいないか?
PCを少しでも理解しているヤツなら分かると思う。
210複乳:2010/06/07(月) 20:30:06
>>208
「きごう」を変換した中にない?
ないなら外字登録
ttp://office.microsoft.com/ja-jp/excel/HA102032391041.aspx
か、その記号を教えてくれればなんとかできるかも
211163:2010/06/07(月) 20:30:15
>>204
おばちゃん、もっと具体的に教えてよ
212名無しさん@そうだ選挙にいこう:2010/06/07(月) 20:34:22
>>209>>210
すみません。PCそれなりに詳しい人いたんですがわかんなかったんです。
記号変換は調べてみたんですがなかったんです
○の中を半分とか、3/4くらい塗りつぶす感じのなんですが
がんばっていろいろ試してみたのに「ずれてる」「ちゃんとしてくれ」とか相手先に言われてもうどうしていいか
もともとパソコンスキル必要ない仕事だったのに泣きたいです
213複乳:2010/06/07(月) 20:35:36
>>211
漢字は入力できる?出来ないなら出直してきな
まず漢字をA1からA65536に入力、A列で並び替え
A1からA65535を消し、再度入力
そして最後にA列の一番下に残るのが並び替えで最後に来る漢字さ
終わったら私にも教えてね
214複乳:2010/06/07(月) 20:36:40
>>212
何の記号だそれ?存在しないものなら図形で作る方が早いと思うけど
215名無しさん@そうだ選挙にいこう:2010/06/07(月) 20:38:20
>208,212
アクセサリの「ペイント」で自分で絵を描いてGIFか何かで保存して貼り付けるしかないと思います。
描きたい記号に似た文字ををなるべく大きいサイズで表示して画面コピーしてからペイントにて加工する、
とか。
これ以上はスレ違いになるので、「スレたてるまでもない質問に答えるスレ」
http://pc11.2ch.net/test/read.cgi/bsoft/1123764624/l50
へどうぞ。
216名無しさん@そうだ選挙にいこう:2010/06/07(月) 20:39:10
>>211
繰り返し文使って、chrで出力すればいいんじゃないか。
217名無しさん@そうだ選挙にいこう:2010/06/07(月) 20:40:38
>>214
記号というとちょっと違ったかもしれませんね
ご丁寧にどうもです
図形っていうので手書き作成できるんでしょうか
明日ちょっとやってみます
>>215
どうもありがとう
作って貼り付けたこともあるんだけど「ずれてる」と一蹴されましたどうすりゃいいのさ
愚痴ってすみません。本当にありがとうございました
明日またもう一度いろいろ試してみます
218複乳:2010/06/07(月) 20:44:20
>>217
ちょっとまっとけ
219複乳:2010/06/07(月) 20:46:26
>>217
A1に入力してある。これをコピーして使うといい
ttp://www1.axfc.net/uploader/Sc/so/121552.xls
220215:2010/06/07(月) 20:48:43
>217
>作って貼り付けたこともあるんだけど「ずれてる」と一蹴されました
作った図形と、元々のセルの中の文字が「画面上ではきれいに並んでいるけど、
印刷したら重なったり、離れたり」っていうことかな?

エクセルは画面に表示された通りに印刷されることは、99%ありません。
例:画面上はセル内の十数文字が切れることなく表示されているのに、印刷すると
右端が切れたり、改行してしまったり
こういうときは、印刷プレビューで確認するといいです。
221名無しさん@そうだ選挙にいこう:2010/06/07(月) 20:53:21
>>217
ちょっと待って!!!!
それ、特殊記号!!!!! 手描きじゃないよ!!!!!
222名無しさん@そうだ選挙にいこう:2010/06/07(月) 20:55:31
>203
ATOKでもMSIMEでもいいから「文字パレット」を表示させればあとはダブルクリック+[Enter]の繰り返しです。ガンガレ!
223複乳:2010/06/07(月) 20:57:06
>>222
その手があったか!
おまえ、あたまいいな!
224名無しさん@そうだ選挙にいこう:2010/06/07(月) 20:59:15
>>218
ありがとう。本当にありがとう。でも真ん中塗りつぶしじゃないのw
明日もう一度なんとかしてみます
ダメなら逆切れ気味に「これ以上無理ですってば!!」ってメールでも送るw
>>220
ちゃんと印刷して確かめたんだけどダメだって言われた頑張ります
225222:2010/06/07(月) 20:59:25
>223
ありがとう。ところで、>219は何なんですか? 今、自分はExcel使える環境じゃないので教えてください。
226163:2010/06/07(月) 21:15:00
>>213
全部の漢字を入力する方法を教えてよ。
並び替えのやり方そのものは163の質問で結果を出してるんだし、普通の人ならわかるでしょ?
227名無しさん@そうだ選挙にいこう:2010/06/07(月) 21:16:54
>>224
それUnicodeにしかないよ
出すのは文字コードで

IMEならIMEパッドで探して
228163:2010/06/07(月) 21:17:38
>>222
文字パレット?
IMEを見たけどありませんでした・・・
229名無しさん@そうだ選挙にいこう:2010/06/07(月) 21:31:49
>>163
スタート→すべてのプログラム→アクセサリ→システムツール→文字コード表

設定:MS Pゴシックで文字表をカーソル下へみっていってごらん。
お望みのフォントが見つかったらエクセルへコピー&ペーストすればよろし。
230229:2010/06/07(月) 21:34:49
ごめん>>208宛ですた。
231222:2010/06/07(月) 21:37:32
>228
MSIMEだと IMEパッド>文字一覧 になります。
それと、ダブルクリックじゃなくてクリックでいいですが、変換途中の状態になるので
[Enter]で確定+[Enter]でセル移動になります。
(>222はATOKでの話でした)
232複乳:2010/06/07(月) 21:38:03
○の中を半分とか、3/4くらい塗りつぶす感じの記号がよく分からないんだが・・
下半分が黒い記号とか?
>>225
蛇の目の記号
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1336378743
>>226>>213
233複乳:2010/06/07(月) 21:47:31
>>224
ttp://www1.axfc.net/uploader/Sc/so/121573.xls
どれだよわかんねーよ・・
後は外字かオートシェイプだな。なんとなくオートシェイプが無難な気がする。
234名無しさん@そうだ選挙にいこう:2010/06/07(月) 21:53:10
縦横比がちょっと変ですが、20×20のマトリクスを作りました。
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
どんな記号を作りたいの?
235名無しさん@そうだ選挙にいこう:2010/06/07(月) 22:06:04
こういうのじゃね?
Unicodeだから????ってなるかもしれないけど。

http://www.dotup.org/uploda/www.dotup.org948537.txt.html

pw:en
236名無しさん@そうだ選挙にいこう:2010/06/07(月) 22:08:29
そもそも丸の大きさもわかんないし。
Excelのスクショにペイントで丸を書いて、どんなふうにしたいのか示してよ。

ていうか、Excelを使う必要があるの?
別のソフトならもっと簡単にできるかもよ。
237名無しさん@そうだ選挙にいこう:2010/06/07(月) 23:23:23
マクロに書いたコメント文だけを抜き出すにはどうすればいいでしょう?

Sub test()
 Dim A As Long
 'A列の最下行
 A = Range("A65536").End(xlup).Row
 'メッセージを出す
 MsgBox "A=" & A
End Sub

これをSheet2に貼り付けて

 A列の最下行
 メッセージを出す

にする。(コメント前にあるスペースは残し、「'」は消す)
238複乳:2010/06/07(月) 23:40:39
>>237
sheet2のA1:A7にはりつけたとして
B1=IF(LEFT(SUBSTITUTE(A1," ",""),1)="'",SUBSTITUTE(A1,"'",""),"")
下にオートフィル
VBEからも直接触れるらしいが欲知らない
239fon:2010/06/07(月) 23:57:54
windows7です

A1〜A14にルート2の1,41421356…を1マスずつオートフィルを使って入力するのにはどのような数式をA1に入力すればよいのでしょうか?

よろしくお願いします
240複乳:2010/06/08(火) 00:07:53
>>239
=SQRT(2)
の結果でもみながら入力した方が早いと思うが

B1=SQRT(2)*10000000000000
A1=MID($B$1,ROW(),1)
下にオートフィルタ
241fon:2010/06/08(火) 00:15:50

すみませんが、できませんでした。
242名無しさん@そうだ選挙にいこう:2010/06/08(火) 00:27:56
>>241
B1に=SQRT(2)
B1の書式を0.00000000000
A1=1
A2=MID(B$1,ROW()+1,1)
A3からA14までオートフィル
243fon:2010/06/08(火) 00:34:12

どうもでした。。
244名無しさん@そうだ選挙にいこう:2010/06/08(火) 01:14:20
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel IPv6 2進数 16進数 計算

16進数を2進数に変換したいのですが、hex2bin だと、#NUM! が出て計算してくれません…
16ビットな16進数(1〜65535)を2進数に変換してくれる関数とか、他に無いでしょうか?

128ビットまるごとだと、なおうれす
245名無しさん@そうだ選挙にいこう:2010/06/08(火) 02:07:08
>>244
ヘルプは見た?
引数に与えられる16進数の最大値は1FFまで
だから200以上はエラーになる
246名無しさん@そうだ選挙にいこう:2010/06/08(火) 08:04:49
>>245
見てはいなかったですが、確認はしています。
他に無いでしょうか?
247名無しさん@そうだ選挙にいこう:2010/06/08(火) 09:01:07
n進数の考え方なんてそんなに難しくないから
VBA使えるなら自分で作れそうなもんだけどな。
IPv6で検索してる所を見ると他にやりたい事がありそう。
ひとりごとでした。
248名無しさん@そうだ選挙にいこう:2010/06/08(火) 09:01:32
>>244
0〜FFFFまでなら
=HEX2BIN(LEFT(RIGHT("0000"&A1,4),2),8)&HEX2BIN(RIGHT(A1,2),8)

参考にしたページ
http://www.excel.studio-kazu.jp/kw/20031217171407.html
249名無しさん@そうだ選挙にいこう:2010/06/08(火) 09:04:25
128ビットって大きな数過ぎて正確には扱えないよね
250名無しさん@そうだ選挙にいこう:2010/06/08(火) 09:33:12
えっ
251名無しさん@そうだ選挙にいこう:2010/06/08(火) 13:18:38
>>248
なるほど。
素直に16ビットで扱うことは諦めて、8ビットにわけて考えることにします
ありがとうございました m(__)m

あ…そういう前提だから9ビットまでしか対応してないのかもですね



で、IPv6は…正引きや逆引き、プレフィックスその他もろもろ
チェックするアドインでも作ろう…として、最初に躓きましたw
車輪の再発明は好きじゃないので、あれば利用したいなと。
PTRの設定、早速1文字ミスったので…orz
252複乳:2010/06/08(火) 14:33:23
量が少ないならwindows付属の電卓でいいんじゃないの
表示→関数電卓を選べば2/16進数の計算もできるよ
253名無しさん@そうだ選挙にいこう:2010/06/08(火) 16:23:48
16進変換なんて32butまでならVBAですぐ作れるじゃん
自分で作らなくても検索すればすぐ出てくるからコピペでもいいし
254名無しさん@そうだ選挙にいこう:2010/06/08(火) 18:20:25
ひとつのセルに入力された結果を見て

アタリ
ハズレ
空欄(入力待ち)

の3種類の表示を使い分けるにはどうすればいいですか?
255名無しさん@そうだ選挙にいこう:2010/06/08(火) 18:40:56
>254
A1セルの内容によって表示を変える式は2通りあります。
その1 アタリと表示したいA1の内容を式の中に直接書き込む場合
=IF(A1="","",IF(A1="○○○","アタリ","ハズレ")) ○○○の部分を適当に変える
アタリとなる内容が数字の場合は =IF(A1="","",IF(A1=999,"アタリ","ハズレ")) などの
ように、""は付けない

その2 アタリと表示したいA1の内容を別のセル(例:C1セル)に書き込んでおく場合
=IF(A1="","",IF(A1=C1,"アタリ","ハズレ")) C1セルにアタリとなる内容を入力しておく
C1セルに入力した内容が見えないように文字色を白にしておくといいです。
256名無しさん@そうだ選挙にいこう:2010/06/08(火) 20:33:50
>>238
ありがとうございますた。
257名無しさん@そうだ選挙にいこう:2010/06/08(火) 20:44:46
【1 OSの種類         .】 WindowsXPで製作(Vistaも使用)
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可能
【5 検索キーワード     】 修復
助けてください。
VBAでマクロを作っていたのですが、製作途中である日突然ファイルが開けなくなりました。
ファイルを開くと砂時計が続き、VBAも開けません。強制終了しか方法がありません。
それが原因かわかりませんが、前日の終了間際に同じ名前のプロシージャーが二つあり、エラー表示が
出ていることを確認しています。修復して開こうと試みましたが、”ファイルへのダメージが深刻であり”と表示され
修復できません。なんとか元のファイルを直すことは出来ないでしょうか・・
258名無しさん@そうだ選挙にいこう:2010/06/08(火) 21:24:25
昨日記号が作れないと助けを求めたものです
みなさんご親切にどうもありがとうございました。
>>233
の左から三つ目です。これがもうちょっと黒い部分が多かったり少なかったりの記号なんですが・・
図形のフリーハンドっていうのがあったので枠囲って塗りつぶしでなんとかしました
多分これでどうにかなってると思・・・いたいw

あとついでに質問させてください
うまく説明できないのですが、画面いっぱいにカーソル移動させた時、画面が動かないんです
たとえば・・20列目までは画面に映ってる時に、↓キーで21列目に移動させても画面がすすまないんです。
25列目くらいに移動して初めて21列目が見れるよう(画面移動して)になる
図形をいじってたらいきなりこうなって打ちにくくて困ってます。ちなみに2007です
259名無しさん@そうだ選挙にいこう:2010/06/08(火) 21:37:53
>>258
スクロールロックキー を押してしまったんじゃないかい?

もう一度Scroll Lockを押せばOK
260複乳:2010/06/08(火) 21:51:39
>>258
そんな文字はなかったような
下は>>259じゃ無ければウィンドウ枠の固定かも
>>257
エクセル ファイル 壊れた
でぐぐる。やり方は色々ある
OOo使うのが一番復旧しやすい気がする
バイナリエディッタでも見れる可能性はある
まぁー多分、作り直した方が早いよ
261258:2010/06/08(火) 21:55:07
ありがとう。明日見てみます
262名無しさん@そうだ選挙にいこう:2010/06/08(火) 22:18:47
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可・否
【5 検索キーワード     】 関数 桁 参照

基本的な質問ですいません。
データ列の上N桁を読み込んで、別に用意したテーブルの項目名をあてはめることは可能ですか?

たとえば、

「データ列」  「テーブル」
  002**  →  002 北海道札幌市
  120**  →  120 東京都足立区
  530**  →  530 大阪市北区

のような。

実際はデータ列は5,000行〜30,000行程度×10シート、テーブルは100行程度のボリュームがあります。

また上N桁は2桁、3桁のように決まっていません。上2桁〜上5桁までばらつきます。

vlookupでは無理のようでどの関数で処理すればいいのか分かりませんでした。
263名無しさん@そうだ選挙にいこう:2010/06/08(火) 22:23:35
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】否

超初心者です。
ページレイアウトタブにある「行番号」を表示させて学習していたら
作成時はもちろん新規作成を出すと必ず行番号1が表示されるようになり
常に行番号の▼を「なし」とクリックしないといけない状態になってしまい
面倒くさくて困っています。
この1が出ないようにするにはどうすればいいでしょうか?

よろしくお願いいたします。<m(__)m>
264名無しさん@そうだ選挙にいこう:2010/06/08(火) 22:30:48
>>262
テータ列・テーブルからそれぞれ作業列に =VALUE("0."&A8) として
=VLOOKUP(データ列の作業列,テーブルの作業列をキーに,列番号,TRUE)
でどうでしょう?
265263:2010/06/08(火) 22:37:22
ごめんWordでした
266名無しさん@そうだ選挙にいこう:2010/06/08(火) 22:41:16

( ゚Д゚)ゴルァ!!
267名無しさん@そうだ選挙にいこう:2010/06/08(火) 23:08:36
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル 表 集計 関数
エクセルで支店ごとの売り上げを合計したい
今もっているデータが、

支店1
得意先 1月 2月 3月 4月  5月
A社   100  20  30  10  50
B社   40   30  20  10  80
C社   30   100  20  40  40

支店2
得意先 1月 2月 3月 4月 5月
A社   10  50  30  40  80
E社   30  30  20  10  30

のようになっています。
これらを全ての支店の売り上げを合計し、全社の得意先別売り上げを

得意先 1月 2月 3月 4月 5月
A社   110  70  60  50  130
(B社、C社以降も同様)

のように得意先別・月別の形を残したまま、
計算機能を利用して合計したいです。
どうすればいいですか。
268複乳:2010/06/08(火) 23:32:52
>>262
文字数を指定してleftでキリトリ、それをキーにしてvlookup
http://www1.axfc.net/uploader/Img/so/85003
>>267
sumif関数。絶対参照をうまく使えば一箇所入れるだけで後はオートフィルでok
http://www1.axfc.net/uploader/Img/so/85005.jpg
支店ごとにシートが違う場合はまた別の方法で
269名無しさん@そうだ選挙にいこう:2010/06/09(水) 00:41:14
>>255
ありがとうございました
270名無しさん@そうだ選挙にいこう:2010/06/09(水) 01:36:26
/ が入力できません><
271名無しさん@そうだ選挙にいこう:2010/06/09(水) 02:51:35
>>270
'/
272名無しさん@そうだ選挙にいこう:2010/06/09(水) 02:52:49
>>270
まずF2押す
273名無しさん@そうだ選挙にいこう:2010/06/09(水) 06:45:23
>>267
ピボットテーブルウィザードで「複数のワークシート範囲」で簡単。
次善の方法としては「統合」もある。
使い方はどっちも似たようなもんだ。
次善手の統合なら、表を書き出したい空白セルにカーソルを置いて
統合元範囲に二つの範囲を追加していき、上端行と左端列にチェックを付ければよい。
データが非常に多いときはピボットテーブルだが、それほどでもなければ統合で十分。
274名無しさん@そうだ選挙にいこう:2010/06/09(水) 08:22:46
Excel2007で質問御願いします。

あるセル上、セル選択状態からいきなり入力を始めて打ち間違いをし
左矢印キーで修正のため戻ろうとするとそのセル内で前の文字に戻らずに
左のセルに移動してしまいます。
入力を始める前にF2とかでセルを編集状態にしてからなら問題ないのですが
それをせずにセル内の文字列内で戻る方法はありますか?
275名無しさん@そうだ選挙にいこう:2010/06/09(水) 08:35:27
ない。
276名無しさん@そうだ選挙にいこう:2010/06/09(水) 09:15:07
>>274
OnKeyメソッドで出来なくはないが、普通に←を使いたいとき困る。
そういう用途にしか←を使わないのであれば下のfooを実行すればいい。
Sub foo()
Application.OnKey "{LEFT}", "HOGE"
End Sub

Sub HOGE()
SendKeys "{F2}+{LEFT}"
End Sub
277名無しさん@そうだ選挙にいこう:2010/06/09(水) 09:34:04
上はまずいかな?
どっちにしろ実用になるもんじゃないが一応書いておく。
Sub HOGE()
SendKeys "{f2}"
SendKeys "{insert}+{LEFT}"
End Sub
278名無しさん@そうだ選挙にいこう:2010/06/09(水) 10:52:10
>>275->>277
ありがとうございました。
279名無しさん@そうだ選挙にいこう:2010/06/09(水) 10:58:57
>>270
最初に / を入力する場面が頻出するなら、メニューのツール→オプションで移行タブをひらく。
そこに、Microsoft Offece Excel メニューキー として / が登録されてるから
あんまり使わないキーに書き換えとくことをオススメしとくよ。

あたしは \ に書き換えてる。
280名無しさん@そうだ選挙にいこう:2010/06/09(水) 18:45:03
>>270
>>271
すごーい!できたよー\(*^o^*)/
281名無しさん@そうだ選挙にいこう:2010/06/09(水) 19:49:24
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 なるべく使わない方向で
【5 検索キーワード     】 EXCEL グラフ 余白
凡例は消去してグラフをX数値、Yの数値、図だけでグラフを作成し
図を拡大しようとするんですが
右に10mm、上に5mmほどの余白を図で埋める事が出来ないでいます。
余白をなくす設定方法を教えていただけないでしょうか

282名無しさん@そうだ選挙にいこう:2010/06/09(水) 19:51:44
XP Excel 2003
VBA初心者
VBAでの回答可

セルA1に入力された文字がファイル名になるマクロというのを見つけたのですが

Sub test01()
Dim x As String
x = Sheets("Sheet1").Range("A1").Value
Application.Dialogs(xlDialogSaveAs).Show arg1:=x & ".xls" '
End Sub

このコードを、フォルダ内にある複数のファイルにバッチ処理するにはどうしたらよいのでしょうか?
283複乳:2010/06/09(水) 22:05:58
>>806
ダメージも上げれば・・
スト2だな
284複乳:2010/06/09(水) 22:17:55
ぎゃー誤爆した
>>281
ないんじゃない。prtscrでコピー、ペイントで編集して貼付けか
気色悪い方法としてリンク貼付けでも対応可能
>>282
複数のファイルだと同じ名前でエラーが出るでしょ
どういう風にしたいの
A1:A5の五つのファイル、とか言うならfornextでRange("A1")をRange("A"&i)みたいに
すればいいとおもうけど
285名無しさん@そうだ選挙にいこう:2010/06/10(木) 13:54:46
>>282 です。

エクセルファイルは200個くらいあって

それぞれの
セルA1 には 違う文字が入っています

--001.xls---
セルA1 りんご

りんご.xls のファイル名で保存

--002.xls---
セルA1 みかん

みかん.xls のファイル名で保存

…というふうに、200個のファイルをリネームしたいと言うことなのですが…
286名無しさん@そうだ選挙にいこう:2010/06/10(木) 17:26:07
>>285
これから保存するんじゃなくて、ファイル名を一括で変更したいってこと?
287名無しさん@そうだ選挙にいこう:2010/06/10(木) 17:42:20
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】 否

ある作業を2回行い、その作業にかかる時間を記録しました。時間が短い方が記録が良いです。
そのことをエクセルのグラフにどう表したらいいかわかりません。
普通にグラフを作ると時間が長い=数値が大きいので、記録が良くない方のグラフが上にきてしまい、ぱっと見では時間が長い方が良い記録であるようなグラフになってしまいます。
どうしたらいいでしょうか?
288名無しさん@そうだ選挙にいこう:2010/06/10(木) 17:59:31
>>285
Excel2003以下用
2007以降は拡張子がたくさん増えたから自分で工夫して

Sub いっぺんに名前変更()
  ChDir "C:\data\ファイルがいっぱい入ってるフォルダ"
  OldFilename = Dir("*.xls")
  While OldFilename <> ""
    Workbooks.Open OldFilename
    NewFilename = Worksheets(1).Cells(1, 1)
    ActiveWorkbook.Close
    Name OldFilename As NewFilename & ".xls"
    OldFilename = Dir()
  Wend
End Sub
289名無しさん@そうだ選挙にいこう:2010/06/10(木) 18:11:34
>>288

すすすごいです! ありがとうございます!!
290複乳:2010/06/10(木) 18:12:12
>>285
何という読解力の低さ・・泣けるね
では改めて↓。Cドライブで作業しないとうまくいかないかもしれない
Private Sub CommandButton1_Click()
ChDir ThisWorkbook.Path
di = Dir("*.*")
Do While di <> ""
Workbooks.Open di

Workbooks(di).Activate
x = Sheets("Sheet1").Range("A1").Value
Application.Dialogs(xlDialogSaveAs).Show arg1:=x & ".xls" '
Workbooks(x & ".xls").Close

di = Dir()
Loop
End Sub
291名無しさん@そうだ選挙にいこう:2010/06/10(木) 18:30:11
>>290
シート名がSheet1とは限らん
292複乳:2010/06/10(木) 19:32:40
そう思うならそういうコード書いてあげればいいんじゃない
書けないなら黙ってれば
293名無しさん@そうだ選挙にいこう:2010/06/10(木) 19:52:16
("*.*") ←かわいい!
294複乳:2010/06/10(木) 20:31:39
>>287
=最高記録/時間 の行を作って最高記録が100%になるようなグラフにするか
もうそのままのグラフにするか、表のままか
そういや近距離走者のグラフとか見たことないな。あんまりさが無いからかな?
>>293
("*.*") < きもいだろ・・
295名無しさん@そうだ選挙にいこう:2010/06/10(木) 20:58:34
程度の低いのを後出しするって・・・

アホコテはどんだけオナニー好きなんだよw
296複乳:2010/06/10(木) 21:04:38
雑談は雑談スレへ
297名無しさん@そうだ選挙にいこう:2010/06/10(木) 21:23:01
レス早w
298名無しさん@そうだ選挙にいこう:2010/06/10(木) 21:25:10
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

あるxlsファイル中の、指定したセルのデータと同じ名前のxlsファイルを開いて、
マクロで編集・保存して閉じ、指定するセルを移動し、そのセルのデータと同じ名前の・・・という作業を自動で繰り返すことは可能ですか?

A.xlsのA1が「B」だったらB.xlsを開き、A.xlsのB1以降のデータを使ってB.xlsの該当部分をマクロで編集・保存して閉じ、
A.xlsのA2が「C」だったらC.xlsを開き、A.xlsのB2以降のデータを使ってC.xlsの・・・という感じです
299名無しさん@そうだ選挙にいこう:2010/06/10(木) 21:30:26
>>292
>>288見ろ
300名無しさん@そうだ選挙にいこう:2010/06/10(木) 21:43:34
>>298
質問が漠然としすぎているけど、まあだいたいのことは可能
301複乳:2010/06/10(木) 22:01:30
>>298
こんな感じ?
Sub unko()
Dim wbWrit As Workbook
ChDir ThisWorkbook.Path
gyo = Range("A65536").End(xlUp).Row
For i = 1 To gyo
sagyou = Cells(i, 2).Value '作業。とりあえず値を変数にでも入れておく
fairu = Cells(i, 1)
Set wbWrit = Workbooks.Open(fairu & ".xls")
wbWrit.Sheets("sheet1").Cells(3, 1).Value = sagyou '値をセルにでも入れる
Workbooks(fairu & ".xls").Close
Next
End Sub
>>299
見た
302名無しさん@そうだ選挙にいこう:2010/06/10(木) 22:07:26
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい(初級レベル)
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel 特定の文字列 抽出

一列の中に10文字の英数文字列(10文字)、カナ漢字文字列(制限なし)、半角英文字+記号(制限なし)など、
3パターンの文字列があり、それが10列ぐらいあります。
その中から列ごとに英数文字列(10文字)だけを抽出したいのです。
a
1 12345abcde
2 本日は晴天なり
3 aa+bb+cc
4 a1b2c3d4e5
5 本日は悪天なり
6 aa

a1〜a3がワンセットとなってまして、1列30行程度、最大10列ぐらいある表の中から
↑の例では a1とa4を抽出したいのです。
303名無しさん@そうだ選挙にいこう:2010/06/10(木) 22:39:15
>>302
隣の列がB列とする

B1のセルに「A」
B2のセルに「B」
B3のセルに「C」
と、それぞれ入力する。

B1からB3まで範囲選択し、オートフィルで連続データを作成。
ABCABCABCABC…と入力出来る
分からなければ「オートフィル」で検索

B1のセルを選択し、「データ」メニューから「オートフィルタ」を選択

B1にあるオートフィルタの下向き三角をクリックし「A」のみ抽出

A列を範囲選択し、コピー。
Sheet2などに貼り付け

304名無しさん@そうだ選挙にいこう:2010/06/10(木) 22:52:14
>>303
d
なるほど、こういう変化球があるんですね。
参考になりました。

上で書くの忘れてましたが、a1〜a3はワンセットなのですが、
30行の中に空白行が入ることがありまして(規則性なし)、教えていただいた方法だと…。
本当にすいません。
305303:2010/06/10(木) 22:59:52
>>304
1.最初にオートフィルタ
2.三角ボタンの下の方にある「空白以外のセル」で抽出
3.データ全域を範囲選択しコピー
4.別シートに貼り付け

そこで、上記の作業してはいけない?
306302:2010/06/10(木) 23:31:47
>>305
実は実際に使うファイルは会社なのでいますぐ確認できないのですが、
確か空白セルで抽出ができなかった記憶があります。

でも明日会社で確認してみます。
レス、2回も有り難うございました。
307複乳:2010/06/11(金) 08:12:26
>>302
B1=IF(LEN(A1)=10,1,0)
C1=IF(AND(OR(AND(CODE(MID(A1,1,1))>=48,CODE(MID(A1,1,1))<=57),
AND(CODE(MID(UPPER(A1),1,1))>=65,CODE(MID(UPPER(A1),1,1))<=90)),
OR(AND(CODE(MID(A1,2,1))>=48,CODE(MID(A1,2,1))<=57),
AND(CODE(MID(UPPER(A1),2,1))>=65,CODE(MID(UPPER(A1),2,1))<=90)),
OR(AND(CODE(MID(A1,3,1))>=48,CODE(MID(A1,3,1))<=57),
AND(CODE(MID(UPPER(A1),3,1))>=65,CODE(MID(UPPER(A1),3,1))<=90)),
OR(AND(CODE(MID(A1,4,1))>=48,CODE(MID(A1,4,1))<=57),
AND(CODE(MID(UPPER(A1),4,1))>=65,CODE(MID(UPPER(A1),4,1))<=90)),
OR(AND(CODE(MID(A1,5,1))>=48,CODE(MID(A1,5,1))<=57),
AND(CODE(MID(UPPER(A1),5,1))>=65,CODE(MID(UPPER(A1),5,1))<=90))),1,0)
D1=IF(AND(OR(AND(CODE(MID(A1,6,1))>=48,CODE(MID(A1,6,1))<=57),
AND(CODE(MID(UPPER(A1),6,1))>=65,CODE(MID(UPPER(A1),6,1))<=90)),
OR(AND(CODE(MID(A1,7,1))>=48,CODE(MID(A1,7,1))<=57),
AND(CODE(MID(UPPER(A1),7,1))>=65,CODE(MID(UPPER(A1),7,1))<=90)),
OR(AND(CODE(MID(A1,8,1))>=48,CODE(MID(A1,8,1))<=57),
AND(CODE(MID(UPPER(A1),8,1))>=65,CODE(MID(UPPER(A1),8,1))<=90)),
OR(AND(CODE(MID(A1,9,1))>=48,CODE(MID(A1,9,1))<=57),
AND(CODE(MID(UPPER(A1),9,1))>=65,CODE(MID(UPPER(A1),9,1))<=90)),
OR(AND(CODE(MID(A1,10,1))>=48,CODE(MID(A1,10,1))<=57),
AND(CODE(MID(UPPER(A1),10,1))>=65,CODE(MID(UPPER(A1),10,1))<=90))),1,0)
E1=IF(ISERROR(SUM(B1:D1)),"",IF(SUM(B1:D1)=3,A1,""))
308複乳:2010/06/11(金) 08:14:24
VBAアリだったのか・・
309名無しさん@そうだ選挙にいこう:2010/06/11(金) 10:11:38
年月日が入ってるセルから月の値だけ取り出して、更にその月の値を-1した値を返すに式はどうなりますでしょうか?
例「20071122」と入ってる場合、「11」を取り出して-1して「10」を返す。
「01」が入っている場合は「12」を返してくれる。
310複乳:2010/06/11(金) 10:22:32
>>302
vbaだと
Sub unko()
gyo = Range("A65536").End(xlUp).Row
For i = 1 To gyo
If Len(Cells(i, 1)) = 10 Then
xxx = 0
For k = 1 To 10
Select Case Asc(Mid(Cells(i, 1), k, 1))
Case 48 To 57, 65 To 90, 97 To 122
xxx = xxx + 1
Case Else
xxx = -100
End Select
Next
If xxx = 10 Then
Cells(i, 2) = Cells(i, 1)
End If
End If
Next
End Sub
311複乳:2010/06/11(金) 10:25:03
>>309
A1に入ってるとして
=IF((MID(A1,5,2)*1)=1,12,MID(A1,5,2)*1)
312複乳:2010/06/11(金) 10:25:48
matigaeta
=IF((MID(A1,5,2)*1)=1,12,MID(A1,5,2)*1-1)
だな
313309:2010/06/11(金) 10:34:35
>>312
ありがとうございました!助かりましt
314名無しさん@そうだ選挙にいこう:2010/06/11(金) 11:16:29
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 複数シート コピー 同一セル


複数シートの特定セル('シート1:シート10'!C2:E2)に書き込まれた文字列を、
新たなひとつのシートへコピーし、一覧にしたいのですが、どのようにしたらいいのでしょう?
315複乳:2010/06/11(金) 11:38:20
>>314
B1:B10=シートの名前
C1=INDIRECT($B1&"!r2c"&COLUMN(),0)
C1をC1:E10の範囲にオートフィル
後はコピーして値で貼り付けとかそんな感じで
316名無しさん@そうだ選挙にいこう:2010/06/11(金) 11:40:15
>>307

キッタネ〜
こんなのをよく貼る気になるなぁ
317複乳:2010/06/11(金) 11:47:58
>>316
だよなw
この腕も悪いし気色悪いクソコテさっさと死ねばいいのに

   死  ね

318名無しさん@そうだ選挙にいこう:2010/06/11(金) 11:50:51
>>315
おお、できました。ありがとうございます!
indirect使いこなせるようになろうと思います
319名無しさん@そうだ選挙にいこう:2010/06/11(金) 15:11:59
つーか次スレのテンプレに

・ご教示とご教授は全く意味の度合いが異なります。
 女を一晩買うのと、人身売買で身柄を買うくらいレベルが違います。
 質問する時にはちゃんと使い分けましょう

って入れておこうぜ。
320名無しさん@そうだ選挙にいこう:2010/06/11(金) 15:57:33
どうでもいい
321名無しさん@そうだ選挙にいこう:2010/06/11(金) 20:03:06
激しくどうでもいいわ
322名無しさん@そうだ選挙にいこう:2010/06/11(金) 20:29:35
>316
310、312、315も十分汚い
それが彼の立ち位置。
323名無しさん@そうだ選挙にいこう:2010/06/11(金) 21:40:28
324名無しさん@そうだ選挙にいこう:2010/06/11(金) 22:35:56
>>316と>>322のカキコは価値がないどころかマイナス要因だが、複チチさんは役に立ってる。
綺麗なマクロや関数を求めるなら、別スレ立てておまいら(同一人物?)が監修すればいい。
325名無しさん@そうだ選挙にいこう:2010/06/11(金) 23:39:52
例えば>312なんか素直に書けば
=if(mid(a1,5,2)="01",12,mid(a1,5,2)-1)
で済むものを余計な型キャストを入れて
汚くしたものを質問者が覚えて帰って行く。
それはマズイのでは。
326名無しさん@そうだ選挙にいこう:2010/06/11(金) 23:51:02
【OSの種類】WindowsXP
【Excelのバージョン】Excel2003

助けてください
突然セルのコピー&ペーストが出来なくなりました
ctrl+Cでも右クリックメニューでもセルのコピーは選択できますが
貼り付けがグレーで選択不可能です
なお数式バーでコピーしてペーストすることは可能です
327複乳:2010/06/12(土) 00:01:05
>>326
とりあえずOSの再起動
328名無しさん@そうだ選挙にいこう:2010/06/12(土) 00:10:09
例えば>310も色々あるが、ひとつだけ上げれば
kをカウンタに回してるのにxxxでカウントし直してる。
こういう場合、条件に合わないと判定されたら
即ループを抜けるのが基本。
329複乳:2010/06/12(土) 00:11:25
>>325
なんで*1なんてするの?って質問を待っている
無ければないで、いいじゃない。あって損はしない。
>>324
あらま、嬉しいねぇ
何なら私の書き込み全てに
別解http://pc11.2ch.net/test/read.cgi/bsoft/xxxxxxxxxx(綺麗な解答スレ)
なんて付け足してもいいけどね

ちなみに私の理想は・・
エクセル自慢と会社で呼ばれてる人が日中、困ったらここに聞きにきて、直ぐに回答もらって戻って
クールに処理して、何事もなかったかのように次の仕事にとりかかると
そんな手伝いができる場所だといいと思うんだよね
更に遅くてもより丁寧な回答や議論が繰り広げられれ、それをまぁ、帰ってから見て更にレベルアップできるような場所なら
すごくいいと思うんだよね
向上心のある人ならまた来てレベルアップするだろうし、無ければそれまでだね
まぁ、どっちでもいい
またくれば答えは教えてあげる。答えから学ぶタイプの人もいる(私がそれだ)
私は私の理想を叶えようと日々努力してるだけだ
私の得意なvlookupやindirectが気に入らないなら私より早く回答すればいい
アク禁なら勉強でもしていればいい
>>316
煽りも弱い。>>317何かで止まるな。煽り続けろ。でも「死ね」なんてかくとリアルでややこしくなるからね。がんばってね

というわけで雑談は
http://pc11.2ch.net/test/read.cgi/bsoft/1151651536/
回答者のためになる議論はいくら続けてもいいと思う。
330名無しさん@そうだ選挙にいこう:2010/06/12(土) 00:28:02
理想はいいんだけど
>288と>290と、その後のレス読むと
にわかには信じがたいなあ。
寝ます、おやすみなさい。
331326:2010/06/12(土) 00:40:46
>>327
再起動で直りました・・・
初歩の初歩でしたね・・・
失礼しました&ありがとうございました
332複乳:2010/06/12(土) 00:42:23
>>330
今回は>>288見落としていました。すいませんでした。
ただ回答の多様性は出来る限り大きく存在すべきだと思う。善し悪しではない。そこから生まれるものもある
って見落とした、の後に言うと価値がなくなりますね
いいけど
>>328
exitforな。やってるうちにめんどくさくなったんだ。一日ほっといたら誰か答えるだろうと思ったが来なかったんだ。許してくれ。悪気はないが俺の怠慢だ
333名無しさん@そうだ選挙にいこう:2010/06/12(土) 00:47:54
初心者に毛の生えたヤツの言い訳はうざい。
334名無しさん@そうだ選挙にいこう:2010/06/12(土) 00:56:06
>ただ回答の多様性は出来る限り大きく存在すべきだと思う。善し悪しではない。

>290,307,312
これらはそーゆー次元では無いと思うがな。
335複乳:2010/06/12(土) 01:00:11
336名無しさん@そうだ選挙にいこう:2010/06/12(土) 08:41:22
印刷プレビューと印刷結果の差を出来る限りなくしたいのですが、
なにかいい方法はありますか?
337名無しさん@そうだ選挙にいこう:2010/06/12(土) 08:45:32
>>329
今回は静観してたが、おまいの言い草はあのMicrosoftも認めた日本一の
勘違い君が頭に浮かぶ。
338名無しさん@そうだ選挙にいこう:2010/06/12(土) 09:00:44
>336
Excelの機能である印刷プレビューの代わりに FinePrint などの仮想プリンタソフトを使うくらいかなあ。
試用版のままだとタダで使えるので重宝してます。(質問の使い方ではありませんが)
ただし、このソフトの出力結果と実際に紙に印刷した結果がどのくらい違うかについて、検証したことはありません。
339名無しさん@そうだ選挙にいこう:2010/06/12(土) 11:12:14
価値無いどころかマイナスと言われちゃったよw
>302 
Sub hoge()
  n = 2 '選択範囲の該当する値をH2以降に書き出す
  For Each r In Selection
    If Len(r.Value) = 10 Then
      For i = 1 To 10
        ch = Mid(r.Value, i, 1)
        If ch < "0" Or ch > "z" Then Exit For
        If ch > "9" And ch < "a" Then Exit For
        If i = 10 Then Cells(n, "H") = r.Value: n = n + 1
      Next i
    End If
  Next r
End Sub
340名無しさん@そうだ選挙にいこう:2010/06/12(土) 11:13:14
>>338
印刷プレビューがいまいちなんですね。
FinePrint使ってみます
ありがとうございました!
341名無しさん@そうだ選挙にいこう:2010/06/12(土) 11:55:24
winxp.エクセル2007.
VBAで文字列を計算できるように数値にしたいのですが方法がわかりません。
すみません詳しい方いたら教えてください。よろしくお願いします。
342名無しさん@そうだ選挙にいこう:2010/06/12(土) 12:00:14
"1"+"2"=3
343名無しさん@そうだ選挙にいこう:2010/06/12(土) 12:23:38
文字列「壱足す弐」を3にするとか?
344344:2010/06/12(土) 13:01:06
質問があったのですが、自己解決しました
345名無しさん@そうだ選挙にいこう:2010/06/12(土) 13:09:44
>>339
r.Valueくらい一時変数に入れようよ。
何度も取得するの気持ち悪い。
346名無しさん@そうだ選挙にいこう:2010/06/12(土) 13:24:07
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000→2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】= 表示されない など

エクセル2000をずっと使っていたのですが、最近2003に変えました。
しかし、2000では計算式を記入するとき、画面上の方にある、たしか「=」みたいなマークを押すと、自動で=が入力されて、
計算が記述できたのですが、2003ではそのボタンがありません。fxというボタンが代わりにあるのですが、これを押すと関数選択の
ダイアログボックスが出てしまいます。
2000のような =を入力するボタンを表示させたいのですがどうすればいいでしょうか?
347名無しさん@そうだ選挙にいこう:2010/06/12(土) 13:26:07
>>346
ありません。+で代用するのが楽です
348名無しさん@そうだ選挙にいこう:2010/06/12(土) 13:31:09
>345
r.valueはお行儀よく書いただけで
キモチ悪ければrでもいい。
でこのrは一時変数なんだけどな。
349346:2010/06/12(土) 13:48:18
>>347
さっそくレスありがとうございます。

=ボタンないんですか。
へこむ・・・・せっかく2003にしたけど、特に2003にしたメリットないな〜と思ってたけど、メリットどころかデメリットの方が多いとかになりそうで鬱です。

>+で代用するのが楽です

+で代用とはどういうことでしょうか。+ を押してみたのですが特になにも起きないのですが・・・。
質問ばかりですみません。
350名無しさん@そうだ選挙にいこう:2010/06/12(土) 14:01:31
「=A1+B1」と入力する代わりに「+A1+B1」と入力します。
テンキーがあればかなり楽です。自分はこの方法知ってから=ボタン使わなくなりました。
351名無しさん@そうだ選挙にいこう:2010/06/12(土) 14:52:39
341です。
>>343
例えば”32”とかを計算できるように数値化したいのです。
ネット等からコピペしたりすると文字列になっていることがあるので。
関数を使えば”value”で解決なのですが、これでもうまくいかなかったのでVBAでやってみようとおもったのですがうまくわかりません。
352名無しさん@そうだ選挙にいこう:2010/06/12(土) 14:59:46
たとえばA1に"12"がはいってるとして
=LEFT(A1,1)+RIGHT(A1,1)
の値は3になる。これでいいのか?
353名無しさん@そうだ選挙にいこう:2010/06/12(土) 15:07:09
Excel2000は、2003でつくったマクロ(例えば自動記録でつくった並べ替えとか)が使えないYO!
「青いシート見出しを見て」とか言われてチンプンカンプンだったときもあったな・・・
354名無しさん@そうだ選挙にいこう:2010/06/12(土) 15:14:55
>>351
セルを標準にします。セルを編集(ダブルクリック)状態にします。それで、数値になるよ。
vba使うまでもない。
ダブルクリックが面倒だったら、「区切り位置」ですぐ「完了」にすればおk
355名無しさん@そうだ選挙にいこう:2010/06/12(土) 15:20:11
>>348
rって書いてもr.Valueを3回取得してることにかわりないわな。
オブジェクト変数じゃなく値を格納する一時変数を使わないと気持ち悪い言ってるんだよ。
356名無しさん@そうだ選挙にいこう:2010/06/12(土) 15:52:42
複案があるなら、それを書かないと前掃除大臣みたいでカコワルイ!!
357名無しさん@そうだ選挙にいこう:2010/06/12(土) 16:33:09
>>346
Excel2003の数式バーに「=」を追加する
ttp://www11.plala.or.jp/koma_Excel/contents1/mame1004/mame100401.html
358名無しさん@そうだ選挙にいこう:2010/06/12(土) 16:34:44
>354
オブジェクトのプロパティはメンバ変数みたいなモンで
r.value自体が値を表す変数のイメージがあるけど
値を求めるメソッど(?)みたいに負荷がかかるなら
あんたの言うとおりだわ。実際このあたりはよくワカラン。
359名無しさん@そうだ選挙にいこう:2010/06/12(土) 17:31:32
>>658
Valueの取得ってのは結構重いんだよ。
2回以上使う場合は適合する型の一時変数に入れるのがコーディングの基本だ。
いわゆるキャッシュだな。
Variantの2次元配列でも言えることだ。
何度もa(i,1)とか同じ要素が出てくると汚いし遅い。
実際は1回しか使わなくても言えることなんだが、そこまではやらなくてもいいだろう。
360349:2010/06/12(土) 18:00:05
>>350
なるほど、「+」入力とか最初何を言ってるのかと思いましたが、要は+を押しておけば数式入力モードになり
またその後の数式がどうなろうと、最初に「+」が入っても邪魔にならないから、「+」を押すいうことですね。
そういう発想ができるところがすごいと思います。ぜひ使わせていただこうと思います。

それはそれなのですが、しかし、やはり「=」ボタンは欲しいですね。
なぜ「=」ボタンを廃止したのか理由が全く見えません・・・・。
361349:2010/06/12(土) 18:05:26

ttp://www.kenzo30.com/ex_kisopoint/onepoint_kihon3.htm

なんかこういうのもあるのですね。
これで「=」ボタンは設置できますが、しかし、なぜ、マイクロソフトは、=をデフォルトで廃したのだろうか・・・・。
362名無しさん@そうだ選挙にいこう:2010/06/12(土) 20:19:14
>>359
遅い、重いはよく考えていることです。
勉強になりますので>>339を軽くなるよう清書していただけませんか?
363名無しさん@そうだ選挙にいこう:2010/06/12(土) 22:01:41
357のリンク先にならって数式バーに「=」を追加したんだけど、
削除するにはどうすればいいですか?
364名無しさん@そうだ選挙にいこう:2010/06/13(日) 11:39:33
>>362
半角英数字の小文字10文字のみなら小さな突っ込みなしならこんなかな?
軽くするには配列を使えばいいが、今回は基本の例として配列は使わない。
全角英数字とかアルファベットの大文字も含めるなら適宜StrConvとか
LCaseなどを使えばいいだろう。
変数はわざと1文字を多用した。
2回に分けて書き込む。
365名無しさん@そうだ選挙にいこう:2010/06/13(日) 11:40:39
>>364の続き
Sub hoge()
Const L As Long = 10
Dim r As Range
Dim o As Range
Dim v As String
Dim b As Boolean
Dim i As Long
Dim ch As String
Set o = Range("H2")
For Each r In Selection
v = r.Value
If Len(v) = L Then
b = True
For i = 1 To L
ch = Mid$(v, i, 1)
If Not ch Like "[0-9 a-z]" Then
b = False
Exit For
End If
Next i
If b Then
o.Value = v
Set o = o.Offset(1)
End If
End If
Next r
End Sub
366名無しさん@そうだ選挙にいこう:2010/06/13(日) 11:42:29
すまん、インデントがつかなかったよ。
367名無しさん@そうだ選挙にいこう:2010/06/13(日) 13:05:38
あと別に軽くはならないけど正規表現もよくある手だね。
Like演算子にしても
>If Not ch Like "[0-9 a-z]" Then
下の方が普通かも。
If ch Like "[!0-9 !a-z]" Then
368名無しさん@そうだ選挙にいこう:2010/06/13(日) 16:05:41
セルに値を入力したときに自動的に編集状態(F2状態)にすることってできますか?
369名無しさん@そうだ選挙にいこう:2010/06/13(日) 17:52:15
F2押してから入力しれ
370368:2010/06/13(日) 18:08:08
>369
毎回F2を押すのがめんどいです.
ボタンの位置的にも押しにくいです.
371名無しさん@そうだ選挙にいこう:2010/06/13(日) 18:29:39
>>370
しつこい。
出来ないもの出来ないんだから、Microsoft に注文しろ。
372名無しさん@そうだ選挙にいこう:2010/06/13(日) 19:31:45
F2をテンキーのどれかに割り当てるのはフリーウェアとかで可能
373名無しさん@そうだ選挙にいこう:2010/06/13(日) 19:56:23
>>368
これだとすべてのセルになるけどw、ついでにやってみると超うざいけど

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
SendKeys "{F2}", True
End Sub
374名無しさん@そうだ選挙にいこう:2010/06/13(日) 20:25:01
>>368
上にある数式バーで編集すりゃええやん。
375名無しさん@そうだ選挙にいこう:2010/06/13(日) 21:02:28
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 URL 一括

いつもお世話になっておりますm(_ _)m
文字列となっている複数個のURL(URLは一列に並んでいます)を、クリッカブルURLにするには、
どうすればよいのでしょう?

VBAを使わないといけない場合でも、がんばって覚えるので、教えて頂けたら幸いです。m(_ _)m
376名無しさん@そうだ選挙にいこう:2010/06/13(日) 21:32:38
>373
セルの位置を変更した時にF2を押すのではなく,
文字が入力されセルの内部がアクティブになった
瞬間にF2が押されるようなのがいいです.
377名無しさん@そうだ選挙にいこう:2010/06/13(日) 21:43:30
>>375
A列にURLが入っているなら、B列に
=HYPERLINK(A1)
としてオートフィル。

ただし、これではA列のデータを消してしまうと元も子もないので、
B列のデータをコピーし、一度Wordに貼り付け。再度Wordの表を
コピーし、今度はExcelに貼り付ければ良い。
378377:2010/06/13(日) 21:49:12
ポイントは、Excelを起動したまま、Wordを起ち上げること。

Excelデータをコピー

一旦Excelを終了

Wordを起ち上げて貼り付け

上記では上手くいかない。
ハイパーリンクの設定が消えてしまう。
379名無しさん@そうだ選挙にいこう:2010/06/14(月) 01:25:10
超初心者スレから誘導されてきました

グラフに関する質問なんですが
y=axという関数の、aを変化させた場合の比較グラフが作りたいのですが
どうすればいいのでしょうか、教えてください
またxの範囲もaの値の違いによって変えたいのですが可能でしょうか?
380名無しさん@そうだ選挙にいこう:2010/06/14(月) 08:02:00
>>可能でしょうか?

可能。
但し超初心者スレに帰れ。
381名無しさん@そうだ選挙にいこう:2010/06/14(月) 09:04:30
>379
散布図グラフで可能ですよ。参考にしてください。(当方の環境WinXP,Excel2003)
http://www.dotup.org/uploda/www.dotup.org963520.png.html
382381:2010/06/14(月) 09:11:25
>381に追加
あ、ダウンロードのパスは excel です。忘れてた。
383名無しさん@そうだ選挙にいこう:2010/06/14(月) 10:11:01
Excel2007のピボットテーブルで日付別の集計をやってるのですがデータにない日付の売上も0として表示したいのですが可能でしょうか?
2003ではグループ化をうまく使ってできるようですが、2007でいくらやってもできません。

日付 売上
1/2  100 
1/2  200
1/4  150
.
.
1/31  200
上を下のようにしたい。

日付 売上
1/1   0 
1/2  300
1/3   0
1/4  150
.
.
1/31  200
384名無しさん@そうだ選挙にいこう:2010/06/14(月) 11:11:23
>>383
1.「日付」フィールドを選択しリボンを見る
2.「ピボットテーブルツール」→「オプション」→「アクティブなフィールド」
3.「フィールドの設定」→「レイアウトと印刷」内の「データのないアイテムを表示する」
4.次は日付のグループ化。「グループ」→「グループフィールド」
5.「単位」を「日」でグループ化
6.要らないデータまで表示されたら、「日付」フィールドのオートフィルタで取り除けばよい



385名無しさん@そうだ選挙にいこう:2010/06/14(月) 12:58:14
>>384
できますた。
3がミソだったんですね。
レイアウトと印刷の中まで見たとこなかったなぁ。
隅々まで探さなきゃだめですね。
386名無しさん@そうだ選挙にいこう:2010/06/14(月) 21:05:30
関数を用いた文字列判定と検索の方法を教えて下さい。

リスト1
A列       B列
テキスト    分類(ここに関数)
赤いクルマ   のりもの
赤いトマト   やさい
美味しいトマト やさい
大きいリンゴ  くだもの
おいしいメロン くだもの
日本頑張れ!  くに

リスト2
A列     B列
特定文字列 判定結果
クルマ   のりもの
トマト   やさい
リンゴ   くだもの
日本    くに


テキスト1の中にリスト2に一致する文字列を含む場合、
分類欄に判定結果を返すような関数を教えて下さい。
なお、リスト2は数十行あるため、if式で入れ子にする
やり方は不可です。判定結果が数値ではないので、
SUMIFは使えません。

どなたか是非助けて下さい!
387名無しさん@そうだ選挙にいこう:2010/06/14(月) 21:22:06
無理
388名無しさん@そうだ選挙にいこう:2010/06/14(月) 21:42:33
数百あると無理だけど、数十ならIFでいける
試しもしないで不可とか言わないように
389名無しさん@そうだ選挙にいこう:2010/06/14(月) 22:30:49
>386 無い知恵絞って考えてみました。作業列を用います。
http://www.dotup.org/uploda/www.dotup.org964612.png.html
パス:excel

B3セルの式が {=CONCATENATE(C3:J3)} でいけるかなと思ったらダメだった。
範囲の最初のセルしか反映されない。なぜだろう。
390名無しさん@そうだ選挙にいこう:2010/06/14(月) 22:54:33
>>386
リスト2がシート1だとして

=INDEX(Sheet1!B:B,MIN(IF(ISERROR(MATCH("*"&Sheet1!$A$2:$A$5&"*",A2,0)),10^10,MATCH("*"&Sheet1!$A$2:$A$5&"*",A2,0)*ROW($A$2:$A$5))))

CTRL+SHIFT+ENTER同時押しで配列数式。
ただし、エラー対策(なかったとき)はしていない
391名無しさん@そうだ選挙にいこう:2010/06/15(火) 02:52:11
windows7のパソコンのExcel2007が非常に使いにくい。
office2003のCDで使い慣れたExcel2003をインストールしたら動きますか?

ちなみにどうやってインストールしたら良いのでしょう?
2003と2007の共存が理想ですが、やっぱり2007はアンインストールしなければならない?
392名無しさん@そうだ選挙にいこう:2010/06/15(火) 03:11:03
>>391
インストールできてちゃんと動作します。
共存もできますが、ちょっとコツが必要です。
インストールする時、初期状態だと2003と2007でフォルダ名が一緒になるので、手動で変更しないと
プログラムが上書きで消されてしまいます。
あと、Excelのファイルをダブルクリックするとうまく開けないことがあるので、
必ずExcelを先に起動してから「開く」メニューからExcelのデータを指定する必要があります。
393複乳:2010/06/15(火) 09:15:29
>>391
2003 2007 共存
でぐぐれば色々でてくる。あんまりやらないほうがいい

メニューだけ戻したいなら
http://members.at.infoseek.co.jp/dr_admk/o2007oldui/
とか。
394名無しさん@そうだ選挙にいこう:2010/06/15(火) 15:04:19
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル 関数 一致 抽出

Sheet1にデータがあります。
    番号      日付   名前    識別CD
  12桁数字     0615   佐藤    001(3桁数字で000〜100まで)
           ↑1ヶ月分あり↑100種類くらいあり    
   ↑一致するものは無くすべてユニーク
以下、↓500行くらい並んでいます。

Sheet2〜Sheet30くらいまでに、1シート当たり識別CDが4〜5個位、
適当に振り分けられていて、該当する識別CDのあるシートに、
Sheet1にあるデータ(番号、日付、名前)を全部表示させたいです。

ググって見つけた配列関数(countifとrowとかいろいろ組み合わせたもの)で
識別CD1個分ずつ、データを別シートに表示させることは出来たのですが、
それを順番にリストで並べることが出来ません。

(識別CD1つにつき、いくつのデータをひっぱってくるのかがわからないため
全てのセルに、5個分の配列関数を入れると重くなりすぎてしまうので)

やりたいことは、識別CD5個分をオートフィルタオプションで表示させたものを、
別シートにそのまま表示したいのですが、いい方法を教えてください。
395名無しさん@そうだ選挙にいこう:2010/06/15(火) 18:52:16
シート2〜30をひとつのシートにまとめる
396名無しさん@そうだ選挙にいこう:2010/06/15(火) 21:26:31
386です。
皆様、ありがとうございます。
=INDEX(Sheet1!B:B,MIN(IF(ISERROR(MATCH("*"&Sheet1!$A$2:$A$5&"*",A2,0)),10^10,MATCH("*"&Sheet1!$A$2:$A$5&"*",A2,0)*ROW($A$2:$A$5))))
のMIN関数と10^10の意味が分かりません。10の10乗?どういう意味でしょう?

ifの入れ子は試したのですが、式が長くなりすぎるのでどうしてもリストが使いたいのです。
どうか、分かる方教えてください!お願いします。
397386ではありません:2010/06/15(火) 22:36:17
>396
「10^10」の意味:無限大に近い数を設定する。今回の例ならば10^3でも10^4でも可
「MIN関数」を使う理由:↓
 文字列の中に特定文字列が存在しない(ISERRORが真になる)とき10^10を設定し、
 文字列の中に特定文字列が存在したとき、当該行位置を設定する。そして、
 MIN関数で最も少ない数(特定文字列に一致したときの行位置)を返す。

式を入力するとき、[Enter]ではなく、[Ctrl]+[Shift]+[Enter]で入力すると配列式となるので、
「赤いトマト」の場合は 10^10,3,10^10,10^10,10^10 の5個の数字から最も小さい数=3が
MIN関数の答えとなり、INDEX(Sheet1!B:B,3)はB3セルの値="やさい" となる。

>390さんが
>ただし、エラー対策(なかったとき)はしていない  とは、
特定文字列に一致するものがなかった場合は、5個とも10^10になるのでエクセルの最大行をはるかに
超えるからエラー(#REF!)になる、ということ。エラー表示にしたくなければ10^10のかわりに
65536にでもしておくと空白表示になるのでいいかも。(最下行まで使ってない場合)
398397:2010/06/15(火) 22:37:55
>397 の名前のところは 390ではありません の間違いでした。orz
399名無しさん@そうだ選挙にいこう:2010/06/15(火) 22:51:39
>>396
Microsoft Queryで出来る。
400名無しさん@そうだ選挙にいこう:2010/06/15(火) 23:37:58
エクセルの改ページプレビューで見るとはみ出ていないのに
印刷すると文字の右側がはみ出てしまいます。

印刷したものと改ページプレビューの見た目を同じにするにはどうしたらいいですか
401名無しさん@そうだ選挙にいこう:2010/06/16(水) 00:00:37
>400
「改ページプレビュー」っていっても「編集画面」なので印刷結果と異なるのはExcelの仕様です。
「印刷プレビュー(編集はできない)」で確認してください。

印刷プレビューと実際の印刷結果が異なる場合は、>336,338を参考にしてください。
402名無しさん@そうだ選挙にいこう:2010/06/16(水) 09:39:43
>>400
新参乙です(悪いとは言ってない)
さんざんガイシュツ。
ま、ここの人は優しいから俺以外のシッタカが教えてくれます。
403名無しさん@そうだ選挙にいこう:2010/06/16(水) 11:31:39
>>402
エクセルの一番有名なダメ仕様、未だに治ってない。
404 ◆RKItBcY.UI :2010/06/16(水) 15:44:19
質問です、というかお手伝いお願いします

▼━質問テンプレ (出来れば使ってね♪) ━━━━━━━━━━━━
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 さわったばかりでまだまだ
【4 VBAでの回答の可否】 可

たくさんのセルの、内部にある文章の一部分だけ文字の色を変えたいんです
そこでネットの海をさまよって、とあるマクロを見つけ
さらにそれをちょいちょい改ざんして以下のようになりました
ttp://ccfa.info/cgi-bin/up/src/up37660.txt.html

これでもかなり思い通りにいってくれたのですがひとつ問題があって
目的の文字列がひとつのセルの中にふたつ以上あった場合に
文字列の長さが異なっているとふたつめ以降の文字列の長さには対応してくれないのです

例:その魔物を倒すには「聖水」と「十字架」と「月桂樹の葉」が必要じゃ。
ここでカギカッコの始まりから終わりまでの文字(3箇所)の色を変えたいんだけど
上記のマクロだとどうも「聖水」を見つけてカギカッコ開始から4文字だと判断しちゃって
十字架のほうのトジカギカッコとか、の葉」とかまで変わってくれないっていうね
(次のセルだとまた文字数をカウントしなおしてくれる)
セルを分割とかはしたくないし、カギカッコじゃないやつも色変えたいのあるし
目的によって色も変えたいしで、ここからどーしたらいいんだろ・・・

だれか とっ て も カン ペキ だ というマクロに改良してー!
405複乳:2010/06/16(水) 16:23:53
>>404
こんなんでいいかな
色を変えたいセルを選択してマクロ実行
hajimemoji = "「"
owarimoji = "」"
を変えるとはじめと終わりの文字を設定できる
後は自分で頑張れ
406複乳:2010/06/16(水) 16:26:47
Sub Macro1()
Dim hajime, i, nagasa
Dim hajimemoji, owarimoji
hajimemoji = "「"
owarimoji = "」"
arColorIndex = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, _
10, 11, 12, 13, 14, 15, 16, _
33, 34, 35, 36, 37, 38, 39, _
40, 41, 42, 43, 44, 45, 46, 47, 48, 49, _
50, 51, 52, 53, 54, 55, 56)
nagasa = Len(Selection.Value)
For i = 1 To nagasa
If Mid(Selection.Value, i, 1) = hajimemoji Then
hajime = i
End If
If Mid(Selection.Value, i, 1) = owarimoji Then
arColorIndex = InputBox(Mid(Selection.Value, hajime + 1, i - hajime - 1) & " に設定する色を次の中から数字で指定してください" & vbCr & vbCr & _
"0:自動 , 1:黒 , 2:白 , 3:赤 , 4:明るい緑 , 5:青 , 6:黄 ," & vbCr & _
"7:ピンク , 8:水色 , 9:濃い赤 , 10:緑 , 11:濃い青 , 12:濃い黄 ," & vbCr & _
"13:紫 , 14:青緑 , 15:25%灰色 , 16:50%灰色 , 33:スカイブルー ," & vbCr & _
"34:薄い水色 , 35:薄い緑 , 36:薄い黄 , 37:ペールブルー ," & vbCr & _
"38:ローズ , 39:ラベンダー , 40:ベージュ , 41:薄い青 ," & vbCr & _
"42:アクア , 43:ライム , 44:ゴールド , 45:薄いオレンジ ," & vbCr & _
"46:オレンジ , 47:ブルーグレー , 48:40%灰色 , 49:濃い青緑 ," & vbCr & _
"50:シーグリーン , 51:濃い緑 , 52:オリーブ , 53:茶 ," & vbCr & _
"54:プラム , 55:インディゴ , 56:80%灰色", "文字色の指定", 0)
ActiveCell.Characters(Start:=hajime + 1, Length:=i - hajime - 1).Font.ColorIndex = arColorIndex
End If
Next
End Sub
407名無しさん@そうだ選挙にいこう:2010/06/16(水) 18:46:03
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 無理
【4 VBAでの回答の可否】 無理無理

カレンダーに毎日のデーターを記入したいんですが、
いちいち日付を1年分も打ち込まなくても、でぇーーーーってでる方法はありますか?
初めてなんですが、よろしくお願いします。
408名無しさん@そうだ選挙にいこう:2010/06/16(水) 19:00:08
オートフィル
409名無しさん@そうだ選挙にいこう:2010/06/16(水) 19:01:26
>407
「オートフィル」って使ったことありませんか?

エクセル辞典 オートフィル−連続データの生成
http://www.excel-jiten.net/data_entry_edit/concective_data.html

普通に最初の日付を入力してからオートフィル操作すると、↑のようにしなくても
連続した日付が生成できます。
410407:2010/06/16(水) 19:04:52
>>408
>>409

ありがとうございます。
こんなめんどくさい作業が手作業のはずはない!!と思ったのですが、
なんという名前の作業かわかりませんでした。
早速作業できます。本当にありがとうございました。
411名無しさん@そうだ選挙にいこう:2010/06/16(水) 19:24:00
エクセルでファイルにパスワードをかけたのですが忘れてしまい開けません
エクセルアナライザーをインストールしたのですがうまく使えません、どうすればいいでしょうか?
412名無しさん@そうだ選挙にいこう:2010/06/16(水) 19:31:52
質問です!

エクセルのワークシート上にコンボボックスを設置し、
プロパティの「ListFillRange」にセル範囲を設定後、
保存して終了。
再度、ファイルを開き、即「×」ボタンで終了しようとしたところ、
修正していないのに上書き保存の確認ダイアログが出てきました。

ListFillRangeに何か設定するとファイルを開いたときにリストが再設定され
それがファイルの変更フラグに影響を与えているということなのでしょうか?
413名無しさん@そうだ選挙にいこう:2010/06/16(水) 19:59:33
Office 2010 発売4h前 age

x64入れてみるか。x64なら膨大な計算や描画を要する
シミュレーションに使えそう。
414名無しさん@そうだ選挙にいこう:2010/06/16(水) 20:22:36
>411
途方に暮れて下さい。
415名無しさん@そうだ選挙にいこう:2010/06/16(水) 21:28:44
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 重複

A1〜M100ぐらいまでのセルに色々な単語が入ってて
2個以上ある単語を全てチェックしたいんですけれど
抽出するうまい方法無いですか?
416名無しさん@そうだ選挙にいこう:2010/06/16(水) 21:33:54
COUNTIFで2以上をフィルタ
417名無しさん@そうだ選挙にいこう:2010/06/16(水) 22:05:03
If Left(Cells(i, 1).Value, 1) = "福" Then
 Cells(i, 7).Value = "合格"
ElseIf Left(Cells(i, 1).Value, 1) = "宮" Then
 Cells(i, 7).Value = "合格"
ElseIf Left(Cells(i, 1).Value, 1) = "山" Then
 Cells(i, 7).Value = "合格"
ElseIf Left(Cells(i, 1).Value, 1) = "長" Then
 Cells(i, 7).Value = "合格"
ElseIf Left(Cells(i, 1).Value, 1) = "愛" Then
 Cells(i, 7).Value = "合格"
ElseIf Left(Cells(i, 1).Value, 1) = "大" Then
 Cells(i, 7).Value = "合格"
End If

Cells(i, 1)の頭文字が振り分けたいですけど
おねがします
418名無しさん@そうだ選挙にいこう:2010/06/16(水) 22:08:36
>>415
とりあえずピボットテーブルで各データが何個あるか数えろ。
2個以上あるものを抽出すれば良い。
419複乳:2010/06/16(水) 22:13:19
>>411
色々なサイトでエクセル パスワード 解除 ソフト 辺りで探せ↓は一例
ttp://search.vector.co.jp/search?query=%83G%83N%83Z%83%8B%81%40%83p%83X%83%8F%81%5B%83h
>>412
sheet1に
Private Sub Worksheet_Calculate()
msgbox("")
End Sub
とか記述すればワークシートが再計算しているかどうか分かる
まぁ、保存ダイアログ出ていると言うことは再計算しているってことでok
420名無しさん@そうだ選挙にいこう:2010/06/16(水) 22:27:03
>>417
何を聞きたいか分からないけどエスパーで

If InStr("副宮山長愛大", Left(Cells(1, 1).Value, 1)) > 0 And IsNull(Cells(1, 1).Value) = False Then

みたいにすれば一行ですむ。
421名無しさん@そうだ選挙にいこう:2010/06/16(水) 22:29:19
>417
何をたずねたいの? >417の記述をもっとスマートに、ってことですか?
422名無しさん@そうだ選挙にいこう:2010/06/16(水) 23:15:19
>>415,418
自分はピボットテーブルが使えないのと
データの種類も範囲も膨大なので
1種類ずつ単語の数を数えるのは避けたいんですが
無理ですかね?
423名無しさん@そうだ選挙にいこう:2010/06/16(水) 23:24:21
>415,422
元データがA列〜M列まであるようですが、1列に整形することはできませんか?
424名無しさん@そうだ選挙にいこう:2010/06/16(水) 23:34:44
>>423
手動で何とかします。
1列にしたら2回以上ある単語の抽出可能ですか?
425名無しさん@そうだ選挙にいこう:2010/06/16(水) 23:36:27
1列のデータにするのが正しいExcelの使い方だが、A列からM列でもピボットは使える。
426名無しさん@そうだ選挙にいこう:2010/06/16(水) 23:42:46
>>424
並び替えて上と異なり下と同じものを抽出。
427名無しさん@そうだ選挙にいこう:2010/06/17(木) 00:00:21
>>422
ピボットテーブルでデータの種類と個数を調べるなんてアホでもできる
食わず嫌いしてないでさっさとぐぐって覚えろ
428423:2010/06/17(木) 00:02:58
>424
A列だけに整形できた後に、B1セルに以下の式をいれて下にフィルコピーしてください。
=IF(AND(COUNTIF(A:A,A1)>1,COUNTIF(A1:$A$1,A1)=1),A1,"")
同一内容が2個以上で、最初に出現したものだけがB列に表示されます。
後はオートフィルタでB列の▽をクリックし、空白以外のセルを選択するといいです。
整形には、並び替えは不要です。

並び替えまでするのなら>426さんの方法で、具体的にはB2セルに
=IF(AND(A1=A2,A2<>A3),A2,"")
を入れて下にフィルコピー。B1セルは空白のままとする。
そしてオートフィルタ以下の操作は上に同じです。
429名無しさん@そうだ選挙にいこう:2010/06/17(木) 00:08:54
COUNTIFは使ってはいかんよ。
>>426が正しい考え方。
430名無しさん@そうだ選挙にいこう:2010/06/17(木) 00:12:35
>429
COUNTIFに不具合でも?
431名無しさん@そうだ選挙にいこう:2010/06/17(木) 00:22:53
>>420
ありがとございます

>>421
そです
432名無しさん@そうだ選挙にいこう:2010/06/17(木) 00:35:04
>>430
おまいの頭が不具合
考えればわかることだ
433名無しさん@そうだ選挙にいこう:2010/06/17(木) 00:56:41
>>417
どこにどうふり分けたいのか全然わかんねんだけど
434404 ◆RKItBcY.UI :2010/06/17(木) 03:13:50
>>406
うまく動作してくれないです・・・

まず第一に、たとえば
 その魔物を倒すには「聖水」と「十字架」と「月桂樹の葉」が必要じゃ。
のセルで行うと一番最初のカギカッコの次から一番最後のトジカギカッコの手前の間まで全部の色が変わってしまいます
 その魔物を倒すには「<color>聖水」と「十字架」と「月桂樹の葉</color>」が必要じゃ。
みたいな感じになってしまいます
自分がやりたいのは
 その魔物を倒すには<color>「聖水」</color>と<color>「十字架」</color>と<color>「月桂樹の葉」</color>が必要じゃ。
みたいな感じです
なお、始まりと終わりの文字列が同じである文字列は全て同じ色にするつもりなので
毎回色を選択する必要はないです

次に、該当するセルはたくさんあるので一度にシート全体を範囲にしたいです
ひとつひとつセルを選んでいくのはとても無理です

最後に、これはちょっと後出し情報みたいになってしまいますが
(>>404のマクロだとこの点は解決済だったので書かなかったのですが)
例ではカギカッコ一文字の始まりと終わりでしたが
中には始まりも終わりも複数文字になることがあるので
始まり、終わり、双方とも任意の文字列を入力できるようにしてほしいです

>>404に貼ったマクロはかなりよくできていると思うので
そこからの改変はできないものでしょうか?
本当に後一歩のところまで来てるとは思うんですがカユイところに手が届かない感じです・・・
どうかよろしくお願いします
435名無しさん@そうだ選挙にいこう:2010/06/17(木) 04:06:39
>>434
修正前
SB_pos = InStr(1, tmpRange.Value, search_charB, 0)
search_charC_len = SB_pos - start_pos + search_charB_len
Do While start_pos > 0

修正後
Do While start_pos > 0
  SB_pos = InStr(start_pos + 1, tmpRange.Value, search_charB, 0)
  search_charC_len = SB_pos - start_pos + search_charB_len
436名無しさん@そうだ選挙にいこう:2010/06/17(木) 09:33:06
【1 OSの種類         .】 WindowsXPsp2
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel 塗りつぶし コピー 数字
で検索しました。

初級な質問かもしれないのですが、Excelでセルを塗りつぶした後、
その塗りつぶしたセル達に数値だけをズラズラとコピーするにはどうすれば良いのでしょうか?
数値をコピーすると塗りつぶしたセルも真っ白になってしまったりするので・・・。
437名無しさん@そうだ選挙にいこう:2010/06/17(木) 09:36:51
>436
編集−形式を選択して貼り付け−「値」にチェック
438名無しさん@そうだ選挙にいこう:2010/06/17(木) 09:37:01
>>436
コピーしたあと、貼り付けしたいセルを右クリック→形式を選択して貼り付け→値
439名無しさん@そうだ選挙にいこう:2010/06/17(木) 09:39:11
>>437-438
ありがとうございます!解決できました!
まだまだ勉強不足ですね・・・、お恥ずかしい
440名無しさん@そうだ選挙にいこう:2010/06/17(木) 12:44:40
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ(打ち込んだりは出来ますが自作は出来ないです)
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel 住所 封筒印刷 複数

EXCELに記載した住所録から任意の一つの住所を選択して
封筒に印刷するマクロを作りました。
しかし、この方法だと複数には対応できません。
マクロを手直しする事で複数選択に対応できないでしょうか?

封筒の巻き込みを防ぐために封筒を上下逆にしているため
Word2007の差し込み機能を使う方法だと対応できませんでした。
(具体的には角2封筒の印刷時)

何か知恵をお貸しください。
441名無しさん@そうだ選挙にいこう:2010/06/17(木) 12:48:19
マクロです。
住所録は列Aから順に名前、郵便番号、住所、住所(市町村名以降)
作業シートでは住所録で1234567と記入された郵便番号を〒123-4567と直しています。


Sub 角2封筒印刷()
'
' 角2封筒印刷 Macro
'

'
ActiveCell.Range("A1:D1").Select
Selection.Copy
Sheets("住所録").Select
Sheets("角2封筒印刷画面").Select
Range("AZ43").Select
ActiveSheet.Paste
Range("BA43").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("作業シート(変更禁止!!)").Select
Range("D12").Select
ActiveSheet.Paste
Sheets("角2封筒印刷画面").Select
Application.CutCopyMode = False
ExecuteExcel4Macro "PRINT(2,1,1,1,,,,,,,,2,,,TRUE,,FALSE)"
Sheets("住所録").Select
ActiveCell.Select
End Sub

よろしくお願いします。
442404 ◆RKItBcY.UI :2010/06/17(木) 12:57:07
>>435
できましたスゴイですカンペキですあなたが神か計画通り!
ありがありがとうございましたありがー
443名無しさん@そうだ選挙にいこう:2010/06/17(木) 13:11:25
>>441
解読するのがめんどくさいのでヒントだけ
For Each xxxx in yyyy という命令を使うと、複数選択されたセルを順番に1つずつ処理できる

For Each 以下略
  (印刷マクロ)
Next

みたいな感じで使う
444横から失礼:2010/06/17(木) 13:40:41
>441
マクロの自動記録そのままのようですね。繰り返しとか分岐は自動記録では書けないので少し勉強が必要です。
で、>443さんの処理だと宛名1件分の4個のセルを4件分のデータとみなしてしまうので、初心者には???と
なりそう。

印刷対象を複数指定する方法はどうするんですか? エクセルの普通の印刷のときのように 1-5,8,9,10 みたいな
番号指定する方法? それとも住所録シートの各行のどこかの列に ○ とか 1 とか入力する方法?
それとも、まったく別の方法?
445名無しさん@そうだ選挙にいこう:2010/06/17(木) 13:52:15
スレ違いになるけどWordの差し込み印刷使ったほうが・・・2003以前だと使いにくかったかもしれないけど
446名無しさん@そうだ選挙にいこう:2010/06/17(木) 13:52:29
>>443
ありがとうございます。
さっそく調べてみて

Dim r As Range
For Each r In Selection

>>441のマクロ

Next r

をつけてみて試したところ・・・
一番最初に選択した住所が複数印刷される結果になりました・・・


>>444
アドバイスありがとうございます。

> 印刷対象を複数指定する方法はどうするんですか? エクセルの普通の印刷のときのように 1-5,8,9,10 みたいな
> 番号指定する方法? それとも住所録シートの各行のどこかの列に ○ とか 1 とか入力する方法?
> それとも、まったく別の方法?
これは私向けへのレスですよね?
選択方法は印刷したい名前の部分を選択範囲にしてマクロを動かす方法で行っています。
447444:2010/06/17(木) 14:28:26
>446
あ、やっぱり1件のデータを複数データとみなしましたね。
>選択方法は印刷したい名前の部分を選択範囲にしてマクロを動かす方法
選択範囲がA1:D1の4個のセルなので、名前だけじゃなく郵便番号、住所1,2まで選択ですよね。

今使っているシートのうち、作業シート(変更禁止!!)は用いず、住所録と角2封筒印刷画面の
2シートだけで1枚ずつでも、まとまって印刷でもできるような方法があります。
自分が年賀状の宛名印刷に使っている方法です。
封筒印刷画面で「次」「前」「1件印刷」の3個のボタンで操作できます。これに「全部印刷」
の機能を加えるのも割と簡単です。興味があるなら資料を準備しますが。
448名無しさん@そうだ選挙にいこう:2010/06/17(木) 17:04:33
>>446
For Each r In Selection
だとセルごとの繰り返しになってしまうので、
For Each r In Selection.Rows
とやれば1行ごとの繰り返しになる。

基準となるセルの行番号が変数 r に入るので、
その行の左端のセルは Cells(r, 1) で表すことができるようになる。
これを応用するとマクロの最初の行は
Cells(r, 1).Range("A1:D1").Select
のように書き換えることができる。

あとはそのままいけるはず
449名無しさん@そうだ選挙にいこう:2010/06/17(木) 18:27:29
>440
逆向き印刷できないのはWORDじゃなくて
プリンタドライバのせい。
普通付いてると思うけど
プリンタのプロパティ、見た?
450名無しさん@そうだ選挙にいこう:2010/06/17(木) 18:55:31
みなさんありがとうございます。

>>445
しかし、word2007の差し込み機能だとうまくできませんでした。

>>447
> 選択範囲がA1:D1の4個のセルなので、名前だけじゃなく郵便番号、住所1,2まで選択ですよね。
書き方が悪くてすみません。名前部分だけを選択して後はマクロで選択するように
設定しています。
現在では一つのセル選択でしか印刷できないのでこれを住所録の中からCtrlキーで任意に選択して
印刷したいと考えています。

>>448
なるほど。
今やってみた限りだとそれで上手く動かなかったので
出来る範囲で試してみてまた報告します。

>>449
それがプリンタドライバの方も逆向きに対応しておらず
(hpのofficejet 7000 E809a)
wordの差し込みも逆にすることができませんでした。

ttp://www.dotup.org/uploda/www.dotup.org969879.bmp
したい印刷方法は一番右の枠外にあるやりかたです。

451名無しさん@そうだ選挙にいこう:2010/06/17(木) 20:15:52
C3セルに名前を入れて、その名前をファイル名にして保存するとき、
既に保存されてるファイルがあったら末尾に-2、-3と付けて保存するには
どう書けばいいでしょうか?

Sub 保存()
 FOL = "D:\data\"
 SBN = Range("C3").Value
 TWB = ThisWorkbook.Name
 Workbooks(TWB).SaveAs Filename:=FOL & SBN & ".xls"
End Sub

C3セルに"京子"が入ってたら、最初は "京子.xls"、2回目は "京子-2.xls"、
3回目は "京子-3.xls"になります。
よろしくお願いします。
452名無しさん@そうだ選挙にいこう:2010/06/17(木) 20:30:44
>451
ファイルが存在するかどうかのチェックは↓参照。
http://officetanaka.net/excel/vba/filesystemobject/filesystemobject10.htm
OfficeTANAKA FileSystemObjectオブジェクト - FileExistsメソッド

あとは"-2.xls","-3.xls","-4.xls"・・・と変化させる部分の繰り返しを組み合わせる。
453名無しさん@そうだ選挙にいこう:2010/06/17(木) 21:01:59
>>452
ありがとうございます。
1回目はおk、2回目になると×のところで止まってしまします。
どこを直せばいいでしょうか?

Sub test10()
''C:\Work\Sample.txtが存在するかどうか調べます
Dim FSO As Object, Target As String
FOL = "D:\data\"
SBN = Range("C3").Value
TWB = ThisWorkbook.Name
For i = 2 To 10
 Set FSO = CreateObject("Scripting.FileSystemObject")
 'Target = "C:\Work\Sample.txt"
 Target = FOL & SBN & ".xls"
 If FSO.FileExists(Target) Then
  'MsgBox Target & "が存在します"
  Workbooks(TWB).SaveAs Filename:=FOL & SBN & "-" & i & ".xls" ←×
 Else
  'MsgBox Target & "は存在しません"
  Workbooks(TWB).SaveAs Filename:=FOL & SBN & ".xls"
  GoTo 100
 End If
 Set FSO = Nothing
Next
100
End Sub
454名無しさん@そうだ選挙にいこう:2010/06/17(木) 21:34:31
>453 試してはいません。あしからず
TWB = ThisWorkbook.Name rem ここまでは>453に同じ
i = 1
Set FSO = CreateObject("Scripting.FileSystemObject")
Do
  If i = 1 Then
    Target = FOL & SBN & ".xls" rem 最初だけ
Else
    Target = FOL & SBN & "-" & i ".xls" rem 2回目以降
  EndIf
  If FSO.FileExists(Target) Then   rem フルパスTargetで存在したら
    i = i + 1  rem 変数を+1してループ継続
  Else      rem 存在しないときだけ
    Exit Do   rem ループを脱出
  EndIf
Loop
Workbooks(TWB).SaveAs Filename:=Target rem ファイルセーブ
Set FSO = Nothing
End Sub

ファイル存在チェックを「存在しない」になるまで繰り返すこと。
そのために先にフルパスの組み立てを行っておけばいいはず。
FSOの処理ははじめとおわりに1回ずつでいいと思う。
455名無しさん@そうだ選挙にいこう:2010/06/17(木) 21:58:32
>>454
ありがとうございます。
Target = FOL & SBN & "-" & i & ".xls"でおkでした。
456名無しさん@そうだ選挙にいこう:2010/06/17(木) 23:19:38
質問です。
ボタンと図形が混在してるシートがあり、
ボタンをクリックしたら特定のボタンだけを削除してから
ブックを保存するにはどうすればいいでしょうか?
457名無しさん@そうだ選挙にいこう:2010/06/18(金) 00:01:05
>>456
特定のボタンを削除してブックを保存するマクロを作ってボタンに登録。
でも1回目で特定のボタンが消えるから、そのマクロは二度と使えない。とても無駄な作業になる。
458名無しさん@そうだ選挙にいこう:2010/06/18(金) 05:38:07
>>456
>>457の方式を別のシートへボタン作って登録しておけばOK.
また、マクロの場合は通常”Ctrl+□”で作動する設定をするので
>>457の>そのマクロは二度と使えない。
ということはないでしょう。
459名無しさん@そうだ選挙にいこう:2010/06/18(金) 08:36:14
消去する対象が無くなってしまうから二度と使えないって意味では?
460名無しさん@そうだ選挙にいこう:2010/06/18(金) 09:10:52
>>457
特定する方法によるな


一番番号の大きい画像
一番右の画像、等
461複乳:2010/06/18(金) 09:13:06
>>456
Private Sub CommandButton2_Click()
Shapes("CommandButton1").Delete
End Sub
こんな漢字?保存はマクロの記録でやっておくれ
462名無しさん@そうだ選挙にいこう:2010/06/18(金) 09:19:17
>>456
ESPしてみた。

たぶんボタンと図形が混在しているシートがたくさんあり
その中から一定の条件を満たすボタンだけ削除し保存したい。
面倒だから、それぞれボタン一発でやりたい

ということかな?
463名無しさん@そうだ選挙にいこう:2010/06/18(金) 11:45:34
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2002
【3 VBAが使えるか    .】 NO
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 現在時刻 条件付き書式設定


初心者です。 スケージュール表を作っていて、

A1に9:00 B1に9:30 C1に10:00・・・・といった感じで並んでいます。(h:mm)

やりたいことは経過した時間の部分は赤く表示させたい為、条件付き書式設定を
使用したいのですが、 セルの値が 次の値より小さい =NOW() で設定しても上手くいきません。

シートには今日のスケジュールのみしかない為、日にちは気にせず 現在時刻とだけ比較したいです。
初歩的かもしれませんが、お知恵をお借りしたいです。よろしくお願い致します。

今日のスケジュールのみな為、
464名無しさん@そうだ選挙にいこう:2010/06/18(金) 11:47:11
すいません。 最後の行はシカトしてくださいです。(m´・ω・`)m ゴメン…
465複乳:2010/06/18(金) 12:09:35
>>463
シリアル値の問題
A1のように時刻だけ入れると 1900/1/0 の 9:00なんだけど(シリアル値で0.375)
now()は2010/6/18 12:05 と返ってくる(シリアル値で40347.5048・・)

要するに日付部分をひけばいいので
=NOW()-TODAY()とすれば解決
466名無しさん@そうだ選挙にいこう:2010/06/18(金) 12:36:48
>>463
数式が にして

A1セルだとして

=A1<(NOW()-INT(NOW()))

こんな感じにすればいいんではないかい?
467463:2010/06/18(金) 13:15:34
>>465
ありがとうございます。 出来ちゃいました(`・ω・´)
TODAYのが邪魔だったワケですね。自分でも理解できてよかったです。


>>466
ありがとうです。
やってみましたが なんか上手くいかなかったです。でもありがとうございました。


(`・ω・´)ありがとおおおおおおおおおおおおおおおおおおおおおおお
468名無しさん@そうだ選挙にいこう:2010/06/18(金) 16:15:34
数学がほとんどできない馬鹿ですけど
回答者のみなさんと同じレベルのエクセルを身につけたいと思っています

そこでみなさんがスキルアップのために利用したサイトとありましたら教えていただけないでしょうか
469名無しさん@そうだ選挙にいこう:2010/06/18(金) 16:19:37
ヒント Excelと数学は関係ない。ていうかまったく必要ない。

どっちかと言うと数学じゃなくて算数だよ。
よく見てごらん、ほとんど足し算と引き算しかしてないじゃない。
その回数がちょっと多いだけ。あとはパズルみたいなもん。
470複乳:2010/06/18(金) 16:25:55
>>468
関数といっても数学とは関係ないが、関数は一通り使ってみるといい
「エクセル 関数」でぐぐれば一覧が出てくる

個人的に役にたったサイトは↓。そのままぐぐればトップにでてくるよ
インストラクターのネタ帳
オフィス田中
471名無しさん@そうだ選挙にいこう:2010/06/18(金) 16:43:05
はじめまして。
長文&改行が多いので分割して投稿させてくださいませ。m(_ _)m

現在、EXCEL2003で以下の処理をマクロで実行しようとしているのですが
1004のエラーが発生する場合と、発生しない場合とがあって困っています。
誰か考えられる原因を教えて下さい。

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


【EXCELの設定】
「オートフィルター」を設定
「ブックの共有」、「ブックの保護」、「シートの保護」を設定

【条件】
「フィルター」を設定し、絞込みをおこなっておく。

【EXCEL終了前の処理】
Workbook_BeforCloseイベント内でFilterModeがTrueの場合には
ShowAllDataを実行して、全部のデータを表示してから保存後にEXCELを終了する。
472名無しさん@そうだ選挙にいこう:2010/06/18(金) 16:44:30
>>471 の続きです。

【エラーの発生原因】
ShowAllDataを実行する際にエラーとなる

【1004実行時エラーの発生するケース】

・「ブックの共有」→「フィルター」設定→Workbook_BeforClose→EXCELの終了
・「ブックの共有」→「フィルター」設定→「ブックの共有解除」→Workbook_BeforClose→EXCELの終了

【エラーが発生しないでShowAllDataが正常に実行されるケース】
・「ブックの共有解除」→「フィルター」設定→Workbook_BeforClose→EXCELの終了
・「ブックの共有解除」→「フィルター」設定→「ブックの共有」→Workbook_BeforClose→EXCELの終了


当初は、ブックの共有が掛かっているとShowAllDataは使えないのかと
思ったのですが、そうでもないような・・・。
強いて言えば、ブックをOPENする際にブックの共有設定がONかOFFかという点
位かと。
ただ、終了前にブックの共有を設定したり解除した際にはMultiUserEditingに正しい
値が反映されているので、SowAllDataはブックのOPEN時に共有設定をPublic変数に
保存しておいて、SowAllDataを実行する際には、その変数で条件判断して実行する
かしないか抑制しないといけないものなのでしょうか?

長文すみましぇん。m(_ _)m
473名無しさん@そうだ選挙にいこう:2010/06/18(金) 16:46:02
MOGUはどうですか?
474名無しさん@そうだ選挙にいこう:2010/06/18(金) 17:27:30
>>471
If ActiveSheet.FilterMode Then
ActiveSheet.ShowAllData
Else
MsgBox "?"
End If
とかフィルタの状態をみるのかな
475名無しさん@そうだ選挙にいこう:2010/06/18(金) 19:26:23
2000から2003に移行したのですが、関数の入力が煩雑になっていて、欝です。がなにかうまい対処法はないものでしょうか。
2003では関数を出すfxボタンを押すと、関数のダイアログボックスが出るのですがこれが非常に使いにくいです。
2000なら「=」ボタンを押すとすぐ左に関数一覧が表示されて、それをシングルクリックするだけでいけました。
ところが、2003だと、fxボタンを押すと、関数一覧のダイアログボックスが画面中央に出ます。遠いです。そして、関数の選択もダブルクリックしないといけなくなりました。
ダイアログボックに表示される「関数の検索」も邪魔です。
細かいようなのですが、関数はよく使うのでとても不便です。
2000の時のようにさくっと関数入力がしたいのですがうまい方法はないものでしょうか。
476名無しさん@そうだ選挙にいこう:2010/06/18(金) 20:07:08
2000に戻す以外に解決方法はない
477名無しさん@そうだ選挙にいこう:2010/06/18(金) 21:43:59
>>473
mougのことか?
あちらの一般掲示板はかなりひどい。
まぁ追加書き込みできない仕様じゃレベルが低くなるのはしょうがねーだろうな。
なかにはまともな回答者も数人はいるんだが、残念ながら悪貨が良貨を駆逐しつつある。
478名無しさん@そうだ選挙にいこう:2010/06/18(金) 23:39:58
>>477
悪貨って誰よ?
おまえはまともな回答者なのか?
479名無しさん@そうだ選挙にいこう:2010/06/19(土) 00:18:12
教えて下さい。

生徒の成績(合計点)をA〜Cで評価する場合の式が分かりません。
合計点165点以上はA
155〜164点はB
154点以下はCです。
AとBだけならできるのですがCが入ると分かりません。
480456:2010/06/19(土) 00:25:35
>>457-462
説明不足ですみません。
注文書.xlsにマクロを書きます。
シートが複数あって、その中に"LIST"というシートがあります。
そのシートにある[保存]ボタンをクリックすると、LISTというシートだけを
0618_注文書.xlsとして保存します。
図形とボタンが3つあるので、3つのボタンだけを削除したいです。


Sub 保存する()
Book_Name = ThisWorkbook.Name
myPath = ThisWorkbook.Path & "\"
Sheet_Name = ActiveSheet.Name
myDate = Format(Date, "mmdd_")
Sheets(Array(Sheet_Name)).Copy
Shapes("CommandButton1").Delete
ActiveWorkbook.SaveAs Filename:=myPath & myDate & Book_Name
ActiveWorkbook.Close 'SaveChanges:=False
End Sub

Shapes("CommandButton1").Deleteがコンパイルエラーになってしまいました。
481名無しさん@そうだ選挙にいこう:2010/06/19(土) 00:35:25
>>479
=IF(A1>=165,"A",IF(A1<=154,"C","B"))
482名無しさん@そうだ選挙にいこう:2010/06/19(土) 00:38:00
>>480
シート名は省略できない。たとえばこう書けばエラーにならない
ActiveSheet.Shapes("CommandButton1").Delete
483456:2010/06/19(土) 02:47:11
>>482
実行時エラー '-2147024809 (80070057)':
指定した名前のアイテムが見つかりませんでした。
とメッセージが出ます・・・
484名無しさん@そうだ選挙にいこう:2010/06/19(土) 02:57:37
>>483
>>482はあくまでも例
実際は自分の作ってるブックに合わせてシート名とボタン名を書き換える
485名無しさん@そうだ選挙にいこう:2010/06/19(土) 06:22:51
>>481 式ありがとうございました。
嬉しくて感激です!ヽ(^o^)丿
数字出してみます。本当にありがとうございました!!!
486475:2010/06/19(土) 07:15:56
>>476
マジですか〜〜。
なんかもう2003って使いにくいだけですね・・・。なんで金払って新しいの買って、
前より使いにくくなってるのか理解に苦しみます。

とりあえず、ありがとうございました。
487名無しさん@そうだ選挙にいこう:2010/06/19(土) 08:25:24
>>486
だいじょうぶだ。2007になればもっと使いにくくなっている
488名無しさん@そうだ選挙にいこう:2010/06/19(土) 09:32:16
会社のExcel2007で作ったxlsxのファイルを家のExcell2003で開く方法はありませんか?

会社のExcel2007で旧バージョンのフォーマットのxlsで保存すればいいのは知ってますが、今回は家にいるのでその方法は使えません。
今、xlsxのファイルを家のExcel2003で開く必要がありまして。
489名無しさん@そうだ選挙にいこう:2010/06/19(土) 09:41:38
開くだけだったらExcelビューアなかったっけ?
490名無しさん@そうだ選挙にいこう:2010/06/19(土) 11:15:19
491名無しさん@そうだ選挙にいこう:2010/06/19(土) 11:22:31
>>485
ちなみに4つ以上に分類するときは、ちょっと変えると見やすい
=IF(A1>=165,"A",IF(A1>=155,"B",IF(A1>=55,"C","D")))
492名無しさん@そうだ選挙にいこう:2010/06/19(土) 11:24:08
ビューアとかコンバータが公式から落とせるけど
2007で追加された新機能は基本的に無視されるからファイルによってはまともに開けない
Office2010の体験版入れた方が確実(ただし会員登録が必要)

あとはOOoを使うという手もあるけど互換性がちょっと低いのと使い勝手も全然違う
493名無しさん@そうだ選挙にいこう:2010/06/19(土) 12:42:26
先生、8つ以上は?
494名無しさん@そうだ選挙にいこう:2010/06/19(土) 12:44:46
>>479
条件が3つ程度ならIF関数で充分だが、沢山ある時は表を作ってLOOKUPの方が簡単。
下のような表がC1:D5にあるとすれば
=LOOKUP(A1,C$1:D$5)
=LOOKUP(A1,C$1:C$5,D$1:D$5)
など。

0 E級
20 D級
30 C級
50 B級
70 A級
90 S級
495名無しさん@そうだ選挙にいこう:2010/06/19(土) 13:08:43
>>440-441,446,450です。
あれから色々やってみて満足に動くようになりました。
皆さんのおかげで助かりました。ありがとうございます。
改善したマクロも載せておきますね。

Dim r As Range
For Each r In Selection.Rows

Dim I As Integer
I = r.Row

Cells(I, 1).Range("A1:D1").Select
Selection.Copy
Sheets("長型3号(2)").Select
Range("Z26").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("AA26").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("作業シート(変更禁止!!)").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("長型3号(2)").Select
Application.CutCopyMode = False
ExecuteExcel4Macro "PRINT(2,1,1,1,,,,,,,,2,,,TRUE,,FALSE)"
Sheets("住所録").Select
Cells(I, 1).Select

Next
End Sub
496名無しさん@そうだ選挙にいこう:2010/06/19(土) 13:29:49
B評価の幅がえらく狭いな
497名無しさん@そうだ選挙にいこう:2010/06/19(土) 13:41:38
>>496
D評価だろ?
等間隔にするとINTとか使えるから、それを使えないようにした。
498名無しさん@そうだ選挙にいこう:2010/06/19(土) 13:47:38
よく見たらC1:D6だったな。
まぁわかるだろう。
499名無しさん@そうだ選挙にいこう:2010/06/19(土) 14:05:11
>>493
シート上に表を作らずにLOOKUPで振り分ける方法がある。
こんなふうに昇順で並べて書けば、何段階でも分類できる。
=LOOKUP(A1,{0,30,100,155,165},{"E","D","C","B","A"})
         ↑          ↑
        範囲の下限     評価

欠点は微妙に計算が遅いこと。1000個ぐらい並べると目に見えてExcelの動作がもっさりしてくる。
最近のパソコンはそれほどでもないかな?
まあ、同じ式をたくさん並べるときは表を作った方がいいだろうね。メンテもやりやすくなるし。
それと、このスレには配列が大嫌いなやつがいて罵倒してくること。
500名無しさん@そうだ選挙にいこう:2010/06/19(土) 14:33:39
>>499
罵倒観音は俺もその一人だなw
間違った使い方するやつしか罵倒しないけどね。
SMALLを使うやつは特に罵倒したくなる。
おめーはチンポもSMALLだろってねw
501名無しさん@そうだ選挙にいこう:2010/06/19(土) 14:37:00
観音様は女だったか。
=LOOKUP(A1,{0,30,100,155,165;"E","D","C","B","A"})
でもいいんだな。
502456:2010/06/19(土) 16:48:10
>>484
シート名は"LIST"です。
ボタン名は"保存"です。
で、どう書けばいいですか?
503名無しさん@そうだ選挙にいこう:2010/06/19(土) 17:36:05
>>502
ボタンに「表示されてる文字」と「名前」は関係ないから、まずはボタンの名前を調べる。
デザインモードに切り替えてからボタンを右クリックしてプロパティを開く。
出てきた一覧表の1行目に

(オブジェクト名) CommandButton1

みたいに書いてあるので、この右側の「CommandButton1」の部分がボタンの名前になる。
504456:2010/06/19(土) 18:05:36
>>503
右クリックしてもプロパティが出てきません。
http://uproda.2ch-library.com/258719gML/lib258719.jpg
505名無しさん@そうだ選挙にいこう:2010/06/19(土) 19:23:12
>>504
それはフォームのボタンだから、名前を調べるのはちょっと手間がかかる。
まずデザインモードを解除して、もう一度デザインモードに入り直す。
次にマクロの記録→OKをクリックしてから、名前を調べたいボタンをクリック、
点線で囲まれたらマクロの記録を終了。記録されたマクロを確認すると

ActiveSheet.Shapes("Button 123").Select

みたいになってるはず。この "Button 123" のところがボタンの名前。
で、この場合のボタンを削除するマクロは

ActiveSheet.Shapes("Button 123").Delete

になる。
506456:2010/06/19(土) 19:39:38
>>505
Application.Run "注文書.xls!保存する"しか記録されません・・・orz
507名無しさん@そうだ選挙にいこう:2010/06/19(土) 19:45:36
>456,504
当方Excel2003で、起動してすぐは右クリックしても「プロパティ」の項目は出ませんでした。
なにか操作してたら出るようになりました。何したっけ?

とりあえず、メニューから 表示>ツールバー>コントロールツールボックス
で、このツールバーが独立して画面上に存在するときの
右上隅のアイコン(マウスカーソルをのせると「プロパティ」って表示される)をクリックする。

>505
>504の画像を見る限り、シート上のボタンのように見えます。フォームのボタンだと、
VBA編集画面のフォームの上にしか置けないのでは?
508507:2010/06/19(土) 19:50:19
と思ったら、フォームのボタンもシート上に置けるんですね、知らなかった。

>456,504 コマンドボタンと、フォームツールバーによるボタンとの見分け方がわかります。
エクセル マクロ
Excelの「コマンドボタン」の使い方
http://allabout.co.jp/gm/gc/3919/
509名無しさん@そうだ選挙にいこう:2010/06/19(土) 19:52:08
コントロールツールボックス vs フォームじゃ、話が噛み合わんわなwww
510507,508:2010/06/19(土) 20:06:46
コマンドツールバーで作ったボタンだろうが、フォームツールバーで作ったボタンだろうが、
デザインモードでそのボタンをクリックすると、通常ならセル位置を表示する場所
(画面の左上の方、数式を入れる部分の左隣)にオブジェクト名が表示されますよ。
そこをクリックして[Ctrl]+[C]でコピーできます。
フォームツールバーによるボタンだと既定値は ボタン 1 になります。
コントロールツールバーによるものの既定値は CommandButton1 になります。
※ボタンに表示されている文字列はCaptionであり、オブジェクト名ではありません。
511名無しさん@そうだ選挙にいこう:2010/06/19(土) 20:45:14
>>506
じゃあマクロの記録のあと、目的のボタンを右クリックしてから記録の終了
512名無しさん@そうだ選挙にいこう:2010/06/19(土) 20:46:59
>>510
フォームボタンの場合はボタン名じゃなくてキャプションが表示されるのでこの場合は使えない。
513名無しさん@そうだ選挙にいこう:2010/06/19(土) 20:48:07
>>509はわかってない
斜め読みして茶々入れただけ
514名無しさん@そうだ選挙にいこう:2010/06/19(土) 20:49:45
>>510
>コマンドツールバーで作ったボタンだろうが、フォームツールバーで作ったボタンだろうが、
>デザインモードでそのボタンをクリックすると、通常ならセル位置を表示する場所
>(画面の左上の方、数式を入れる部分の左隣)にオブジェクト名が表示されますよ。

マクロが登録されてなければそれでいい。
お前が馬鹿丸出しなのは、>>506を読んでないか理解してないところ。
さらにエスパーすれば、480でボタン3個と書かれてるから保存ボタンなら
「ボタン 1」になる可能性は低いと推測される。

>>506
デザインモードは気にすることなくボタンを右クリックすれば分るはず。
515名無しさん@そうだ選挙にいこう:2010/06/19(土) 20:50:54
うまく選択できないときは「オブジェクトの選択」モードで目的のボタンを囲めばいい
516名無しさん@そうだ選挙にいこう:2010/06/19(土) 20:54:23
もちろんわかってるってば。
右クリックでコンテキストメニューに「プロパティ」が出るのはコントロール、出ないのはフォームのボタン。

フォームボタンの場合、マクロが登録されていなければ左クリックはActiveSheet〜Select、
登録されている場合はApplication.Runになる。

フォームボタンの場合はセル名のところに表示されるのはキャプションであってボタン名じゃない。
517名無しさん@そうだ選挙にいこう:2010/06/19(土) 20:55:57
ついでに。
詳しそうだから、フォームのボタン名を一発で調べる方法があったらぜひ教えてくれ。

いや、教えてください。
518名無しさん@そうだ選挙にいこう:2010/06/19(土) 21:23:11
初歩的な質問ですみません。
取引先から送られてくるエクセルでシートの外(?)の部分がグレーになっているのですが
どうやったらシートの範囲を広げられるのでしょうか。
範囲を広げて、その部分に計算式やプルダウンリストの選択肢を入れたいのですが。。
519名無しさん@そうだ選挙にいこう:2010/06/19(土) 21:35:14
>>518
表示→標準
520名無しさん@そうだ選挙にいこう:2010/06/19(土) 21:55:02
>>517
ボタンをクリックして、名前ボックスを見る
521名無しさん@そうだ選挙にいこう:2010/06/19(土) 22:06:09
>>517
デザインモードでボタンをクリック→数式バーを見る。
522名無しさん@そうだ選挙にいこう:2010/06/19(土) 22:10:57
>518
>519さんの説明で「標準」にするか「改ページプレビュー」にするかにかかわらず、
印刷範囲は変わりません(印刷プレビューで確認してください)

灰色部分に計算式やプルダウンリストは入力できませんか? 普通なら入力できるはず。
もし、入力できない場合はセルの保護とシートの保護がかかっていると思われます。

523名無しさん@そうだ選挙にいこう:2010/06/19(土) 22:20:02
519さん、522さん、早速ありがとうございます。
今手元にそのエクセルが無いので未確認なのですが、月曜にでも表示を確認してみます。
グレー部分は、何も入力できなかったので保護がかかっているのかも知れません。
524複乳:2010/06/19(土) 22:35:01
灰色になってるところの列番号(上のABCDE..ってやつ)がIV列まで無く、途中で切れてるなら
端まで非表示になってる
行番号(←の12345・・)も65536行までなければ同様

CTRL+A押して列番号のAを右クリック、すべて表示を洗濯
525456:2010/06/19(土) 23:15:26
>>511
ActiveSheet.Shapes("Button 152").Select
ActiveSheet.Shapes("Button 153").Select
ActiveSheet.Shapes("Button 154").Selectになりました。
ボタン3個しかないのに何で?
526456:2010/06/19(土) 23:23:23
ActiveSheet.Shapes("Button 152").Delete
ActiveSheet.Shapes("Button 153").Delete
ActiveSheet.Shapes("Button 154").Deleteで消えました。
ありがとうございました。
527名無しさん@そうだ選挙にいこう:2010/06/19(土) 23:34:37
>>526の時刻に注目。
528名無しさん@そうだ選挙にいこう:2010/06/20(日) 00:00:00
529名無しさん@そうだ選挙にいこう:2010/06/20(日) 05:14:31
>>525
たぶん、そのシートの作成者がボタンを何度も作ったり消したりしたんでしょう。苦労の跡。
530名無しさん@そうだ選挙にいこう:2010/06/20(日) 14:45:30
>>529
苦労じゃなく、マクロでシート作成>シート削除だったりして。
531名無しさん@そうだ選挙にいこう:2010/06/20(日) 16:15:52
>>382
ありがとうございました!
532名無しさん@そうだ選挙にいこう:2010/06/20(日) 18:05:37
>>520 >>521
その方法でコントロールのボタン名は出たけどフォームのボタン名は出ませんでした
533名無しさん@そうだ選挙にいこう:2010/06/20(日) 18:29:19
>532
>515参照 オブジェクトの選択モードとは、図形モードにして白矢印をクリックした状態。
マウスカーソルが 太い十字 から 線を組み合わせた十字 になる。
534名無しさん@そうだ選挙にいこう:2010/06/20(日) 20:50:11
IF文で効率のいい書き方を教えてちょ。

If a=1 Then
 あ
EleseIf a=2 Then
 い
Else
 あ
 い
End if

「あ」と「い」は色々な処理で十数行ありんす。
535名無しさん@そうだ選挙にいこう:2010/06/20(日) 20:54:51
if文じゃなくてSelect Case使えば?
536名無しさん@そうだ選挙にいこう:2010/06/20(日) 21:08:11
i = Cells(1, 1)

Select Case i
 Case 1

  Cells(1, 1) = "さわじり"
 Case 2
  Cells(1, 1) = "えりか"
 Case Else
  Cells(1, 1) = "べつに…"
End Select

すきに改変しなされ。
537名無しさん@そうだ選挙にいこう:2010/06/20(日) 22:00:13
わかりましぇーーーーん(><)
538名無しさん@そうだ選挙にいこう:2010/06/20(日) 22:08:53
>534
あ、い、という部分が十数行あって同じような処理を繰り返し記述する(あ>い となる部分)のが
いやだ!ということなら、あ、い、それぞれひとつの手続(private sub)にでもまとめたら?
If a=1 Then
 call あ
EleseIf a=2 Then
 call い
Else
 call あ
 call い
End if

private sub あ()
 あ の処理
end sub

private sub い()
 い の処理
end sub
539名無しさん@そうだ選挙にいこう:2010/06/20(日) 22:13:46
おいおい・・・
ちょっとでも書き換えがあるとわからなくなるんかいな

Select Case a
 Case 1
  あ
 Case 2
  い
 Case Else
  あ
  い
End Select

>>534 でやってることと全く同じにしたで。
これ以上のことは書きようが無いで。エスパーやないからな。
540538:2010/06/20(日) 22:15:01
>534
http://okwave.jp/qa/q2717350.html
の ベストアンサー以外の回答 のところが参考になるかも

(抜粋)
短いマクロであればそうでもありませんが、基本的な考え方としては
・処理ごとに部品化する事で再利用しやすくする。
・マクロの処理順と関係なく機能ごとにまとめておけるのでメンテナ
ンスや変更などが容易になる。
・問題が起きた時にどの機能が悪いのかテストしやすくなる。
などがあげられます。それよりも、見た目がすっきりすると言うのは
結構重要で、みやすくなる事で打ち間違いなどのバグが少なくなります。
541538:2010/06/20(日) 22:18:30
>539
たぶん効率がいい書き方ってのが 同じようなことを何回も書きたくないってことではないかとエスパー。
あ、い、それぞれ十数行あるから「コピペ」すればいいんだろうけど、修正もれとかいろいろ考えると
十数行ともまったく同じ処理なら サブルーチン にまとめた方がいいと思う。
542名無しさん@そうだ選挙にいこう:2010/06/20(日) 22:18:35
cみたくbreak入れなければ流せると便利なんだけどな>select〜case
543名無しさん@そうだ選挙にいこう:2010/06/20(日) 22:37:03
>>538
やってみます。

>>539
536って、iが整数でそ?
なんで"さわじり"とかになるの?
544名無しさん@そうだ選挙にいこう:2010/06/20(日) 22:46:17
>543
i に文字列を入れているのではない
Select Case i  ← iの値によって処理を振り分ける
Case 1     ← iの値が1のとき
 Cells(1, 1) = "さわじり" 1列1行目(A1セル)の値を さわじり" にする
545名無しさん@そうだ選挙にいこう:2010/06/20(日) 22:49:20
>>541
なるほど。


>>543
|:3ミ
日本語で説明しようか。

A1 が…
1 だったら、A1 に さわじり を入れる。
2 だったら、A1 に えりか を入れる。
それら以外だったら、A1 に べつに… を入れる。

べつに、A1 へ入力する内容は整数だけ…とは、どこにも書いてないし、誰も言ってない。
i に値を入れた後は、べつに A1 の内容が変わろうとも i の内容は変わらない。
だから、最初に A1 に 2 を入れて >>536 の内容を二回実行すると、2回目には "べつに…" と入る。

なんでこう、ちょっとしたユーモアを解してくれないのか…
546538:2010/06/21(月) 00:24:22
>534が全くの初心者みたいだから、ひょっとするととんでもない書き方してるかも。

念のために、サブルーチンは元々のマクロとは別の部分に書くこと。

Sub 誤りの例()       Sub 正しい例()
 If a=1 Then          If a=1 Then
  call あ             call あ
 EleseIf a=2 Then      EleseIf a=2 Then
  call い             call い
 Else              Else
  call あ             call あ
  call い             call い
 End if             End if
 Private Sub あ()      End Sub
  あ の処理        Private Sub あ()
 End Sub            あ の処理
 Private Sub い()      End Sub
  い の処理        Private Sub い()
 End sub            い の処理
End Sub            End Sub
547名無しさん@そうだ選挙にいこう:2010/06/21(月) 00:46:32
なんで文書書くのに、エクセル使うやつがいるの?

文書はワード、表処理、計算はエクセル。
それぞれ役割がある。

自分が好きでエクセル使うのはいいけど、後の人のこと考えてくれ。
エクセルだと、文書がブツブツ切れて作業大変。

日曜にこんな変な仕事しなくちゃならない俺の身になってくれ。
548名無しさん@そうだ選挙にいこう:2010/06/21(月) 00:51:51
今宵、EleseIf に突っ込むやつはいねーのか?
549名無しさん@そうだ選挙にいこう:2010/06/21(月) 01:32:08
野暮だな。

検証してみれば elseif が eleseif だったら、実際には動かないんだから、そこで気づくさ。
550名無しさん@そうだ選挙にいこう:2010/06/21(月) 01:42:26
>>547
半分…いや9割9分、同意してやんよ。
フォーマット次第では Word より Excel のほうが楽になるけどな。
Alt+Enter とかが多少、面倒なくらいで。

でも、資料を全部パワポで作る上司は赦せん。
ネットワーク図なら Visio 使えよ…
551名無しさん@そうだ選挙にいこう:2010/06/21(月) 01:53:24
>>550
> でも、資料を全部パワポで作る上司は赦せん。
> ネットワーク図なら Visio 使えよ…

それは、可哀想だな。
会社の資料ってのは、一人の物ではないってのを、ゆっくり言い聞かせたい。
552名無しさん@そうだ選挙にいこう:2010/06/21(月) 01:57:35
てゆーか、文章を書くならExcelよりWordだろ?
見積書とか報告書なら兎も角、セル内改行で書いてるのか?
553名無しさん@そうだ選挙にいこう:2010/06/21(月) 02:02:42
>>552
セル内改行なのだよ。もう最悪。
文書が途中で切れるんだよ。

で、この資料の版を更新するんだが、文書変更するのが面倒くさい。
554名無しさん@そうだ選挙にいこう:2010/06/21(月) 02:13:54
うまいひとはExcelでもきれいな文書を作れる
へたくそはWord使ってもまったくよれよれの文書しか作れない

使い手次第

うちの上司はなにやってもだめだ
一から俺らが作ったほうが早い
555名無しさん@そうだ選挙にいこう:2010/06/21(月) 02:53:00
選択したセルの文字データの末尾に新たな文字を書き足すようなマクロを作るにはどうしたらいいでしょうか?
例:選択したセルに「6/21」と書いてあるときマクロを実行したら「完了」を自動で後ろに書き足して「6/21完了」になるようにしたい
556名無しさん@そうだ選挙にいこう:2010/06/21(月) 06:21:27
>>555
Sub aaa()
Dim v
v = Selection.Value
v = Format(v, "m/dd") & "完了"
Selection.Value = v
End Sub

実用的じゃない気はするね
557名無しさん@そうだ選挙にいこう:2010/06/21(月) 09:37:18
>>555
Selection.Value = Selection.Text & "完了"
558名無しさん@そうだ選挙にいこう:2010/06/21(月) 13:11:35
>>474
471,472の質問をした者です。
フィルタの状態を見たいのでありません。

フィルタで絞り込んだ事で、非表示になったデータを
ブックを閉じる前に解除して保存(保存は任意ですが…)できる
ようにしたいのです。

こんな感じで↓

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
'エクセルのバージョンがXP以降の場合
If usrThisApp.nAppVerNo >= 10 Then
Sheets("Sheet1").Select
' オートフィルタで絞り込まれていたら、非表示データを再表示
If ActiveSheet.FilterMode = True Then
ActiveSheet.ShowAllData
End If
Sheets("Sheet2").Select
' オートフィルタで絞り込まれていたら、非表示データを再表示
If ActiveSheet.FilterMode = True Then
ActiveSheet.ShowAllData
End If
Sheets("Sheet1").Select
End If
Application.ScreenUpdating = True
End Sub

でも、ブックの共有が設定されるタイミングによって1004実行時エラーが
発生する場合とエラーが発生せずにブックが終了する場合があるので、原因が
わからず困っているのです。
559名無しさん@そうだ選挙にいこう:2010/06/21(月) 18:29:05
2007で2003のオートシェイプモードのように、
図形を描き続けられる方法って、ありますか?
560名無しさん@そうだ選挙にいこう:2010/06/21(月) 20:56:55
<今月分 シート1>
A  B   C    D
11 田中 1000  10月
14 加藤  1000 10月 ←今月分シートから加わった新しい人
21 鈴木  1200  12月
33 山田  1100 11月


<前月分 今月分とは別ファイル→今月分シート2に必要部分だけコピー>
A  B  C   D   E  F  ....
11 田中 1000  10月 魚  a 
21 鈴木  1200  12月  花  b
33 山田  1100 11月 山  a
33 山田  1100 11月  川  a
21 鈴木  1200  12月  魚  a 
21 鈴木  1200  12月  川  b
44 小池  900 10月  魚  a ←今月分シートにはいない人
 

Excel2003で毎月シート1のようなデータが届きます。
シート1には新しい人が加わったり、逆に前月いた人がいなくなったりします。

前月分のデータで"a"になっているものは、今月も必要なため
現在は前月分ファイルで"a"のデータだけソートして、値を今月分ファイルのシート2に貼り付け→
A列の番号で並べ替え→シート1で列をコピー挿入し、シート2のE〜以降を貼り付けています。

また、今月増えた人分のところには
シート2に空行を入れてE以降を張り付ける際にずれないようにしています。

この作業を毎月なんとか自動的にできるようにしたいのですが、
関数やマクロでなんとかなるものなのでしょうか?
VLOOKUPの応用なのかな?と思って色々試しているのですが、良い方法が見つかりません。
561名無しさん@そうだ選挙にいこう:2010/06/21(月) 21:26:44
>>560
行の追加は関数だけではできないのでマクロが必要
マクロを使えば全自動化できる
562名無しさん@そうだ選挙にいこう:2010/06/21(月) 21:33:00
>>559
図形の種類を選ぶときにアイコンを右クリックしてモードロック
563名無しさん@そうだ選挙にいこう:2010/06/21(月) 21:40:29
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel 複数条件 抽出 重複 -フィルタオプション
シート上に下記のような表があり、その情報を元にA列とB列の組み合わせで重複しない表を作成したいと考えています。作成する際の条件は下記の通りです。
・C列に数字が入力されていて、0でない正の整数行のみを対象に検索
・作業列は利用しない
・フィルタオプションは利用しない
・表の作成の際に、A列、B列でソートする
・A列、B列はそれぞれマスタシートあり
このような条件で作成するに当たっては配列関数等が必要になるようにも思っていますが、いまいちうまくいきません。どうかご教示下さい。
<元の表>
A B C
1 りんご 青森 3
2 みかん 愛媛 2
3 メロン 北海道 5
4 りんご 北海道 9
5 バナナ 台湾 4
6 バナナ 沖縄 0
7 オレンジ アメリカ 10
8 メロン 北海道 1
9 みかん 愛媛 5

<作成する表>
A B
1 オレンジ アメリカ
2 バナナ 台湾
3 みかん 愛媛
4 メロン 北海道
5 りんご 青森
6 りんご 北海道
564名無しさん@そうだ選挙にいこう:2010/06/21(月) 21:45:29
>>563
>A列、B列でソートする
ってのがよくわかんないけど、こんなのを関数(配列数式)でやるのは、遊びで一部のマニアがやる以外は無理。
vbaでやった方がいいよ
565名無しさん@そうだ選挙にいこう:2010/06/21(月) 21:51:48
>>563
まずフィルタオプションを使わない理由を書け
次に自分で試してみた数式を1つ書け
566名無しさん@そうだ選挙にいこう:2010/06/21(月) 22:18:53
遊び程度

A列抜き出し
=INDEX(A:A,SMALL(IF(MATCH($A$1:$A$9&$B$1:$B$9,$A$1:$A$9&$B$1:$B$9,0)=ROW($A$1:$A$9),MATCH($A$1:$A$9&$B$1:$B$9,$A$1:$A$9&$B$1:$B$9,0),10^4),ROW(A1)),0)&""
B列抜き出し
=INDEX(B:B,SMALL(IF(MATCH($A$1:$A$9&$B$1:$B$9,$A$1:$A$9&$B$1:$B$9,0)=ROW($A$1:$A$9),MATCH($A$1:$A$9&$B$1:$B$9,$A$1:$A$9&$B$1:$B$9,0),10^4),ROW(A1)),0)&""

ソートは意味が分からないし、正直無理だわw

配列で確定で。でも、この数式の意味がわからなければ使わない方がいいよ。もう少し綺麗な式にはなると思うけれど、
やっぱりおすすめしない
567名無しさん@そうだ選挙にいこう:2010/06/21(月) 23:40:11
>>565
偉そうにw
568名無しさん@そうだ選挙にいこう:2010/06/21(月) 23:45:56
>560 いくつかおたずねします。

「今月分」は翌月には「前月分」として使うことになるのですか?
説明を読んでいると、前月分のブックは処理が済めば用済みで、加工が済んだ「今月分」が
翌月には「前月分」の役目となるように理解しました。(翌月には新たな「今月分」が届く)
これだと、VBAを使うしかないと思います。

>A列の番号で並べ替え→シート1で列をコピー挿入し、シート2のE〜以降を貼り付けています
今月分のシート1とシート2では、内容が異なるのでE列以降を貼り付けるとまずいのでは?
それとも、1行ずつ確認しながら貼り付ける?
569名無しさん@そうだ選挙にいこう:2010/06/21(月) 23:51:47
>>566
意味がわかるやつは使わない。
使うやつは基地外の配列数式大先生くらいのもんだなw
570名無しさん@そうだ選挙にいこう:2010/06/22(火) 00:22:35
>>563は三流SEレベルでよければ、A列とB列でソートしてフィルタオプションで数量が0以外を重複するレコードは無視するだな。
二流レベルを目指すならこれではまだ駄目だ。
571名無しさん@そうだ選挙にいこう:2010/06/22(火) 00:54:48
上の三流レベルのやつはソートは抽出してからでいいからね。
572名無しさん@そうだ選挙にいこう:2010/06/22(火) 01:14:33
>>563は配列数式でやりたければmougに行けばいいんじゃね?
配列数式の得意なMVPがいるから彼ならできるかも。
573名無しさん@そうだ選挙にいこう:2010/06/22(火) 01:15:51
vlookupの検索値を空白セルにすることはできますか?
二択の表から”○”がついていない方を抜き出したいんです
例としては下表のとき、カメルーンを抜き出すのが目的です
  A    B
1  ○  日本
2     カメルーン
VLOOKUP("検索値",A1:B2,2,FALSE)
この"検索値"の部分をどうにかすればよいとは思うんですが、どうしてもわかりません。
574名無しさん@そうだ選挙にいこう:2010/06/22(火) 01:27:18
>>573
空白セルを検索する方法はない。二択ならIFで調べればいい。
=IF(A1="",A1,B1)
575574:2010/06/22(火) 01:28:09
まちがえた
=(A1="",B1,B2)
576名無しさん@そうだ選挙にいこう:2010/06/22(火) 01:39:17
>>573
A2に「=""」と入力できるなら検索できるよ。
577名無しさん@そうだ選挙にいこう:2010/06/22(火) 01:40:25
>>575
あ、ifでいいのか
ありがとうございました
578名無しさん@そうだ選挙にいこう:2010/06/22(火) 01:42:12
>>576
なるほど、やっぱりifの方がよさそうですね
579名無しさん@そうだ選挙にいこう:2010/06/22(火) 02:04:29
作業列、配列数式、VBAのどれかを使えば空白セルでも検索できるけどね。
変化球としては空白の代わりに「×」を入れて文字を白にしてしまう。そして×を検索するとか。
580名無しさん@そうだ選挙にいこう:2010/06/22(火) 03:48:39
>>560

>前月分のデータで"a"になっているものは、今月も必要なため
>現在は前月分ファイルで"a"のデータだけソートして、値を今月分ファイルのシート2に貼り付け→
>A列の番号で並べ替え

ここまでで今月分ファイルの"シート2"は下のようになるって事ですよね?
A  B  C   D   E  F  ....
11 田中 1000  10月 魚  a
21 鈴木  1200  12月  魚  a
33 山田  1100 11月 山  a
33 山田  1100 11月  川  a
44 小池  900 10月  魚  a ←今月分シートにはいない人

>また、今月増えた人分のところには
>シート2に空行を入れてE以降を張り付ける際にずれないようにしています。
はいいんだけど
・今月分シートにはいない"小池さん"
・2行ある"山田さん"
このデータの扱いはどうするの?
(ここを処理しないと結局ずれてしまう気がするのだけど)
581569:2010/06/22(火) 07:34:01
>>561さん、>>568さん、>>580さん、レスありがとうございます。
遅くなってしまい、申し訳ありません。

「前月分」とマージした「今月分」は、翌月には「前月分」として使います。
「前月分」はオートフィルタでF列にaと入っているデータだけ表示。
そのデータを「今月分」ファイルのシート2に値として貼り付けて
A列の番号で昇順で並べ替えています。

シート1にある「今月分」も、A列の番号で並べ替えて
シート2の前月分必要データのA列の番号と比較して、シート2に例えば山田さんの列が2行あれば
シート1の山田さん列の下に、1行追加+データコピー(名前とIDなど)をしています。

シート1ではいなくなっているシート2の小池さんは、シート2上で削除。

シート1にいて、シート2にいない人が11田中さんの下の14加藤さんの場合
シート2の11田中さんと、21鈴木さんの間に空行を入れています。
(新しく加わった14加藤さんのE以降は、手動でデータ入力するので、空欄の必要があるため)

あと、前回書き忘れていましたが、シート1とシート2のデータの比較は
シート2のA列の番号をCOUNTIFで数えて、シート1のAC列(データが入っていない列)に表示させています。
1、3、0などと表示されているのを見ながら、列の追加など行っています。

なんだかややこしくてすみません…。
582名無しさん@そうだ選挙にいこう:2010/06/22(火) 10:51:18
>560,581
こういうことをしたいのかな?(Excel2003で3枚のシートを縦に並べたイメージ)
http://www.dotup.org/uploda/www.dotup.org980581.png.html
パスワードは 2ch です。
右側のAA列以降は加工後のA列以降と見てください。
583582:2010/06/22(火) 14:14:30
やってることは、
A 前月分のシートから「6列目に"a"がないデータを削除すること
B 前月分のシートに「今月分で初めて出現したデータ」を最下行に追加すること
C 1列目の内容でソート(Bの初出データ行が最下行から移動)
だけではないですか? だったら、月毎に役目が変わる方法じゃなくて、
前月分のシート1を「マスタ」とし、今月分のシートから初出データ行を持ってくる
方が簡単な気がします。違ってたらゴメン。

584名無しさん@そうだ選挙にいこう:2010/06/22(火) 15:13:57
>>471,472,558 です。

 誰もご存知ない様なので他の掲示板へ再投稿してみたいと思います。
 ありがとうございました。m(_ _)m
585名無しさん@そうだ選挙にいこう:2010/06/22(火) 17:20:52
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows XP Service Pack 3
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】否
【5 検索キーワード 】Excel セルの幅
1セルに長い文字が入力されている時、
複数段になっても良いので
文字数に合わせてセルの幅を自動調整して、
横にはみ出ないようにすることはできますでしょうか?

つまり
ttp://imagepot.net/image/127719476818.jpg

ttp://imagepot.net/image/127719476945.jpg
のようにしたいということです。
以前は出来たのですが、やり方が分からなくなりました。
どうか教えてください。
よろしくお願いいたします。

586複乳:2010/06/22(火) 18:02:48
>>585
右クリック 書式設定 折り返して全体を表示する
587585:2010/06/22(火) 18:07:47
>>586
ありがとうございます。
できました!!
588名無しさん@そうだ選挙にいこう:2010/06/22(火) 19:49:57
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

C列 D列
前  +200
前   -8
後  -300
前    0
前   +5
後  +800

↑のような場合に
1.C列が「前」の行のD列の数値の合計
2.C列が「前」の行のD列の数値が入っているセルの数の合計

の式を教えていただけないでしょうか
宜しくお願いします
589名無しさん@そうだ選挙にいこう:2010/06/22(火) 20:03:23
>>588さんの便乗質問です。

C列 D列
001  +200
002   -8
003  -300
004    0
005   +5
006  +800

C列は商品のロットNo.です。↑のような場合に
どこかのセル2箇所に「001」と「004」とを入力すると
001〜004の範囲のD列の合計をとってくれる方法を(この場合は△108になります)
教えて頂けないでしょうか。
590名無しさん@そうだ選挙にいこう:2010/06/22(火) 20:28:35
>588 処理対象のセル範囲がC1:D6として
=SUMPRODUCT((C1:C6="前")*(D1:D6))  和
=SUMPRODUCT((C1:C6="前")*(D1:D6<>0)) 0以外の数の件数

>589 処理対象のセル範囲がC1:D6として
=SUM(OFFSET(C1,MATCH("001",C1:C6)-1,1):OFFSET(C1,MATCH("004",C1:C6)-1,1))
591名無しさん@そうだ選挙にいこう:2010/06/22(火) 20:31:30
>>589 DSUMであっさりいけました。失礼しました…
592名無しさん@そうだ選挙にいこう:2010/06/22(火) 21:03:22
>>590
ありがとうございます
同じ表で
3.C列が「前」の行のD列の数値で最小値

はどのようになるでしょうか?
MINを使うと思うのですが・・・
593名無しさん@そうだ選挙にいこう:2010/06/22(火) 21:05:17
取引先からもらったエクセルのファイルで、
セルを参照するのに必ず+を付けてあるんですが、
これって何か意味があるんでしょうか?
例えばセルA1を参照する場合は「=+A1」となっています。
594名無しさん@そうだ選挙にいこう:2010/06/22(火) 21:37:33
>>593
「=A1」と入れるかわりに「+A1」と入力しても同じ結果になって、
しかもキーボードによっては入力が楽

たぶんそれ作ったのは年配の人か、手間を惜しむためのテクニックを駆使してる人
595名無しさん@そうだ選挙にいこう:2010/06/22(火) 21:37:58
セルに「0001」と入力すると「1」と表示されます。
文字列に指定すると「0001」と表示できますが、数値として機能しません(足し算とか出来ません)
「0001」と表示させて数値として利用出来ませんでしょうか。
596560:2010/06/22(火) 21:40:02
>>582-583さん
画像までわざわざ上げてくださって、すみません。
今はファイルを見れないのですが、確かにA〜Cまでの作業をして
「前月分」にはいるけど「今月分」にはいない人の削除をすれば完了する気がします!
前任者から「今月分に前月分の必要な部分を貼って」と言われたので、それに囚われてました。
明日データを確認してみますが、たぶん行けそうです。ありがとうございました。

597名無しさん@そうだ選挙にいこう:2010/06/22(火) 21:43:24
>592 処理対象のセル範囲がC1:D6として
=MIN(IF(C1:C6="男",D1:D6,""))  最小値
ただし、[Enter]で入力せず、[Ctrl]+[Shift]+[Enter]で入力すること。
そうすると、数式バーの中には {=MIN(IF(C1:C6="男",D1:D6,""))}と表示される。
これは配列数式として見なされていることを示す。

参考 日経PC21 / 配列数式で条件に合うデータの最大や最小、件数を求める
ttp://pc.nikkeibp.co.jp/pc21/special/hr/hr3.shtml


>595
セルの書式設定([Ctrl]を押しながら[1])
表示形式のタブ
分類のところで「ユーザー定義」
分類 のところに 0000 と入れて[OK]をクリック

参考 Tips:Excelでユーザー・カスタムの書式設定を定義する
ttp://www.atmarkit.co.jp/fwin2k/win2ktips/331cellfmt/cellfmt.html
598複乳:2010/06/22(火) 21:51:30
>>595
0001がA1セルとすると、
B1=A1*1+2
とすればB1に3と出ると思うが
別に*1しなくても計算できるような気もするガ
599名無しさん@そうだ選挙にいこう:2010/06/22(火) 21:55:37
>>597 めっちゃありがとうございます
600597:2010/06/22(火) 21:59:24
× =MIN(IF(C1:C6="男",D1:D6,""))  最小値
○ =MIN(IF(C1:C6="前",D1:D6,""))  最小値 セル範囲の修正に気をとられてた orz
601名無しさん@そうだ選挙にいこう:2010/06/22(火) 22:01:31
>>597
ありがとうございます!助かりました!
602名無しさん@そうだ選挙にいこう:2010/06/22(火) 22:52:51
>>595
文字列でも普通に計算できる
ただしすぐ隣のセルは編集すると書式が勝手に文字列に変わることがあるので注意
603名無しさん@そうだ選挙にいこう:2010/06/23(水) 00:59:07
【1 OSの種類 .】 Windows XP SP3
【2 Excelのバージョン 】 Excel 2003

Alt+F11でVBAのエディタを出したとき、マウスのスクロールボタンで
スクロールができません。何が悪いのでしょうか?
エクセルの表はスクロールできます。
604名無しさん@そうだ選挙にいこう:2010/06/23(水) 02:34:59
>>603
いつからスクロールできなくなった?
マウス買い換えた?
605名無しさん@そうだ選挙にいこう:2010/06/23(水) 05:26:10
もともと出来ない
606名無しさん@そうだ選挙にいこう:2010/06/23(水) 07:59:15
>VBAのエディタを出したとき、マウスのスクロールボタンでスクロールができません。

これ、意外と陥る罠だよな。自宅のPCだとスクロールするのに
会社のPCだとスクロールしないとか。
で、よくよく調べるとスクロールしないのがデフォで
スクロールするのはマウス付属のアプリのおかげだったり。
607名無しさん@そうだ選挙にいこう:2010/06/23(水) 12:10:53
毎日2回、数値のデーターを記録して、最終的にグラフにするつもりなのですが、
2回のうち1回を、記録し忘れてしまうことがあります。
セルを空白にすると、並べ替えたりするときに都合が悪そうなので、
取り忘れは取り忘れとして記録したいのですが、なんと打ち込めばいいんでしょうか?
608複乳:2010/06/23(水) 12:21:16
>>607
何入れても都合悪いでしょ
平均でも入れておけばいいnじゃない
609名無しさん@そうだ選挙にいこう:2010/06/23(水) 12:27:18
体重だな どうでもいいけど
610名無しさん@そうだ選挙にいこう:2010/06/23(水) 12:29:42
(´ω`)
611593:2010/06/23(水) 12:31:24
>>594
ありがとうございます。
おっしゃるとおり年配の方が作ったものです。
確かに=より+の方が入力楽ですね。
612名無しさん@そうだ選挙にいこう:2010/06/23(水) 13:56:48
【1 OSの種類         .】 WindowsVista
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 条件付書式、3つ以上、etc...
現在数列、数百行に渡ってデータが入っている表があるのですが、
それらのデータを基準値からどれだけ乖離しているかでセルの色を変更するか、
フォントの書式を変えたいと思っています
条件付書式での対応を考えたのですが、求められている仕様が「5段階」の変化で困っています
基準値+10、基準値+5、素のまま、基準値-5、基準値-10といった5段階です
基準値の入力された列を追加して差分を出して条件付書式で変化させようと思いましたが、
条件付書式では3つまでしか条件が設定できないので頓挫してしまいました

何か良い解決方法はないでしょうか?
613複乳:2010/06/23(水) 14:26:06
>>612
基準値を100として、
B1=REPT("■",IF(A1>110,5,IF(A1<90,1,(A1-90)/5+1)))
とか。110以上だと5つの"■"が表示される
関数の意味が分からなければifで"■"の数を分岐させてもいいかも

逆に5つのセルに条件付書式を設定して変化させるか(B1-F1のセル)

後は手っ取り早くVBAかね〜
614名無しさん@そうだ選挙にいこう:2010/06/23(水) 15:44:21
>>612
Excel2010に乗り換える
条件がいくつでも設定できる
615名無しさん@そうだ選挙にいこう:2010/06/23(水) 16:41:52
Excel2007使用者ですが良いクップボード拡張ソフトはないでしょうか?

Office純正のクップボードはFIFOで古いものが消されます。
Vectorにあるフリーの物はテキストだけだったり
クリックで直接貼り付けられなかったり不便です。
(探し方が足りないのかもしれませんが。)
よろしくお願いします。
616名無しさん@そうだ選挙にいこう:2010/06/23(水) 18:46:37
>>612
別のセルに「”データ”−”基準値”」を作成し
データの書式でプラスを青、マイナスを赤とかにし
データの条件付書式で他の2つの条件をつける
617名無しさん@そうだ選挙にいこう:2010/06/23(水) 19:25:02
>>615
クップボードはクリップボードの間違いです。
618名無しさん@そうだ選挙にいこう:2010/06/23(水) 19:28:26
>>608
>>609
>>607ですがありがとうございます。データなし用の便利なんかってやっぱりないんですか・・
ちなみに体重じゃないです、日経先物が日中に高値と安値をつけた時刻です。
619名無しさん@そうだ選挙にいこう:2010/06/23(水) 20:12:41
>>615
専用スレがあったのでそちらで聞きます。
620名無しさん@そうだ選挙にいこう:2010/06/23(水) 20:17:51
>>618
グラフだけであれば、空白があっても補間できるよ
621名無しさん@そうだ選挙にいこう:2010/06/23(水) 22:18:33
申し訳ないんですがROMってるひまがなくて、

SUMの足し算で40近くのセルを自動計算したいのですが
30が上限の方法しかわからず困ってます。

別の方法がもしあるのでしたらお教えください。
622名無しさん@そうだ選挙にいこう:2010/06/23(水) 22:36:11
>>621
バラバラの位置にあるセルなの?

連続しているんであれば、
=SUM(A1:A10)
=SUM(A1:H1)
のように書けるんだけど
623名無しさん@そうだ選挙にいこう:2010/06/23(水) 22:53:40
>621
数式中の引数の個数が30までって、このことかな?
Excel 2007-2003 ファイル互換について
ttp://www.nodai.ac.jp/center/syogai-mainte/vista/info/office/Excel2007-2003compati.html
の 数式/引数個数 の説明に 旧バージョンと同様、引数の個数は 30個 までに制限されます。とある。
Excel2007までは30個らしい。

Excel2010では255個に拡張されたようです。
ttp://office.microsoft.com/ja-jp/excel-help/HA010342994.aspx  の
Excel 2010 では、数式には 255 個までの引数を含めることができますが、Excel 97-2003 では、
数式内の引数は 30 個までに制限されています。  の部分

>622さんが書いてるような連続した範囲でなくても、集計対象セルが規則的な場合は工夫できます。
(A1,C1,E1・・・、A1,A3,A5・・・など)

40個のセルを一度に集計しなくても、20個ずつ小計を求めて、最終的に小計セル(2個)を足す方法とか、
いろいろありますが、いかが?
624名無しさん@そうだ選挙にいこう:2010/06/23(水) 23:13:12
バラバラでも範囲指定でいっぺんに足せるよ
ttp://momoiro.s4.x-beat.com/up/img/momoiro10657.png
625名無しさん@そうだ選挙にいこう:2010/06/23(水) 23:37:46
=sum(a1,b2,c3,・・・)+sum(a5,b6,c7,・・・)
626621:2010/06/24(木) 06:52:51
皆様ありがとうございます
最近頭が固く、そういう方法が浮かばなくなってまいりました(汗
『算数博士』返上です。

丁寧なご返答にも感動しつつ、感謝

ガンバレ NIPPON!

627名無しさん@そうだ選挙にいこう:2010/06/24(木) 09:54:15
just basic
628名無しさん@そうだ選挙にいこう:2010/06/24(木) 13:53:17
【1 OSの種類         .】 Windows7 32bit
【2 Excelのバージョン   】 Excel2003、Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel2010 改ページ 印刷
A122、CV1までのセルを使った帳票データを印刷する場合での質問です。
そのデータは行と列の高さや幅を全体的に小さくしてあります。(高さ6、幅1)
ページ設定で「次のページ数に合わせて印刷」にチェックを入れていれば、Excel2003では特に問題なくA4横ピッタリに印刷できていました。
しかし、Excel2010にバージョンアップしていざ印刷しようとするとA4で20枚というとんでもない枚数になってしまいます。
印刷メニュー内の設定で「シートを1ページに印刷」を選ぶとプレビューではきちんと収まっているのですが、いざ印刷が始まるとA4の真ん中にデータの一部しか印刷されていないものが20枚出てきます。
印刷が終わってからそのデータを見ると、改ページ表示がめちゃくちゃになり20分割されています。
改ページ位置の修正も効かず、泣く泣く2003で印刷する羽目になっています。
2010でうまく印刷するにはどうすればいいのでしょうか。

629名無しさん@そうだ選挙にいこう:2010/06/24(木) 15:13:21
>>628
2010は知らないけど
ページ設定の拡大縮小、水平垂直位置、余白・・かなぁ
630名無しさん@そうだ選挙にいこう:2010/06/24(木) 18:50:16
>>626
『算数博士』返上…か。
オレは
『エロ大魔王』返上でつ。w
631名無しさん@そうだ選挙にいこう:2010/06/24(木) 23:47:11

【1 OSの種類         .】 Windows95
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 ペイント
スクリーンショットとbmpファイル出力とセルドット化できるブックを作ったんですが
あと何か機能をつけるとしたら何が必要ですかね
632名無しさん@そうだ選挙にいこう:2010/06/25(金) 00:09:08
シベリアよりレス代行お願いしています。
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 オートフィル 一方のみ 同じ A1*B1 A2*B2
検索キーワードでどうひいていいかわからず、詰まってしまいました。
B3に適当な数値が入れてあり、その下の表に
F6*B3
F7*B3
F8*B3



と、Fの数値にひたすらB3の数値をかける式を入れている列があります。
いちいち手打ちするのが面倒なので、オートフィルでやろうとしたところ、
F6*B3
F7*B4
F8*B5



となってしまいます。どうすれば上のように片方だけの数値を変化させてオートフィルさせることができますか?
633名無しさん@そうだ選挙にいこう:2010/06/25(金) 00:16:32
>>631
個人的に本気で欲しいのはpdfファイルの編集機能
(pdfの作成じゃないよ)
これは作れるなら需要あるとおもう

後は・・大概あるんじゃないかな

Excelでらき☆すたOPを再現してみた
ttp://www.nicovideo.jp/watch/sm586011
(エクセルのセルにドットを当てはめドット絵ムービー)

他ライフゲームなど
ttp://www.nicovideo.jp/tag/エクセル?sort=v
ttp://www.nicovideo.jp/tag/excel?sort=v
ファミコンエミュなんてのもあったはずだけど見つからないな
634名無しさん@そうだ選挙にいこう:2010/06/25(金) 01:45:54
>632
=F6*B3 と入力したセルを編集状態にして、B3 を選択した状態で[F4]キーを押してみてください。
=F6*$B$3 というふうに変わったはずです。
これをオートフィルすると $B$3 は変わりません。

参考 Excel豆知識6-1:エクセル:絶対参照・相対参照
ttp://www11.plala.or.jp/koma_Excel/contents1/mame1006/mame100601.html
635名無しさん@そうだ選挙にいこう:2010/06/25(金) 02:11:26
>>634
ありがとうございます!これで作業がかなり楽になりました。
参考サイトも明日(今日?)ゆっくり見て勉強させていただきます。
636名無しさん@そうだ選挙にいこう:2010/06/25(金) 02:13:42
just basic
637名無しさん@そうだ選挙にいこう:2010/06/25(金) 02:49:50
通常
「A」と入力すると「A 1101」
「B」と入力すると「A 1102」と表示されるように辞書登録しており
この後、各数字を色変更するのですが

「A」と入力すると「A 1101」が表示された際
数字のみを自動的に所定の色に変更してくれる方法は無いですか?
638637訂正:2010/06/25(金) 05:17:26
エクセル2007を使用

通常
「A」と入力すると「A 1101」
「B」と入力すると「A 1102」と表示されるように辞書登録しており
この後、各数字を色変更するのですが

「A」と入力すると「A 1101」が表示された際
数字のみを自動的に所定の色に変更してくれる方法は無いですか?


後、特定のセルに何らかの数字が入力された場合のみ
色変更するにはどうしたらいいですか?
639名無しさん@そうだ選挙にいこう:2010/06/25(金) 06:50:38
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 ユーザーフォーム

セルをクリックするとユーザーフォームが開きコマンドボタンに登録されている文字が入力され隣のセルに移動るようになっているのですが、特定の文字だけ入力時にフォントのサイズが変わるようにしたいのですが、よろしくお願いいたします。



640複乳:2010/06/25(金) 09:49:57
>>637
Private Sub Worksheet_Change(ByVal Target As Range)
For i = 1 To Len(Target)
If IsNumeric(Mid(Target, i, 1)) Then
Target.Characters(Start:=i, Length:=1).Font.ColorIndex = 3 '3は赤色
End If
Next
End Sub

>>638
Sub a()
Dim unko
unko = "うんこ" '変えたい文字
Dim unkolen
unkolen = Len(unko)
If Selection.Row = 1 And Selection.Column = 1 Then 'とりあえずA1セル限定
For i = 1 To Len(Cells(1, 1))
If Mid(Cells(1, 1).Value, i, unkolen) = unko Then
ActiveCell.Characters(Start:=i, Length:=unkolen).Font.Size = 15 'フォントサイズ
End If
Next
End If
End Sub
641複乳:2010/06/25(金) 11:09:31
おおっと
>>640下のコードは>>639宛だ
642名無しさん@そうだ選挙にいこう:2010/06/25(金) 12:04:09
>If Mid(Cells(1, 1).Value, i, unkolen) = unko Then

ひでぇw
643642:2010/06/25(金) 12:08:17
>639,複乳

つInstr


644複乳:2010/06/25(金) 12:41:58
>>642>>643
ありがとうございます
645複乳:2010/06/25(金) 12:51:44
こんな感じかねぇ。でも文字列が二箇所以上にあるとだめなんだよなぁ
>>639
Sub a()
Dim unko
unko = "うんこ" '変えたい文字
Dim unkolen
unkolen = Len(unko)
tempstr = InStr(ActiveCell.Value, unko)
If tempstr Then
ActiveCell.Characters(Start:=tempstr, Length:=unkolen).Font.Size = 15 'フォントサイズ
End If
End Sub
646名無しさん@そうだ選挙にいこう:2010/06/25(金) 14:09:40
>645
>でも文字列が二箇所以上にあるとだめなんだよなぁ

応用もできんのか?
半年ROMってろ。
647名無しさん@そうだ選挙にいこう:2010/06/25(金) 22:29:51
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

O列 P列

5   V
3  
10  V
8   V


1   V
15
7   V


↑のような場合

*P列に「V」がある行のO列の数値で最大の数値

を求める関数教えていただけないでしょうか
宜しくお願いします
648名無しさん@そうだ選挙にいこう:2010/06/25(金) 22:56:53
>>647
数値がプラスの値だけなら=MAX((P1:P9="V")*O1:O9)の配列数式。
分からなければ作業列のQ1:Q9に=IF(P1="V",O1,"")として=MAX(Q1:Q9)


649名無しさん@そうだ選挙にいこう:2010/06/25(金) 23:01:40
見出しありならDMAXでもできる。
650名無しさん@そうだ選挙にいこう:2010/06/25(金) 23:11:24
B3セルに入れた文字をファイル名にして保存するんだけど、
/ とか : を使う人がいて、保存できないと騒ぐ人がいます。
また、海外に送るので半角英数字にしたいんですが、
全角のアルファベットを使う人がいます。
これらが入ってたら「ダメぽ」ってメッセージを出すには
どうすればいいですか?

651647:2010/06/25(金) 23:15:42
>>648
ありがとうございます。
この表は下にどんどん追加されるものなのですが
常にMAXが更新されるようにするにはどうすれば良いでしょうか?
652647:2010/06/25(金) 23:35:13
自己解決しました。ありがとうございました
653名無しさん@そうだ選挙にいこう:2010/06/26(土) 00:01:17
>>650

If Range("B3").Value Like "*[!A-Za-z0-9]*" Then
MsgBox "ダメぽ"
End If
654名無しさん@そうだ選挙にいこう:2010/06/26(土) 00:04:16
>650

=IF(B3=ASC(B3),"OK","NG")
655名無しさん@そうだ選挙にいこう:2010/06/26(土) 00:07:59
>647,651
O1:O9 を O1:O256 とか O1:O65535 などとする
P1:P9 も同様

Excel2007からは O:O のように列全体も指定できるそうだけど、扱うセル数が極端に多くなるからやめといた方が吉。 
656650:2010/06/26(土) 00:40:39
>>653
うぉーすごいぃぃ、
ありがとうです。
"*[!A-Za-z0-9]*"って、英数字だったらOKってこと?
!はどんな意味が?

>>645
/ とか : だとダメですた。
653氏のを使わせてもらいます。
657名無しさん@そうだ選挙にいこう:2010/06/26(土) 00:57:43
>>650
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
ここでStrConv関数で
if 変換前<>変換後 then
msgbox "ふじこ"
かな。
658653:2010/06/26(土) 00:57:58
>>656
詳細はHelpの Like演算子をみてね

ちなみに ! はそれ以外だったらってことで
今回は英数字(A-Za-z0-9)※以外※が何処かにあると
メッセージを表示
659名無しさん@そうだ選挙にいこう:2010/06/26(土) 06:11:50
エクセル2007を使用。

@
1日目(D35〜51 N35〜50) 2日目(X35〜51 AH35〜50) 10日目(GB35〜51 GL35〜50)
11日目(D86〜102 N86〜101) 12日目(X86〜102 AH86〜101) 20日目(GB86〜102 GL86〜101)
21日目(D137〜153 N137〜152) 22日目(X137〜153 AH137〜152) 31日目(GV137〜153 HF137〜152)

上記の各セルに数字が含まれると
自動的に 数字のみを 青に色変更させる。

例えば
D35「A 1101」 D36「C 1103」 N35「A 1101」 N36「X」だとすれば
1101 1103の部分だけ色変更させるってことです。


A
そして数字の色変更した数を、
1日目(N51) 2日目(X51) 10日目(GL51)・・・31日目(HF153)の場所に
自動的表示。

例えば
1日目がD35「A 1101」 D36「C 1103」 N35「A 1101」 N36「X」だとすれば
数字のあるとこだけ抽出して、1日目のN51は3というわけ。
660名無しさん@そうだ選挙にいこう:2010/06/26(土) 06:12:45
B
1日目(E35〜51 O35〜50) 2日目(Y35〜51 AI35〜50) 10日目(GC35〜51 GM35〜50)
11日目(E86〜102 O86〜101) 12日目(Y86〜102 AI86〜101) 20日目(GC86〜102 GM86〜101)
21日目(E137〜153 O137〜152) 22日目(Y137〜153 AI137〜152) 31日目(GW137〜153 HG137〜152)

に一番上から連続で数字を入力していき
2つ以上続けて数字が入力された場合、数字を最後に入力した次のセルに自動でオートシェルし、その数字を色変更させる。

一番上からの数字が連続です
1つだけの場合、オートシェルは発動させないが、自動で色変更はさせる。

間が開いた数字はオートシェルも色変更もさせない。

例えばE35=5000 E36=2000 E37=4000だとするなら
自動的にE38に11000と表示され、その11000のセルは自動的に色変更される。

O35=8000 O36=7000 O40=5000ならば
連続した数字のO35・O36の次のセルであるO37には
自動的に15000と表示され、色変更も自動でされるが

間が開いているO40=5000の数字は
5000そのままで、色変更もされない。
661名無しさん@そうだ選挙にいこう:2010/06/26(土) 06:14:44
C
1日目(O51) 2日目(Y51) 10日目(GM51)・・・31日目(HG153)の場所に
@で数字が書いてある右横の数字だけ合計し
数字が書かれてない右横の数字はマイナスしたものを自動表示にする。

例えば
D35「A 1101」 E35「5000」
D36「C 1103」 E36「2000」
D37「D 1104」 E37「4000」
N35「A 1101」O35「2000」
N36「X」 O36「10000」
N40「2101」 O40「500」だとするなら
051の数字は5000+2000+4000+2000+500-10000となる。
662名無しさん@そうだ選挙にいこう:2010/06/26(土) 08:42:19
>>647,651
どのように自己解決したか知らんが、配列数式で>>655みたいに範囲を広く取るのは重くなるのであまり良くないが
DMAXなら範囲を広くとってもほとんど重くならない。

O列の見出しが金額で、P列の見出しが旗で条件がR1:R2で
R1に旗、R2にVと書いてあれば
=DMAX(O:P,"金額",R1:R2)
=DMAX(O:P,O1,R1:R2)
など。
663名無しさん@そうだ選挙にいこう:2010/06/26(土) 18:32:26
EXCELのブックを開いたときに中身が何もない状態になる。
枠だけは見えるけど、真ん中がPCのデスクトップと同じ柄になって、
セルも何もないのです。VBAを色々実験していたら、普通に開かなくなりました。
どうしたらいいでしょう?説明が下手ですみません。


【1 OSの種類       】 WindowsXP
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか   】 少し
【4 VBAでの回答の可否】 可
664名無しさん@そうだ選挙にいこう:2010/06/26(土) 19:16:49
>663
状況がわからないので、いくつかおたずねします。
Q1 ブックが開いているのは間違いないか?
  (タイトルバーに Microsoft Excel-Book1 などアクティブなブック名が表示されているか)
  (プログラムを閉じる × とは別に、ブックを閉じる × は見えるか)

Q2 列名や行番号は表示されているか?
  (すべての行を非表示にすると列名だけ表示されるが行番号は見えなくなる、すべての列を非表示に
   すると行番号だけ表示されて列名は見えなくなる)

Q3 >真ん中がPCのデスクトップと同じ柄 とは、バックのデスクトップの状態が透けて見えるということ?
  (デスクトップ上のアイコンの並びも見えるのか)

Q4 問題は当該ブックだけなのか? 当該ブックを他のPCで開いたときも同じ状況なのか?
  (他の既存ブックや、新規ブックのときはどうなのか)

答えていただいたからといって自分が適切な回答できるとは思いませんが、詳しい方にはピンとくるかも。
665名無しさん@そうだ選挙にいこう:2010/06/26(土) 19:48:44
>>664
レスありがとうございます。
Q1 ブック名は表示されています。内側の×は表示されていません。

Q2 列名、行番号は表示されていません。

Q3 バックのデスクトップの状態が透けて見えるということです。
  デスクトップ上のアイコンの並びも見えます。

Q4 新規ブックむ含め、全てのエクセルが同じ状態です。


ACCESSでVBAを書いているのですが、EXCELもACCESSも一旦閉じて、
再度立ち上げると普通に開くようです。
ACCESSを開いたままでEXCELが開けないと、何かと不自由なので質問してみました。
666名無しさん@そうだ選挙にいこう:2010/06/26(土) 23:09:49
Sub mojiiro2()
Dim RE, c
Dim myRng As Range
Dim myStr As String
Dim i As Integer
Set RE = CreateObject("VBScript.RegExp")
With RE
.Pattern = "[0-9]" '----パターンを設定
.IgnoreCase = True
.Global = False

For Each myRng In Selection
For i = 1 To Len(myRng)
myStr = Mid(myRng.Value, i, 1)
If .Test(myStr) Then
With myRng.Characters(Start:=i, Length:=1).Font
.ColorIndex = 42
End With
End If
Next i
Next myRng
End With
Set RE = Nothing
End Sub


0-9の半角だけでなく
0−9の全角も変換されるようにしたいのですが
どうしたらいいですか?
コピペしてきただけなんで、よく判らないんです。
667名無しさん@そうだ選挙にいこう:2010/06/26(土) 23:16:57
"[0-9,0-9]"でどうかね しらんけど
668名無しさん@そうだ選挙にいこう:2010/06/26(土) 23:18:44
>>667
出来ました
ありがとうございます。
(*'ε`*)チゥ
669666:2010/06/26(土) 23:41:27
すいません。
.ColorIndex = 42
ってのは、もっと細かく設定できませんか?
R49 G134 B155ってのにしたいんです。
670666:2010/06/26(土) 23:45:38
事故解決しました。
671名無しさん@そうだ選挙にいこう:2010/06/27(日) 19:42:10
【1 OSの種類       】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか   】 少し
【4 VBAでの回答の可否】 可

A列   ・・・ N列
100       56
100       32
100       40
103 69
103 35
104 9
104 35
104 9
104 23

A列に重複した値が複数行(1行だけのもあるかも)まとまってある中で
A列が同じの行のN列の値を比較して最小値を調べて隣のP列のセルに○を入れたいです。

例 100→32○
   103→35○
   104→二つの9の隣に○
672671:2010/06/27(日) 19:43:02
ありゃ、103のところから数字がずれました。。
ゴメンナサイ
673名無しさん@そうだ選挙にいこう:2010/06/27(日) 21:03:07
>>671
A1からだとして
=IF(MIN(IF(ISERROR(MATCH($A$1:$A$10,A1,0)),10^10,$N$1:$N$10))=N1,"○","")

CTRL+SHIFT+ENTERの同時押しで確定させて式の前後に { }をつける(配列数式)
674名無しさん@そうだ選挙にいこう:2010/06/27(日) 21:20:20
>>673
ご親切にありがとうございます!
これからちょっとやってみます!!!
675名無しさん@そうだ選挙にいこう:2010/06/27(日) 21:33:11
配列の関数って下にオートフィルしたらがうまくいかないですね。
ぐぐってきます!
676名無しさん@そうだ選挙にいこう:2010/06/27(日) 21:39:23
>>675
え?できるよ?(´・ω・`)
677名無しさん@そうだ選挙にいこう:2010/06/27(日) 21:40:12
A1に 2000と入れて、それをB1に反映させる場合は
B1に =A1 と入力すれば良いのは分かるのですが

B1に 料金合計額(●円)とあって
●のとこにA1を反映させるにはどうしたらいいですか?
678名無しさん@そうだ選挙にいこう:2010/06/27(日) 21:42:32
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

='950'!$X"INDIRECT($K$12)"
あるセルに他のシート(シート名:950)のX列のある行の数値を表示させたいのですが
その行の部分のみK12セルでコントロールしたいのですが上記でエラーが出ます
どなたか間違い部分をご指摘いただけないでしょうか
宜しくお願いします
679名無しさん@そうだ選挙にいこう:2010/06/27(日) 21:45:01
>>675
え?で、出来るぞ?
680名無しさん@そうだ選挙にいこう:2010/06/27(日) 21:48:05
>>677
一番簡単なのはセルの表示形式で、ユーザー定義で

料金合計額(0円)

と入れればOK
681名無しさん@そうだ選挙にいこう:2010/06/27(日) 21:51:57
>>678
=INDIRECT("950!$X"&$K$12)

ってことかい?
682675:2010/06/27(日) 21:53:59
あれ、なんでだろ?
上の例でA列100の行の間はうまく表示されるんですが、
A列が103の行になった途端、ブランクのまんまなんです。。
でも考え方を教えていただきましたのでこれでなんとかやってみます!
ありがとうございました!
683名無しさん@そうだ選挙にいこう:2010/06/27(日) 21:55:38
>>682
なんとなく、配列数式になっていない予感?
684名無しさん@そうだ選挙にいこう:2010/06/27(日) 21:56:31
>>681
できました!ありがとうございました!
685682:2010/06/27(日) 21:58:45
>>683
そうですかね、数式の両脇に{}つけてるんですけどね。。。
でもやっぱどっかおかしいと思いますので成功するまでやってみますね!

686名無しさん@そうだ選挙にいこう:2010/06/27(日) 22:00:22
>>677
"料金合計額("&A1&"円)"
687名無しさん@そうだ選挙にいこう:2010/06/27(日) 22:02:18
>>682
100行の間はうまくいくのなら
100行を超えるとその数式が破綻する様なものになっているってことだろ
688677:2010/06/27(日) 22:11:54
ありがとうございます。
出来ました。

もう1つ質問なのですが
金額(数字)を入れた場合だけ、別のセルで合計額を反映して
金額(数字)を入れない場合は、無表記にすることって出来ますか?

A1(2000) B1(料金合計額(2000円)
A2(1000) B2(料金合計額(3000円)
A3     B3(料金合計額)・・・金額が入力されない時は合計額を表示させない。
A4(2000)  B4料(金合計額(5000円)

って出来ますか?
689名無しさん@そうだ選挙にいこう:2010/06/27(日) 22:15:07
>>688
>>680を使った場合
=IF(A1<>"",SUM($A$1:A1),"")
690名無しさん@そうだ選挙にいこう:2010/06/27(日) 22:15:39
あ、下にコピーって書くの忘れた
691名無しさん@そうだ選挙にいこう:2010/06/27(日) 22:23:38
=IF(A1="","",SUM())

俺はわかりやすいからこう書くようにしてる
692682:2010/06/27(日) 22:23:45
>>687
ありがとうございます!出来ました!
私の例の書き方が10行しかなくて教えて頂いた下の数式の10の値を本来の最後の行の値にしたら
出来ました!どうもみなさん色々ありがとうございました!助かりました!
=IF(MIN(IF(ISERROR(MATCH($A$1:$A$10,A1,0)),10^10,$N$1:$N$10))=N1,"○","")
693名無しさん@そうだ選挙にいこう:2010/06/27(日) 22:39:33
いまエクセル見られないから検証できないけど、これでよくない?

=IF(MIN(IF(COUNTIF($A$:$A$,A1),$N$:$N$,10^10))=N1,"○","")
694名無しさん@そうだ選挙にいこう:2010/06/27(日) 23:51:22
初心者ですが、質問です。
例えば

a 2 3 8 1 14
b 1 5 9 1 16
c 2 3 1 2 8
x
となっていて、xでこの合計を出すためにはどのような式なりますか?
695名無しさん@そうだ選挙にいこう:2010/06/28(月) 00:04:50
全部を範囲指定すりゃいいじゃん

SUM(A1:E3)とか
696688:2010/06/28(月) 01:09:51
=IF(H31>=1,"料金  (合計"&H31/1000&"千円)","料金")
=IF(AD31>=1,"料金  (合計"&(H31+AD31)/1000&"千円)","料金")
=IF(AZ31>=1,"料金  (合計"&(H31+AD31+AZ31)/1000&"千円)","料金")
=IF(BV31>=1,"料金  (合計"&(H31+AD31+AZ31+BV31)/1000&"千円)","料金")
=IF(BV31>=1,"料金  (合計"&(H31+AD31+AZ31+BV31+CR31)/1000&"千円)","料金")
=IF(BV31>=1,"料金  (合計"&(H31+AD31+AZ31+BV31+CR31+DN31)/1000&"千円)","料金")
=IF(BV31>=1,"料金  (合計"&(H31+AD31+AZ31+BV31+CR31+DN31+EJ31)/1000&"千円)","料金")
=IF(BV31>=1,"料金  (合計"&(H31+AD31+AZ31+BV31+CR31+DN31+EJ31+FF31)/1000&"千円)","料金")
=IF(BV31>=1,"料金  (合計"&(H31+AD31+AZ31+BV31+CR31+DN31+EJ31+FF31+GB31)/1000&"千円)","料金")
=IF(BV31>=1,"料金  (合計"&(H31+AD31+AZ31+BV31+CR31+DN31+EJ31+FF31+GB31+GX31)/1000&"千円)","料金")

としたのですが
コード?をもっと短くできる方法は無いですか?
これが限界でしょうか?
697名無しさん@そうだ選挙にいこう:2010/06/28(月) 01:14:56
=IF(AD31>=1,"料金  (合計"&SUM(H$31$:AD31)/1000&"千円)","料金")
て感じでどう?
698688:2010/06/28(月) 01:18:18
>>697
すいません
3つ目の=IF(AZ31>=1,"料金  (合計"&(H31+AD31+AZ31)/1000&"千円)","料金")
だとどうなるのでしょうか?

>>697の例だと、あまり変らないように見えたので。
699名無しさん@そうだ選挙にいこう:2010/06/28(月) 01:19:41
>>698
最初のH31だけ絶対参照してるから、オートフィルで勝手にSUMの範囲が伸ばされる
どんなシートにしてるかわからんけど、ちゃんと同じ列に金額を入れてるならこれでできるはず
700688:2010/06/28(月) 01:25:17
>>699
出来ませんでした。

=IF(AD31>=1,"料金  (合計"&SUM(H31:AD31)/1000&"千円)","料金")
とすれば出来ましたが

何故か、小数点が表示されます。
701688:2010/06/28(月) 01:53:58
すいません。コードの省略は諦めます。
シート2にシート1の結果を反映させるには
どうしたらいいですか?

シート1 の最終合計額が10000円で
シート2のH31が2000だとするなら、シート2のP1には料金(12千円)と表示させたいんです。
702701:2010/06/28(月) 02:14:21
=IF(H31>=1,"料金  (合計"&(H31+'シート1'!H31+'シート1'!AD31+'シート1'!AZ31+'シート1'!BV31+'シート1'!CR31+'シート1'!DN31+'シート1'!EJ31+'シート1'!FF31+'シート1'!GB31+'シート1'!GX31)/1000&"千円)","料金")

一応、こうすれば出来ましたが
もっとコード?を短くできる方法は無いですか?

無視しないで(´・ω・`)
703名無しさん@そうだ選挙にいこう:2010/06/28(月) 02:16:26
よくわからん状況になってきたからデータうpしてもらったほうが回答しやすそう
704名無しさん@そうだ選挙にいこう:2010/06/28(月) 02:35:11
単純に式を短くするアイデア
シート1のどこかで合計を出しておいて、それを参照するだけにする
705701:2010/06/28(月) 02:52:32
>>704
こちらにうpしました。

シート1 シート2(最初の3つ目だけ作成)があります。
http://opainyan.hp.infoseek.co.jp/cgi-bin/source/nya1862.zip
706名無しさん@そうだ選挙にいこう:2010/06/28(月) 03:03:25
>>705
埋めてみたからこれ参考にして
http://www.dotup.org/uploda/www.dotup.org992329.zip
707701:2010/06/28(月) 03:09:18
>>706
ありがとう。
試してみます。
708701:2010/06/28(月) 03:19:51
シート1の2つ目を

=IF(AD31>=1,"料金  (合計"&SUM($H$31:AD31)/1000&"千円)","料金")

としたところ
料金  (合計3.036千円)と表示されます。
.036は不要なんですが消せないんでしょうか?
709名無しさん@そうだ選挙にいこう:2010/06/28(月) 03:23:21
>>708
何でそうなるのかわからんけど、ROUNDDOWN関数使えば切り捨てできる
桁数は-3でいけるはず
710701:2010/06/28(月) 03:31:29
>>709
うpしたファイルは、あくまで例で
実際のファイルには他にも数字が記入されてるからでしょうか?
711701:2010/06/28(月) 03:34:33
>>709
すいません。
実際のファイルには
31と5が料金の横のラインに記入されています。
これが原因かと思われます。
712701:2010/06/28(月) 03:37:59
>>711を考慮すると
やはり>>705の最初のやつしか方法は無いのでしょうか?
713名無しさん@そうだ選挙にいこう:2010/06/28(月) 06:07:38
件数がいくらであろうと自動的にオートSUMしてくれる方法は無いですか?

3000
2000
5000
と入力したら、オートSUMを押さずとも
自動的に10000と表示され

3000
5000なら
自動的に8000と表示されるみたいな。
714名無しさん@そうだ選挙にいこう:2010/06/28(月) 06:27:30
>>713
バージョンにもよるけど普通にテーブル使えばいいんじゃね?
715名無しさん@そうだ選挙にいこう:2010/06/28(月) 08:32:45
>713

つIndirect
716名無しさん@そうだ選挙にいこう:2010/06/28(月) 11:32:32
>>714
2003ならリスト
集計行が恐ろしく便利
717名無しさん@そうだ選挙にいこう:2010/06/28(月) 21:45:02
毎日、不定期な費名(ランダム)と金額があり、それを記入すると
項目の合計金額に自動的に反映するようにしたいんですが
どうしたらいいですか?

例えばA3〜A10に費名(その都度違う)を入力し、費名に対する金額を入力すると
自動的にG3〜G10に合計金額として出したいんです。




ファイルをうpしました。
http://opainyan.hp.infoseek.co.jp/cgi-bin/source/nya1863.zip
718名無しさん@そうだ選挙にいこう:2010/06/28(月) 22:18:15
>717
SUMIF関数でできますよ。
参考 SUMIF関数ならただの合計ではなく、条件に合うものだけを合計できます!Excel・エクセル関数技!
ttp://kokoro.kir.jp/excel/sumif.html
719718:2010/06/28(月) 22:29:07
>718の追加
参考に挙げた例だと検索条件に直接文字列を入れていますが、セルを指定するといいです。
それと、計算式を下へコピーする前に計算範囲を絶対指定に変更する必要があります。
なので、>717の場合だとG18セルに =SUMIF($A$18:$A$25,E18,$C$18:$C$25)と入れて
下へフィルコピーになります。
720名無しさん@そうだ選挙にいこう:2010/06/29(火) 20:49:11
>>718-719
ありがとうございます。
できました(´∀` )

お手数ですが、現在の状態だと常に0が表示されてますが
加算された時だけ数字が表示され
加算されない限り、無表記としたいのですが「
どうしたらいいですか?
721名無しさん@そうだ選挙にいこう:2010/06/29(火) 20:59:46
プロパティで0を非表示
見た目だけならこれでOK
722名無しさん@そうだ選挙にいこう:2010/06/29(火) 21:07:59
解決できました。
ありがとうございます。
723名無しさん@そうだ選挙にいこう:2010/06/30(水) 12:07:50
教えてください
引用元の帳票が12桁あり
VLOOKUPで戻り値を右側6桁で返したいのですが
セルの書式設定以外で何か方法ありますでしょうか?
関数の組み合わせで何か宜しくお願いします。
724名無しさん@そうだ選挙にいこう:2010/06/30(水) 12:11:11
>>723
right関数
725723:2010/06/30(水) 12:14:31
>>724

有難うございます
具体的にどんな数式になるか
教えていただけると助かります
VLOOKUPのが先なのは判るんですが
726名無しさん@そうだ選挙にいこう:2010/06/30(水) 12:24:29
=right(vlookup(a1,a1:b2,2,true),6)
みたいなかんじ
727723:2010/06/30(水) 12:47:45
>>726

出来ました!
有難うございます。
728名無しさん@そうだ選挙にいこう:2010/07/01(木) 13:28:14
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2001
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 vlookup
名前 点数
A 100
B 50
C 70
というデータがあって、別のセルに、50点以上の人の名前と点数をリストアップさせるにはどうすればいいですか?
vlookupは文字で検索ですが、ある数値以上で名前を表示させるにはどうすればいいでしょうか?
729名無しさん@そうだ選挙にいこう:2010/07/01(木) 14:19:25
点数で並べ替えじゃダメ?
730名無しさん@そうだ選挙にいこう:2010/07/01(木) 16:10:59
まずある点数以上に印つけてそれを抜き出す。
731名無しさん@そうだ選挙にいこう:2010/07/01(木) 16:48:37
=173 → 172

つまりイコールを消すということなんですが
これをするにはどうすればいいのですか?
732名無しさん@そうだ選挙にいこう:2010/07/01(木) 16:54:31
>>731
表示形式を「文字列」から「標準」に?
733複乳:2010/07/01(木) 17:44:21
>>728
オートフィルタ
またはC2=if(b2>=50,b2,"")
のようにすれば50以上のみ表示される
>>731
置換(Ctrl+H)
734名無しさん@そうだ選挙にいこう:2010/07/01(木) 18:04:27
735名無しさん@そうだ選挙にいこう:2010/07/01(木) 20:38:39
>>728
別セルに抽出するならフィルタオプションの設定な。
検索条件範囲を
点数
>=50
として指定した範囲に抽出すればよい。
736名無しさん@そうだ選挙にいこう:2010/07/01(木) 20:41:44
体重を折れ線グラフで表示して、
毎日データが追加される度に
一々データを選択せずに
グラフが伸びていくようにするには
どうすればよいのでしょうか?
737名無しさん@そうだ選挙にいこう:2010/07/01(木) 20:53:40
>>736
説明するの面倒だから
http://support.microsoft.com/kb/183446/ja

あとは2007だとテーブルを使えばいいらしい
738名無しさん@そうだ選挙にいこう:2010/07/01(木) 21:34:28
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

「0701」という別のシートを参照したいのですが以下の場合どうすれば良いでしょうか?
  
A列       B列      C列      D列      E列
='0701'!$A$1  ='0701'!$A$2  ='0701'!$A$3  ='0701'!$A$4  ='0701'!$A$5

結果的には↑これと同じことをしたいのですが(A列1行目には「0701」と表示されています)
これでは「0702」「0703」と続くたびにコピーして「0701」→「0702」と修正せねばなりません

そこでB列以降の「0701」部分にA1の数値を参照するような関数を書きたいのですが
どのように書けば良いでしょうか?
宜しくお願いします。
739名無しさん@そうだ選挙にいこう:2010/07/01(木) 23:15:21
>>737
サンクス
ペコリ
740名無しさん@そうだ選挙にいこう:2010/07/02(金) 02:11:57
ちょっと変則的なのですが
A3にA2-B1、B3にB2-C1、C3にD2-E1、
D3にE2-F1、E3にG2-H1、F3にH2-I1・・・
といった計算をさせたいのですが、
ドラッグしてフィルすることはできないでしょうか?
741名無しさん@そうだ選挙にいこう:2010/07/02(金) 04:40:45
できない
742名無しさん@そうだ選挙にいこう:2010/07/02(金) 12:26:27
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2007 SP2
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel2007 アドイン タブ

質問
自前のツールバーをアドインから追加した場合、
アドインタブに表示されると認識しています。

本日から何故か、アドインタブ自体が
表示されなくなりました。

診断プログラムで修復しても、アドインを再追加しても
オフィスを再インストールしてもアドインタブは表示されません。

ググっても有効な回答はありませんでした。

アドインタブの復活方法を教えてください。
743複乳:2010/07/02(金) 13:06:44
>>738
=INDIRECT("'"&A1&"'!a1",1)
で0701シートのA1
=INDIRECT("'"&$A$1&"'!a"&COLUMN(),1)
で列番号を組み合わせて完成
>>740
出来るぞ
A3=INDIRECT("r2c"&A4,0)-INDIRECT("r1c"&A4+1,0)
A4=1
A5=IF(MOD(A4+1,3)=0,A4+2,A4+1)
>>741
カワイソ・・
744742:2010/07/02(金) 15:44:56
自己解決

エクセルのレジストリを削除したら直りました。

ただ、どこが悪かったかは不明。

削除前後で比較したんですけどね…
745738:2010/07/02(金) 15:53:59
>>743
ありあとあーした
746名無しさん@そうだ選挙にいこう:2010/07/02(金) 18:42:14
>740
列名(列番号):計算対象1の列(列番号):計算対象2の列(列番号) 
A(1)     :A(1)            :B(2)
B(2)     :B(2)            :C(3)
C(3)     :D(4)            :E(5)
D(4)     :E(5)            :F(6)
E(5)     :G(7)            :H(8)
F(6)     :H(8)            :I(9)
規則性を見つけられるかどうかがミソ。
Open.Office.orgのCalcで試してみたら、
=OFFSET(A3;-1;INT((COLUMN()-1)/2))-OFFSET(A3;-2;INT((COLUMN()-1)/2)+1) でうまくいったので、
Excelなら ; を , に置き換えて
=OFFSET(A3,-1,INT((COLUMN()-1)/2))-OFFSET(A3,-2,INT((COLUMN()-1)/2)+1) 右へフィルコピー
でうまくいくのでは?
747名無しさん@そうだ選挙にいこう:2010/07/02(金) 20:35:38
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000、2002、2003

マクロで、ボタンをクリックしたら社内LANで繋がってるサーバに
書き込むようにしてますが、ここ最近、サーバの不調で
書き込めないときがあります。

このようなときは、個人のPCに書き込むようにしたいのですが、
書き込めないエラーを得るにはどう書けばいいですか?
748名無しさん@そうだ選挙にいこう:2010/07/02(金) 20:44:24
>>747
On Errorでトラップすればいいんだけど、鯖の不調はあらゆる業務に影響するだろ。
さっさと鯖缶に連絡して直してもらえ。
749名無しさん@そうだ選挙にいこう:2010/07/02(金) 21:39:23
>>748
On Error GoTo エラー って書いてるんですが、これだと全てのエラーに
反応してしまいます。書き込み時のエラーだけを得たいんですが・・・

サーバの問題は既に本社へ要請中ですが、対策しておきたいので。
750名無しさん@そうだ選挙にいこう:2010/07/02(金) 22:45:25
>>749
書き込みの直前でOn Error設定して、直後で解除。

っていうか、そんなにエラーがあちこちで出るようなプログラム作るなよ…
751名無しさん@そうだ選挙にいこう:2010/07/03(土) 00:59:16
>っていうか、そんなにエラーがあちこちで出るようなプログラム作るなよ…

それが出来たらここには来ないだろうなw
752複乳 :2010/07/03(土) 01:10:56
Err.Number vba
でぐぐれといいたいが、まずは>>750
他のエラーで同様の処理したりすると収集がつかなくなるぞ
753名無しさん@そうだ選挙にいこう:2010/07/03(土) 02:21:35
プログラミングが原因じゃないエラーだってあるだろうに・・
754名無しさん@そうだ選挙にいこう:2010/07/03(土) 03:06:42
>>753
そういうのは事前に予測してあらかじめ処理に組み込んでおくもんだ
できないのはプログラマーとしての経験値が低い
755名無しさん@そうだ選挙にいこう:2010/07/03(土) 03:27:41
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel2007 グラフ 横軸 X軸 設定

エクセルのグラフで横軸の設定を0,1,2,3…と書かれている範囲を設定しました。
その横に書いてある数値をデータの範囲としました。この時点でグラフにかかれているのは一つの折れ線グラフです。

このシートをコピーするとグラフが0,1,2,3…の数値の折れ線グラフと、その横にかいてある数値の折れ線グラフの二つに分かれてしまいます。
なにか設定がオカシイところがあるのでしょうか?
やりたいこととしては、X軸を0から始める折れ線グラフを一つ作るシートを作り、
そのシートをテンプレにして、コピーして使って行きたいと考えています。
こうしたほうが楽などアドバイスして頂ければ幸いです。
宜しくお願い致します。
756名無しさん@そうだ選挙にいこう:2010/07/03(土) 10:14:41
>755
X軸は基本「文字列」にしておくべきものです(自分で項目、系列を指定する場合を除く)
excelは文字列の並びを項目、数値の並びをグラフデータとみなすからです。
数値だけのデータが2組あれば、最初は2組のグラフができます。
このスレの>172,194が参考になるかと。
757名無しさん@そうだ選挙にいこう:2010/07/03(土) 11:18:21
>>756
2003だと何故かできたのですが、
回答のおかげで2007でもできました。
半日悩んでいた問題が解決し気持ちよく作業にはいれます。
本当にありがとうございました。
758名無しさん@そうだ選挙にいこう:2010/07/03(土) 16:31:18
カットアンドペーストでセルの内容を移動した場合、そのセルを参照している計算式が勝手に変更されますよね。
これをしないようにしたいのですが、方法はないでしょうか?

Excel2003(または2000)です。
759名無しさん@そうだ選挙にいこう:2010/07/03(土) 16:55:07
数字を全部打ち込み終わったんですが、一番たくさん出てくる数字順に並べ替えたいのですが、
どんな言葉でググったらいいでしょうか?
760名無しさん@そうだ選挙にいこう:2010/07/03(土) 17:03:36
>>758 絶対参照で
>>759 COUNT()
761名無しさん@そうだ選挙にいこう:2010/07/03(土) 17:49:02
>>759
並び替え
762名無しさん@そうだ選挙にいこう:2010/07/03(土) 18:18:44
>758 手間だけどコピペして消すしかない。
>760 絶対参照でも変わるよ。
763名無しさん@そうだ選挙にいこう:2010/07/03(土) 18:22:35
>>758
カットせずコピーして元を消す。
764名無しさん@そうだ選挙にいこう:2010/07/03(土) 18:33:55
>759 A列がデータとして作業列に =COUNTIF(A:A,A1)
作業列をキーに降順並び替え
765名無しさん@そうだ選挙にいこう:2010/07/03(土) 19:08:06
>>759ですが、みなさん丁寧にありがとうございました。
おかげさまで無事解決しました。が、出てくる数字があまりダブっていなくて・・・
今度は散布図のグラフに挑戦中です。
766758:2010/07/03(土) 19:13:26
皆様レスありがとうございます。

そうですか、対処法はなしですか。
開発者は親切のつもりでやってる仕様なんでしょうが、場合によっては余計なお世話になることが分からないんですかね・・・。
オンオフ切り替えできればいいのに。

とりあえず皆様どうもありがとうございました。
767名無しさん@そうだ選挙にいこう:2010/07/03(土) 19:31:00
>>758
>>763

もしコピーした方の式がずれるのが嫌なら
さらに上下左右にコピーして戻す
768名無しさん@そうだ選挙にいこう:2010/07/03(土) 19:48:58
すみません、散布図で行き詰まりました。
うまく説明できないのでこちら見ていただけますか?
(やりかたググってみつけたどなたかのHPです)
ttp://www.geocities.jp/kotopara_g/oshiete01/e_sanpuzu.htm

この授業料っていうのですが、4万円以下の部分はないからいらないじゃないですか
4万円〜10万円までの部分のX軸の値をもっと大きな縮尺(?)で見るにはどこいじればいいんでしょうか???
もとの値段を打ち込んだところをいじるのか、グラフをいじるのか?どうしてもわかりません。
769名無しさん@そうだ選挙にいこう:2010/07/03(土) 20:18:16
>768
エクセルでグラフを書こう! - Excelグラフの作成方法
ttp://asugi23.web.infoseek.co.jp/excel/repo4.htm#4

の、5-4縦軸・横軸の偏向 を参照。
最小値と最大値を調整するといいです。
770名無しさん@そうだ選挙にいこう:2010/07/03(土) 20:23:41
>>769
おおおおお!!!
目盛りの上でクリックすると開くものがあったとは知りませんで、
グラフの真上で一生懸命やっては開いて上から順番に見ては・・・繰り返していました。

(_ _ )
 ヽノ)  ありがとうございました!!
  ll
771名無しさん@そうだ選挙にいこう:2010/07/03(土) 21:51:12
>>750>>752>>754
マクロ書いてまだ3ヶ月なので、生暖かく見守ってくださいぃぃx・・・
772名無しさん@そうだ選挙にいこう:2010/07/03(土) 23:40:08
わたしは聞いておるのだ、Excel2003が入ってるPCにExcel2007も追加インストールして共存できるのかと。
773名無しさん@そうだ選挙にいこう:2010/07/04(日) 00:15:45
そうですか
774名無しさん@そうだ選挙にいこう:2010/07/04(日) 00:28:43
ぐぐ
775772:2010/07/04(日) 00:56:02
なにがそうですかだ、このやろう
わたしはね、物事を客観的に表現できる
あなたとは違うんです
776名無しさん@そうだ選挙にいこう:2010/07/04(日) 01:13:24
>>772
できるけどしないほうがいい。やり方は
エクセル 2003 2007 共存
辺りでググれ
個人的には2007にしてメニューバーだけ2003にするのがいいと思うぞ
777名無しさん@そうだ選挙にいこう:2010/07/04(日) 04:32:12
セルの大きさの自動調整のことで質問です。
人は境界をダブルクリックすると調度いいサイズになると言う。
でもならないんです。
なぜですか?

してるのにセル内の語句が2行のままで1行にならないし困るんです。
778名無しさん@そうだ選挙にいこう:2010/07/04(日) 04:57:55
>>777
そういう時は手動で一行になるように一度大きく広げてから境界をダブルクリック
779名無しさん@そうだ選挙にいこう:2010/07/04(日) 04:59:18
うちは2003と2007の共存で困った経験なんか一度もないのに、どうしてみんなやめろって言うんだろう?
780名無しさん@そうだ選挙にいこう:2010/07/04(日) 10:45:14
>>779
・スキルが高くて問題が起こっても一瞬で解決している
・頭が弱くて問題が起こったことに気づいてない
・そもそも共存する必要性があるかどうか
俺もなにか問題が起こった記憶があるが、忘れた
781名無しさん@そうだ選挙にいこう:2010/07/04(日) 17:22:44
こんにちは!
↓みたいなBOMデータを番号で並び替えすると1.10が1.1のあとにきてしまうのですが1.9のあとにくるようにするにはどうすればいいですか?

番号 部品名
1.1 部品A
1.2 部品B
|
1.9 部品J
1.10 部品K
1.11 部品L

1.1〜1.9を1.01みたいに0を追加すれば並べ替えしてくれるのですが部品表でそんな表記みたことないのでEXCELでなにかしらの設定あるんですかね?
782名無しさん@そうだ選挙にいこう:2010/07/04(日) 17:29:34
>>781
番号が数値になってないんでしょ
783781:2010/07/04(日) 17:36:13
>>782
いや番号が数値になっているからこそ、こういう問題が起こっていると思うが
784名無しさん@そうだ選挙にいこう:2010/07/04(日) 17:37:01
あ、わるい勘違い
1と点の後も2桁の数字に解釈して欲しいのね
通常は無理
オプションのユーザー設定リストに入れるか
数値の前と後ろを別のセルに入れるとか
785名無しさん@そうだ選挙にいこう:2010/07/04(日) 17:41:31
後全角で入れるなどして文字列と判断させるとその順に並ぶのかな?
でもちょっとセル内を弄ると数値になったりして面倒なことになると思う
786名無しさん@そうだ選挙にいこう:2010/07/04(日) 17:50:56
そのままじゃむり。
横に1.1を1.01に変換したセルをつくってそこで並び替え。
787名無しさん@そうだ選挙にいこう:2010/07/04(日) 18:21:17
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 条件付書式 マイナス 次の値以下 

質問させてください。
A5の数値がB4より少なかった場合、A5のセルを赤地に変えるということをやりたいのですが、
これは「条件付き書式」という機能で「数式が」という選択をしたあとに、どのような数式を入れたらいいかわかりません。
また、同様の書式を4の行の全てのセルに対して設定したい場合、セル一つ一つ設定せずに
一度にまとめて設定したい場合、どのような操作をすればよいのでしょうか?
詳しい方いらっしゃればご教示お願いいたします。
788名無しさん@そうだ選挙にいこう:2010/07/04(日) 18:38:39
A5に =(A5<B4) といれる
複数のセルに設定したいときは、範囲を選択してから同様に
789名無しさん@そうだ選挙にいこう:2010/07/04(日) 18:46:19
>>787
こんな感じかね

=AND(A5<B4,A5<>"")

後、4の行すべて?5行目じゃなくて?5行目をB4と比べたい時は
=AND(A5<$B$4,A5<>"")
みたいな感じ。
790名無しさん@そうだ選挙にいこう:2010/07/04(日) 18:48:46
ご回答ありがとうございます。
全てのセルに対して設定したいのはまったく同じ条件ではなくて、
A5の横のB5に対しては=(B5<C4)、C5に対しては=(C5<D4)と
一つづつずらして設定したいのです。 言葉足らずですみません。
791名無しさん@そうだ選挙にいこう:2010/07/04(日) 18:50:42
>>790
じゃあ、B5で設定したセルをコピー→他のセルに形式を選択して貼りつけで、「書式」を
792名無しさん@そうだ選挙にいこう:2010/07/04(日) 18:53:03
>>788
括弧イラネ
793名無しさん@そうだ選挙にいこう:2010/07/04(日) 19:01:58
>>790
絶対参照で指定しなければ、隣のセルを参照するように変換される
>>792
カッコないと見づらいので
794787:2010/07/04(日) 19:07:04
>>789
その通りです、5行目でした・・・

皆様レスありがとうございました。
今試行中ですが、
おかげさまでうまく設定できそうです。
ありがとうございました。
795名無しさん@そうだ選挙にいこう:2010/07/05(月) 00:39:53
エクセルのファイルへアクセスした日時を見ることってできますか?

プロパティのアクセス日時ではなく履歴(ログ)的なものが見たいです。
796名無しさん@そうだ選挙にいこう:2010/07/05(月) 00:42:26
悪さですか、そうですか
797名無しさん@そうだ選挙にいこう:2010/07/05(月) 01:55:49
無理
798名無しさん@そうだ選挙にいこう:2010/07/05(月) 02:15:25
>>795
やろうと思えばできるけど、いろいろと小細工が必要。

ファイルサーバ上にあるなら、ファイルサーバのアクセスログとか見れ。

そのファイルだけ…ていうなら、バッチファイル(時刻をどこかに
記録させてからExcelを開く)をひとつ作って、ソレ使えと徹底。

どうしても Excel でやりたいなら、ファイルオープン時にマクロで
どっかにオープン時刻を書き出したりとかしれ。
もっとも、マクロでやると無効化できるから知識あるヤツには無駄。
無効化されない方法(署名)もあるが、ファイルの更新が大変になる。
799名無しさん@そうだ選挙にいこう:2010/07/05(月) 09:06:17
ファイルの読み書きを監視するフリーウェアとかあるよ
800名無しさん@そうだ選挙にいこう:2010/07/05(月) 18:33:55
エクセル2003のVBA、カラーインデックスについて教えてください。
1は黒、2は白、3は赤と決まっているようですが、これ暗記しないとだめなのでしょうか?
この番号は、この色だってわかる方法がありましたらお教えください。エクセル単体だけで
801名無しさん@そうだ選挙にいこう:2010/07/05(月) 18:57:19
番号のかわりにVBの定数を記述するのおk

黒 vbBlack
赤 vbRed
緑 vbGreen
黄 vbYellow
青 vbBlue
マゼンタ vbMagenta
シアン vbCyan
白 vbWhite
802名無しさん@そうだ選挙にいこう:2010/07/05(月) 19:04:10
>800
こういうページもありますよ
ColorIndexプロパティ値一覧:インストラクターのネタ帳
ttp://www.relief.jp/itnote/xls_colorindex.php
803名無しさん@そうだ選挙にいこう:2010/07/05(月) 19:52:22
>>801
>>802
ありがとうございます。
やはりエクセルのヘルプ等で調べることはできないということでしょうか?
ちょっと試験があるので、色の番号まで暗記するのは大変だなあと思いまして・・・
804名無しさん@そうだ選挙にいこう:2010/07/05(月) 19:58:52
>803
ColorIndexの番号と色の暗記のテストする学校or資格試験なぞ、やめてしまえ
805名無しさん@そうだ選挙にいこう:2010/07/05(月) 20:17:49
色番号を覚える必要性が分からない。先生の頭がおかしすぎる
806名無しさん@そうだ選挙にいこう:2010/07/05(月) 20:21:54
あ、あと、少なくとも2010ではColorIndex番号はヘルプで調べられる
807名無しさん@そうだ選挙にいこう:2010/07/05(月) 21:16:00
マクロの記録で好きな色選んで、その一文だけコピペするってのは?
808名無しさん@そうだ選挙にいこう:2010/07/05(月) 21:57:00
>>800
どこにどの色があるかいちいち確認したくないってことでしょ?
書き出しておけばOK!

colorindexは色を変更できるので場所以外意味がないよ
809名無しさん@そうだ選挙にいこう:2010/07/05(月) 21:57:08
>>800
ttp://www.relief.jp/itnote/archives/000482.php
黒(0,0,0)白(255,255,255)の次は
R、G、B、RG、RB、GB
が二周続いて白黒(192,192,192)、黒白(128,128,128)
か。16までは無いよりマシ程度の変な法則だが一応ある。17以降はキツイ(意欲的な意味で)。
なんの役にも立たない本気でクソなテスト。学校名晒せば入学者数減るレベル。晒していいぞ
810名無しさん@そうだ選挙にいこう:2010/07/05(月) 22:03:46
例えば、エクセルのテストがあってそれで表を作るとする
そのとき欲しい色がどこにあるのかすぐに分かると便利って事でしょ?
色そのものの問題が出るということではないはず
みなさん勘違いしすぎ
811名無しさん@そうだ選挙にいこう:2010/07/05(月) 22:22:39
ベストは>>807>>806
>>810 本人がそうといってもないし問題見たわけじゃないし、何を決めつけているんだ
812名無しさん@そうだ選挙にいこう:2010/07/05(月) 22:26:04
例えば、エクセルのテストがあってそれで表を作るとする
そのとき欲しい色がどこにあるのかすぐに分かると便利って事じゃない?
色そのものの問題が出るとは書かれていない
みなさん決めつけすぎ

こうなら正解かも
813名無しさん@そうだ選挙にいこう:2010/07/06(火) 01:40:14
質問です。2007です。
競馬なので恐縮でなのですが、下記のデータが数万行入力してあります。
A列からD列は今回、E列からH列が前走のデータです。
C列の馬の前走のデータがE列からG列になります。
A列日付、B列場所、C列馬名、D列指数、
E列日付、F列場所、G列馬名、H列前走の指数

H列には何のデータも入っていないので、抽出して入力したいと思っています。
H列に下記のように入力したら、計算をするのにかなり時間を要してしまいました。
SUMPRODUCT((A:A=E)*(B:B=F)*(C:C=G),D:D)

何か他に適切なやり方はあるでしょうか?
前走は走っていない馬もいるのでE列、F列、G列には空白になっている所があります。
どなたか宜しくお願いします。
814名無しさん@そうだ選挙にいこう:2010/07/06(火) 02:52:57
>>813
ちょっとサンプルのデータをどっかに上げてくんない?
20行ぐらい抜き出して
815名無しさん@そうだ選挙にいこう:2010/07/06(火) 03:37:57
win7
excel2007
vba 否
検索キーワード excel2007 グラフ 複数




エクセルのグラフで下記のものを、一つの表に統合したいのですがどうすればいいでしょうか。

http://www.shinetworks.net/cgi-bin/img-up/src/1278354649018.jpg



816名無しさん@そうだ選挙にいこう:2010/07/06(火) 08:04:14
>>813
空白のH列を特定したいなら、オートフィルターではだめ?
いまいち何が目的なのかはっきりわからん
817名無しさん@そうだ選挙にいこう:2010/07/06(火) 08:47:19
>>816
>>オートフィルターではだめ?

そんな簡単に出来たら質問してません。

>>いまいち何が目的なのかはっきりわからん

そんなことは説明する必要は無いと思います。
分からないならレスしないでください。
818名無しさん@そうだ選挙にいこう:2010/07/06(火) 10:02:25
>>817 このレスは私ではないですよ。
819名無しさん@そうだ選挙にいこう:2010/07/06(火) 10:10:53
私でもないですよ。
820名無しさん@そうだ選挙にいこう:2010/07/06(火) 10:13:25
なりすましかよ
SUMPRODUCT使うくらいだからDQNなのは仕方ないと思ったが違ったか
821名無しさん@そうだ選挙にいこう:2010/07/06(火) 11:10:11
>>814
A列 B列 C列 D列 E列 F列 G列
1 100630 数学 田中 70 100512 英語
2 100621 英語 吉田 85 100601 国語
3 100512 英語 田中 90
上記のようにA列日付、B列科目、C列名前、D列点数、E列日付、F列科目が入力されてます。
G列は点数なのですが空白になっているので、A〜D列から抽出したいと思います。
数式はG列に打ち込みます。E〜G列はC列の人の前回のデーターです。
前回にテストを受けたとは限らないので、3行のようにE〜G列が空白の部分があります。
例えばG列1行には90が入ります。

822名無しさん@そうだ選挙にいこう:2010/07/06(火) 11:19:06
お前らって何も知らないわりに偉そうだよな。
と言っても、mixiもゆとりが入って来てからは会話が成り立たなくなったが。
823名無しさん@そうだ選挙にいこう:2010/07/06(火) 11:55:02
>>821
一番わかりやすいのは、作業列に日付と科目を合成したデータを入れてしまうこと。
X列 ← A列+B列
Y列 ← E列+F列
これで普通にLOOKUPが使えるようになる。
824名無しさん@そうだ選挙にいこう:2010/07/06(火) 12:06:27
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
(ただし、同じデータを色々なパソコンでいじっていたためゴチャゴチャになっているのかも?)
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 EXCEL CTRLを押さないと更新されない


SUM(A1,B1)等の数式の入ったセルを、クリック&ドラッグで、ひっぱって
SUM(A2,B2) SUM(A3,B3) SUM(A4,B4) のように、一気に作ったときに

SUM(A4,B4) の計算後のセルの中身が SUM(A1,B1)と同じ数字になってしまっています。
CTRLボタンを押すとSUM(A4,B4) の数字に直るのですが・・・

CTRLを押さなくても、自動的にSUM(A4,B4) の計算にしてくれる方法は無いでしょうか?

教えていただけると助かります。
825複乳:2010/07/06(火) 12:10:05
>>824
その作業の名前はオートフィルね

それとは関係無しに自動計算が解除されて手動計算になってると思う
ツール→オプション→計算方法
を自動にチェック。
826824:2010/07/06(火) 12:16:08
>>825
直りました^^有難う御座います。
827名無しさん@そうだ選挙にいこう:2010/07/06(火) 12:59:43
>>813>>821 です。
自己解決してしまいました。申し訳ないです。
普通にSUMIFSでやればよかっただけでした。
SUMPRODUCT、MATCH、INDEX関数を使って色々やってましたが、簡単なやり方がありました。
ややこしく考えすぎたようです。
抽出でなく合計でも良かったわけですから。
828名無しさん@そうだ選挙にいこう:2010/07/06(火) 14:13:36
結局DQNには変わりなかったなw
829名無しさん@そうだ選挙にいこう:2010/07/06(火) 19:47:10
↑ゆとりはこんなのばかりだな。www多発するからすぐ分かる。
馬鹿なわりに他人を中傷してスレを荒らす。
この世代は完全に失敗作。
830名無しさん@そうだ選挙にいこう:2010/07/07(水) 04:15:38
勝手に特定するお前も同じ
スルースルー

そんなおれもな
831名無しさん@そうだ選挙にいこう:2010/07/07(水) 10:52:03
>>829
自分を見つめ直した方がいいな
832名無しさん@そうだ選挙にいこう:2010/07/07(水) 11:17:59
そうだよねw
833名無しさん@そうだ選挙にいこう:2010/07/07(水) 16:03:15
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 EXCEL 並べ換え

一番左側の列に、最初から、1から順に番号が入っていますよね
そして、それぞれのセルにも内容を入力したんですけど、この一番
左側の列の最初から入ってある番号の逆順に上からセルを並べ
変えたいんですけど、どうすればよいでしょうか?
834833:2010/07/07(水) 16:05:10
わかりにくくて、すみません。
つまりすでに入力してあるセルを、行番号降順に並べ換えを
したいのですが…
835複乳:2010/07/07(水) 16:40:50
>>834
別の列に1.2.3...とオートフィルで入力してその列を基準に逆順で並び替え
836名無しさん@そうだ選挙にいこう:2010/07/07(水) 16:53:40
>>835
どうもありがとうございます。
837名無しさん@そうだ選挙にいこう:2010/07/07(水) 21:08:20
ttp://questionbox.jp.msn.com/qa3173441.html
すみません、これを改造しようと試みたのですがさっぱり理解できませんでしたorz

これを該当単語がヒットした場合、A列にファイル名を入れて、
Bより右に該当単語のあった行をまるまるペーストする方法にはできないでしょうか?
該当単語の出てくるシートみよって列幅が違うので行まるごと抽出したいのですが…
838名無しさん@そうだ選挙にいこう:2010/07/07(水) 21:52:37
重量の比率なんですが、小数点第3位で四捨五入して合計すると100.00になりません。
A列の数字はそのままで、キッチリ100.00となるようにするにはどうすればいいですか?
数値は小数点第2位まで必要です。

A   B
52   22.51  =ROUND(A1/$A$6*100,2)
35   15.15
47   20.35
26   11.26
71   30.74
231 100.01
839名無しさん@そうだ選挙にいこう:2010/07/07(水) 22:15:55
>>837
A列にファイル名 & 行まるごとペーストする
他にも方法はあるとは思いますが 以下はどうですか?

'件のサイトの '転記の With〜End With部分の 改造のみ
With ThisWorkbook.Sheets("Sheet1")   '転記
 Sh.Rows(i).Copy              '対象シートのi行をcopy
 .Paste Destination:=.Rows(n)      'n行にPaste
 .Cells(n, 1).Insert Shift:=xlToRight   'n行を右に1列シフト
 .Cells(n, 1).Value = wb.Name      ''n行A列にブック名を入れる
End With
840名無しさん@そうだ選挙にいこう:2010/07/07(水) 22:19:41
>>838
B5 =100-SUM(B1:B4)
841839:2010/07/07(水) 22:39:53
補足というか訂正

>>839 だと 書式からなんから全てPasteしてしまうので
値のみをPasteしたければ

 .Paste Destination:=.Rows(n)

.Rows(n).PasteSpecial Paste:=xlValues
へ変更してね
842名無しさん@そうだ選挙にいこう:2010/07/07(水) 22:52:45
>>838
四捨五入すると合計は狂う
例えばデータが99.5と0.5の2つで少数点以下四捨五入の場合を考えてみ
99.5→100
. 0.5→  1
計 →101
こういう場合は合計に対しても比率を求めるようにする。つまり=231/231みたいな数式を書く
843名無しさん@そうだ選挙にいこう:2010/07/07(水) 23:59:39
え?
844名無しさん@そうだ選挙にいこう:2010/07/08(木) 00:02:14
表記が四捨五入されるだけで、データはそのまんまじゃない?
845名無しさん@そうだ選挙にいこう:2010/07/08(木) 00:15:50
842は質問者の意図を理解してない
846名無しさん@そうだ選挙にいこう:2010/07/08(木) 00:20:40
あ、ごめんおれも理解してない >>844
847名無しさん@そうだ選挙にいこう:2010/07/08(木) 01:05:56
ROUND関数を使ってるからデータは実際より増えたり減ったりしている
だから合計がきっちり100にならない場合が出てくる

書式設定で表示桁数を変えた場合、SUM関数の結果はたいてい100になるが
(もちろん演算誤差でならない場合もあるが)
表示された数字をそのまま足しても合計が100にはならないケースが出てくる
たとえば印刷された物を誰かが電卓で検算したりするとボロが出る

さあどうする
848名無しさん@そうだ選挙にいこう:2010/07/08(木) 07:38:02
統計だと「丸めにより合計が100にならない場合がある」って注記するのはお約束だけどね
100にするために恣意的に四捨五入のルールを破るほうが問題ある
849名無しさん@そうだ選挙にいこう:2010/07/08(木) 17:49:26
そんな注記は見たことがない。
つーか、そんな注記が許されるのは、どんな部署だ?
850名無しさん@そうだ選挙にいこう:2010/07/08(木) 18:40:20
>>849
おまえはなにをいっているんだ。
"100にならない" "統計"でぐぐったら875,000件ヒットしたぞ
851名無しさん@そうだ選挙にいこう:2010/07/08(木) 19:12:21
合計を合わせる事に重きを置くなら>>840みたいに端数をどこかに乗っけるような方法しかないと思う
852名無しさん@そうだ選挙にいこう:2010/07/08(木) 19:40:47
>>850
もっと多いんじゃね?
俺がやったら155万件だったぞ?
853複乳:2010/07/08(木) 20:10:58
>>852
括弧でくくるかくくらないかの違い
この件数だとセーフサーチ全員オフだなフヒヒ
854名無しさん@そうだ選挙にいこう:2010/07/08(木) 20:57:58
>>850
おまえはなにをいっているんだ。
"100にならない" "統計"でぐぐったら875,000件ヒットしたから何?

「統計だと「丸めにより合計が100にならない場合がある」って注記するのはお約束」なんて
注記が許されるのは、どんな部署だ?って聞いてるんだよ。糞ガキ
855名無しさん@そうだ選挙にいこう:2010/07/08(木) 21:12:34
注記するまでもない些細なことだろ
小数点第2位までしか出してないんだしさ
856名無しさん@そうだ選挙にいこう:2010/07/08(木) 21:43:10
>>854
グダグダうるせーな、どこの部署か?
国の総務省統計局だよ!!

ttp://www.stat.go.jp/data/sekai/03.htm
857名無しさん@そうだ選挙にいこう:2010/07/08(木) 22:02:39
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2003 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel(又はエクセル) パレート図 標準 作成 機能 サポート

スレの趣旨とはズレるかもしれませんが・・・
Excelでパレート図を作れない(ウィザードに従えば作れるようにならない)のは何故なんでしょうか?
パレート図を作れるソフトがありますが、 複数のPCで使うとなると何かと面倒ですし・・・
Excel開発者の国(アメリカ)ではパレート図が一般的じゃない(?)からなんですかね?
数値軸の最大値=サンプル数に設定し直す方法で対処していますが、
気分的に最大値はキリの良い数字にしたいんです。

858名無しさん@そうだ選挙にいこう:2010/07/08(木) 22:17:46
累計等を計算してから「2軸上の折れ線と縦棒」を選んで微調整するしかないか
859857:2010/07/08(木) 22:28:04
訂正です
×【2 Excelのバージョン   】 Excel 2003 2007
○【2 Excelのバージョン   】 Excel 2000 2003 2007

でした
因みに2003、2007は会社のPCで、2000は自宅のPCです
QC検定を受ける羽目になってしまい自宅で練習していたのですが
バージョン確認したらExcel2000でした・・・
860名無しさん@そうだ選挙にいこう:2010/07/08(木) 23:00:46
資格と実務はかけ離れていると言われてるけど、QC検定は最たる資格と言えるなw
試験では公式を暗記して電卓で計算っていうのが泣けてくる。
861名無しさん@そうだ選挙にいこう:2010/07/08(木) 23:18:52
>>856
>国によっては国内総生産に統計上の不突合を含むため,内訳の合計は必ずしも100にはならない。

統計だと「丸めにより合計が100にならない場合がある とは意味が違うことに気付け!
862名無しさん@そうだ選挙にいこう:2010/07/08(木) 23:32:14
めんどくせぇバカだな
ほれ、特許庁
ttp://www.jpo.go.jp/shiryou/toukei/toukei_cyuui.htm
863名無しさん@そうだ選挙にいこう:2010/07/08(木) 23:58:37
アホの相手、ご苦労様ですw
864複乳:2010/07/09(金) 09:59:45
>>862
お疲れ様です!
865名無しさん@そうだ選挙にいこう:2010/07/09(金) 18:44:49
アホ沈黙?思ったより根性ないなー。特許庁みたいな三流官庁がなんぼのもんじゃー!
くらい暴れてくれると思ったのに
866名無しさん@そうだ選挙にいこう:2010/07/09(金) 19:59:10
ウェブサイトから、表をコピーしてExcelに貼りつけたら、変なのが表示されます。


↓これです。ダウンロード後拡張子をxlsに変えてください<(_ _)>
http://2sen.dip.jp/cgi-bin/upgun/up1/source/up44091.xxx

これが表示が非常に重くて困っています。
しかし、どうやってもこれを消す方法がわかりません。
これが存在する行ごと削除しても消えません。

どうやれば消せるでしょうか?
Excel2003です。
867名無しさん@そうだ選挙にいこう:2010/07/09(金) 20:21:54
>>866
「オブジェクトの選択」アイコンをクリックしてからボタンの周囲をドラッグすると
小さい丸で囲まれるから、そうなった状態でDeleteキーを押す
複数一度に消せるから、たくさんある場合はワークシートの表示倍率を25%に縮小してから消すといい
868名無しさん@そうだ選挙にいこう:2010/07/09(金) 21:20:50
>>867
「オブジェクトの選択」が見つからず、死ぬほど探しましたが見つかりました。

消せました。

どうもありがとうございました。
869名無しさん@そうだ選挙にいこう:2010/07/09(金) 23:12:55
>>865
花金だっつーのにまっすぐ帰宅して2ちゃん三昧か?
ま、必死になって該当するホムペを探し当てた努力だけは買ってやるが
おまいの努力な何の意味もねーだろ?
870名無しさん@そうだ選挙にいこう:2010/07/09(金) 23:14:20
x 努力な
o 努力は

すまん、寝る
871名無しさん@そうだ選挙にいこう:2010/07/10(土) 00:27:36
統計で全体を100とするなら、「四捨五入したから100になりません」なんて言い訳は通らんだろ?(jk

そんな言い訳をするやつがいたら、融通が利かず、人付き合いも悪く、人間性に問題があるぞ。
872名無しさん@そうだ選挙にいこう:2010/07/10(土) 00:30:53
花金www

アホの為にせっかく用意してくれたのに「意味がねー」って・・・
読んでも分かんなかったってことかな?
873名無しさん@そうだ選挙にいこう:2010/07/10(土) 00:32:06
>871

うわぁ〜
天然だったのかw

早く社会に出ろよなっ
874名無しさん@そうだ選挙にいこう:2010/07/10(土) 00:47:50
>>873
「統計で全体を100とするなら」って読めなかったのかい?
全体を100とする って意味が消防には難しかったかなwww
875名無しさん@そうだ選挙にいこう:2010/07/10(土) 00:58:36
男の子が19人、オニャノコが21人のクラスでは男48%、女53%で101%になるますo
なんも問題ないよ?
876名無しさん@そうだ選挙にいこう:2010/07/10(土) 02:25:18
ごめんな(´・ω・`)
必死にハァハァいって該当HP探し出したんじゃなくて、
行政計画策定するのが仕事なもんで、
普段から統計書や計画書に但し書き書いてるんだわ…
当然比較用に使うべくかき集めた国や各自治体統計書でも
書かれてるのは知ってるんよ…

めんどくせーからついでに言うと、
これ書いておかないとお前みたいなのが
「合計しても100にならないザマス!!ムキイイイーーーー!!」
とか窓口に来る訳ね(´;ω;`)

ごめんねごめんね、もう一個先に言っとくよ
こういうのって外注だから俺公務員じゃない訳ねw
だから「公僕の分際で税金で2ちゃんかよ氏ね!」とかいう与太は無しねw
877名無しさん@そうだ選挙に行こう:2010/07/10(土) 09:42:44
まあ、仮に3人にアンケートしてA、B、Cの回答を1人ずつしたとする。
そしたら、比率はA、B、C各33%になるわけだ。
合計しても100%にならないから、どこかで調整するとしたらひとつだけ34%にしないと
いけない。実際は1/3で3つとも同じなのにひとつだけ突出することになる。
これがはたして正しい表現なんでしょうかねえ。
878名無しさん@そうだ選挙に行こう:2010/07/10(土) 09:46:39
数学・統計の分野?詳しくはそっちで議論を。
個人的には100%なんかにしなくていいと思うけど。
はるか昔の記憶でも、100%に丸めた記憶がない。
879名無しさん@そうだ選挙に行こう:2010/07/10(土) 11:18:42
四捨五入で100%にならない、そんなのあたりまえだし
だからと、拘るアホへ注意書きを書く、これもあたりまえ
しかし、四捨五入しておかしくなった数値を、帳尻を合わせるために更におかしくする
これはどうだろ?
880名無しさん@そうだ選挙に行こう:2010/07/10(土) 14:01:32
>>879
注意書きをする、ってのはそんなに当たり前とは思わないけどなぁ。テレビや雑誌でそんな記述を目にしないからね。特許庁やらのHPだしてきたけど、それが一般的(大多数)とも思えない。
いや、どっちも方向は同じだと思うので、煽りはやめれって事です。
881名無しさん@そうだ選挙に行こう:2010/07/10(土) 14:20:11
それでこそアホの子
>>877みたいな場合はひとつだけ34%にしてつじつまを合わせちゃうわけだな?w
882名無しさん@そうだ選挙に行こう:2010/07/10(土) 14:39:03
なんか話がズレてないか?
元の質問者は、キッチリ100.00にするにはどうしたらいいかってことだったぞ。
なのに、注意書きして100にはならないって・・・
しかも877の例は的を射てないなしw
883名無しさん@そうだ選挙に行こう:2010/07/10(土) 14:43:25
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

B5の横のシートを印刷する時に、印刷時に自動でA4の縦で印刷(倍率もA4にあわせて114%で)したいのですが、
デフォルトで設定できる方法はないでしょうか?(他のシートではA4の書類があるため1つのシートだけ個別に設定したい)
よろしくお願いします。
884名無しさん@そうだ選挙に行こう:2010/07/10(土) 14:51:46
>>883
プリンタドライバの仕事
885名無しさん@そうだ選挙に行こう:2010/07/10(土) 15:10:59
B5横をA4縦で印刷するなら縮小しないと横がはみ出すんでは?
886名無しさん@そうだ選挙に行こう:2010/07/10(土) 15:21:42
>>883
とりあえず印刷設定で印刷時縮小拡大、用紙サイズ指定すればシートごとに適用されるけど
887名無しさん@そうだ選挙に行こう:2010/07/10(土) 16:11:38
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010

セルの塗潰しのコマンドを、
以前のバージョンのようにツールバーから独立させシート上で使いたいのですが、
2010では出来ないのでしょうか?
888名無しさん@そうだ選挙に行こう:2010/07/10(土) 19:31:39
>>887
2007から出来なくなって、2010も出来ないらしい

http://fnya.cocolog-nifty.com/blog/2009/03/excel-2003-exce.html

こういうのを使うしかないけど、会社ではこういうのを組み込めないことが多いから不便だよね(´・ω・`)
889名無しさん@そうだ選挙に行こう:2010/07/10(土) 19:59:26
>>882
なんでも質問者の要望に応えりゃいいってもんじゃないと思うが。
890名無しさん@そうだ選挙に行こう:2010/07/10(土) 21:21:55
>>838の質問に対する答えは>>840で解決済み。
ところが、>>842とか>>847がお茶を濁し、>>848からgdgdw
891名無しさん@そうだ選挙に行こう:2010/07/11(日) 00:37:57
>>890
>840では、-0.01となるから解決してないんじやないか?
>838は、これを機に質問の意味を自分で考えてほしい。四捨五入すれば、少なからずズレがおきるのは当たり前だから、それを少なくしたいのか、ピッタリにしたいのかで、JISで定義している[数値の丸め]を使うか、元の数値すべてを使用するかを自分で判断してほしい。
と言う事で、単純に関数だけでちょちょっとは出来ません。が解答と思います。

長文ごめんなさい。見てたら気になったので、書き込みました。>all
892名無しさん@そうだ選挙に行こう:2010/07/11(日) 02:36:56
合計が100にはならない。さあどうする

(1) 合計が99や101になってもそのまま書く。
(2) 個々のデータをごまかして100になるように調整する。
(3) 合計をごまかして100と書いてしまう。
(4) 四捨五入ではなく、五捨六入してみる。

いずれにしても、注意書きがないとクレームが来るかもね。
893名無しさん@そうだ選挙に行こう:2010/07/11(日) 03:09:23
>>840が一番アホな回答だなw
>>848なんてごくまともじゃん。
894名無しさん@そうだ選挙に行こう:2010/07/11(日) 06:09:14
まだやってたのかw
全体を100とするなら、どこかで帳尻合わせが必要だろうに。
おまいら全員バカなのか?
895名無しさん@そうだ選挙に行こう:2010/07/11(日) 06:15:55
>>891
質問の意味を自分で考えてほしいって、お前もバカだなw
キッチリ100.00となるようにするにはどうすればいいですか?って質問なんだから
それに答えりゃいいんだよ。
896名無しさん@そうだ選挙に行こう:2010/07/11(日) 07:51:21
クロス集計するのに関数で出来ますかと言われて、喜んでホイホイSUMPRODUCTを答えるアホみたいなやつがいるな
「関数は向いてません。ピボットを使いなさい」がより親切な答えなんだよ
何でも質問者の言うことを聞くやつはヴァカ
897名無しさん@そうだ選挙に行こう:2010/07/11(日) 08:17:55
テレビ局のアンケート調査することあるんだが、われら民団が応援してる政党に少しでも有利になるように帳尻合わせやるぜ?
たまにデータ改竄もやるがねw
チョッパリって融通が効かないのねwww
898名無しさん@そうだ選挙に行こう:2010/07/11(日) 10:24:44
>>895
お前>890だろ
お前の理屈だと答え出てないから、お前がキッチリ答えてやれよ。
899名無しさん@そうだ選挙に行こう:2010/07/11(日) 11:39:24
>>896
出すだけならそれでいいが、ソフト的に作って自動で出したいという事もあるだろ。
作業をしたいわけじゃないってわけだ。
900名無しさん@そうだ選挙に行こう:2010/07/11(日) 13:03:28
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

J列 K行
6   V
12  V
3 
22  V

5   V
19  V
7   V
12
40  V




上記のような行が150行ぐらいあるんですが
J列の数値とK列のV表示の関連性を調べたい場合どのようにすれば良いでしょうか?
「J列の数値が○○以上ではVが出にくい」とか
「J列の数値が○○〜○○が一番Vが出やすい」などがわかるような
グラフや関数があれば教えていただきたいのですが・・・
漠然とした質問ですいません
901名無しさん@そうだ選挙に行こう:2010/07/11(日) 13:10:44
>>899
ピボットはユーザーが使えなくても無問題。
誰かが作ってVBAでピボットを操作するコードを書いてボタンでも押して貰えばよい。
ボタンくらいだれでも押せる。
データソースの変更に名前定義使えばあとは更新だけだから、更新くらいは覚えて貰ってもいいと思うが。
902名無しさん@そうだ選挙に行こう:2010/07/11(日) 13:28:26
>>901
いきなりVBAを書けってのも乱暴だろ w
903名無しさん@そうだ選挙に行こう:2010/07/11(日) 13:36:59
>>900
らピボットグラフでも使えばいいんじゃね?
904名無しさん@そうだ選挙に行こう:2010/07/11(日) 13:38:17
>>902
アホでつか?
更新くらい記録マクロで十分だぞ?
905902:2010/07/11(日) 13:42:45
>>904
確かに俺がアホだった
逝ってくる
906名無しさん@そうだ選挙に行こう:2010/07/11(日) 14:31:30
>>904
記録マクロなんて忘れてたよ、すまんすまんw
907名無しさん@そうだ選挙に行こう:2010/07/11(日) 15:19:20
>>898
答えは出てる
848は間違いではないが838の質問に対しする回答としては0点
908名無しさん@そうだ選挙に行こう:2010/07/11(日) 15:41:13
このスレ釣れすぎて楽しいww
いつまでファビョってるのw
>>861はもういねーよw
909名無しさん@そうだ選挙に行こう:2010/07/11(日) 17:24:22
E列
4
-9
13
16
-9
-4
9
-18
21
13

上の表があってE列の数値の絶対値の平均を求める関数はどのように書けば良いでしょうか?
910名無しさん@そうだ選挙に行こう:2010/07/11(日) 17:35:55
>>909
=(SUMIF(E1:E10,">0")-SUMIF(E1:E10,"<0"))/COUNTA(E1:E10)
911名無しさん@そうだ選挙に行こう:2010/07/11(日) 17:38:04
>>909
=AVERAGE(INDEX(ABS(E1:E10),))

または
=AVERAGE(ABS(E1:E10))
CTRL+SHIFT+ENTERで確定
912名無しさん@そうだ選挙に行こう:2010/07/11(日) 18:27:42
>>899
Excelはピボット使うためのアプリケーションです。
913名無しさん@そうだ選挙に行こう:2010/07/11(日) 18:49:15
釣られるお子様が多いので先に言って置く
>>912に釣られないように
雑談は雑談スレでやってね
914名無しさん@そうだ選挙に行こう:2010/07/11(日) 20:12:48
Excelのグラフ機能を有効活用してみた
ttp://twitpic.com/238exe
とてもわかりやすい
915名無しさん@そうだ選挙に行こう:2010/07/11(日) 20:28:39
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

4ケタのアルファベットがあって、以下の条件で分けるには
どうすればいいですか?

abcd ...... 全て小文字なら残す
ABCD ..... 全て大文字なら残す
Abcd ..... 最初が大文字で、他の3文字が全て小文字なら残す
aBcd ..... 上記以外なので削除
AbCD ..... 上記以外なので削除
AbCd .... 上記以外なので削除
916名無しさん@そうだ選挙に行こう:2010/07/11(日) 20:38:24
>>912
896だがファイト!w
917名無しさん@そうだ選挙に行こう:2010/07/11(日) 20:44:35
ま、Excel使う実務でやりたいことはクロス集計なんだよな。
Excel使うやつには2種類いる。ピボット使うやつと使わないやつ。
目の前の問題をクロス集計というモデルに帰結させることができるかどうか。
そこが能力の分かれ目。
918名無しさん@そうだ選挙に行こう:2010/07/11(日) 20:45:29
>>915
残す?ってなに?
=IF(OR(EXACT(LOWER(A1),A1),EXACT(UPPER(A1),A1),EXACT(PROPER(A1),A1)),A1,"")

こんな感じにすれば、判別はつくけど
919名無しさん@そうだ選挙に行こう:2010/07/11(日) 21:05:45
>>910-911
ありがとうございます
920名無しさん@そうだ選挙に行こう:2010/07/11(日) 21:33:05
>残す?ってなに?
削除しないって意味じゃね?
921名無しさん@そうだ選挙に行こう:2010/07/11(日) 21:37:53
削除するって意味であれば、vbaだな、と想像はしているけれどさ・・・
922名無しさん@そうだ選挙に行こう:2010/07/11(日) 22:16:34
ピボットも最近は不自由なく使えるようになったかよな。
ある意味馬鹿でも使える。
昔は使えないケースがたまにあったから、他のテクニックも勉強しないと駄目だった。
923名無しさん@そうだ選挙に行こう:2010/07/11(日) 22:33:59
もう一度言いましょう。
Excelはピボット使うためのアプリケーションです。
924名無しさん@そうだ選挙に行こう:2010/07/11(日) 22:38:18
馬鹿ほどピボットを覚えなきゃいけないのに、馬鹿は関数に逃げたがる。
配列数式やSUMPRODUCTを勧める馬鹿は死んでくれ。
925名無しさん@そうだ選挙に行こう:2010/07/11(日) 23:01:31
関数はピボットテーブル使う時のデータ整形に使ってほしい。
関数で集計はあほ。
SUMIF系の関数は役立たず。
926名無しさん@そうだ選挙にいこう:2010/07/12(月) 00:45:10
マクロボタンを押して、ピボットで集計
これ最強!
927名無しさん@そうだ選挙にいこう:2010/07/12(月) 03:03:30
ピボット厨もそうで無い人も雑談は向こうでやってne!
【質問不可】Excel総合相談所スレの雑談・議論スレ2
http://pc11.2ch.net/test/read.cgi/bsoft/1151651536/
価値観の押しつけはネトウヨ・在日のネット軍団と同レベルだyo
928名無しさん@そうだ選挙にいこう:2010/07/12(月) 10:13:38
次スレの>2以降のテンプレにExcel2010に関するものを追加すべきと思いますが、
誰かまとめてもらえませんか?
Excel2007と共通する部分も多いとは思いますが、詳しい方よろしく
929複乳:2010/07/12(月) 10:40:32
http://officetanaka.net/excel/excel2010/index.htm
http://officetanaka.blogspot.com/2009/10/excel-2010.html
http://www.microsoft.com/japan/athome/umall/office2010/function/excel.aspx
[スクリーンショット]は、その名の通り画面をキャプチャしてワークシートに貼り付ける機能
[スパークライン]は、セルの中にちっちゃいグラフを表示する機能
新しいワークシート関数が追加されています。
↑全部いらん
スライサーは便利っちゃ便利かも。DBから数値をひっぱて来る人にはあんまり意味ないけど
office田中さんもいってる、開いているブックのフルパスが表示される機能は便利
テンプレに乗せるような物はないかと
930名無しさん@そうだ選挙にいこう:2010/07/12(月) 11:28:08
>>Excel2010に関するものを追加すべきと思いますが、

何で?
931複乳:2010/07/12(月) 11:48:18
何でも理由なく変えたがるアホっているんだけど多分それ
932名無しさん@そうだ選挙にいこう:2010/07/12(月) 13:56:45
質問です
RANK関数をやりたいんですが

  a
1 4
2 6
3 2
4 #N/A
5 #N/A

となっていて #N/Aがあるとランク関数が出来ません。
どうしても1〜5の中に#N/Aが出てきてしまうので
ランク関数が出来ないのですがどうすればいいでしょうか?
933932:2010/07/12(月) 14:24:00
自己解決
934複乳:2010/07/12(月) 14:31:54
>>932
やりかた1
NAエラーが出ないようにする。vlookupで例外出ていると仮定するけど、
A1=VLOOKUP(C1,D:E,2,0)
のようになってるとすると
A1=IF(ISERROR(VLOOKUP(C1,D:E,2,0)),"",VLOOKUP(C1,D:E,2,0))
とIFとISERRORを使って条件分岐させる

やり方2
A列はそのままで
B1=IF(ISERROR(A1),"",A1)
とする。エラーだと空白ってことね
そして
C1=IF(B1="","",RANK(B1,B:B))
みたいな感じ。
935932:2010/07/12(月) 19:24:12
>>934すいません。入れ違いだったですね。
お手数掛けました。
僕のも考えたんですけど>>934さんの方が合理的です。
やっぱり聞いて良かったです。ありがとうございました。
936名無しさん@そうだ選挙にいこう:2010/07/12(月) 20:15:22
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ

a列に顧客id、b列に顧客名が書かれたリストが
甲、乙の二つあります
甲と乙は別々のブックにあります
甲リストの中で、乙にも記載されている顧客の情報を
削除したいのですが
どのようなやり方があるでしょうか

937複乳:2010/07/12(月) 20:45:22
>>936
甲が50行あるとする
乙を甲の下にコピーする
C1=COUNTIF(A:A,A1)
下にオートフィル
C列でオートフィルタ、1のみを抽出
A1:B50をコピーしてはりつけ。オートフィルタ解除で終わり

よく分からないor数が少ないなら
C1=COUNTIF(A:A,A1)
の後で1以外を削除でもいいかも
938名無しさん@そうだ選挙にいこう:2010/07/12(月) 20:51:05
ひとつひとつの商品を個別にエクセルファイルとして作ったのですが、ひとつのファイルでシートとして分ける場合には
どうしたらいいですか?
読み込みとかできませんか?
939複乳:2010/07/12(月) 21:23:13
>>938
ファイルの名前とシートの名前、シートの構成を教えてもらえればVBAかINDIRECTでなんとかできるとおもう
どうまとめたいか教えて
940名無しさん@そうだ選挙にいこう:2010/07/13(火) 00:24:30
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel 2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 ピボットテーブル 重複データ 反映されない

よろしくお願いします。
ある行にまったく同じ内容のデータが2行入っています。
そのデータをピボットテーブルにすると1行分しか入っていません。
内容が合算されているわけではなく、1行分の金額しか入ってこないのです。
なぜでしょうか。ググリましたが、今回だけは解決できそうにもありません。
よろしくお願いいたします。
941名無しさん@そうだ選挙にいこう:2010/07/13(火) 04:46:15
>>940
2行目のデータが範囲外なんじゃねーの?
データソースの変更してみた?
それともどちらかが文字列の数字だったりとか。
942名無しさん@そうだ選挙にいこう:2010/07/13(火) 06:39:36
>>941
返信ありがとうございます。まずデータは範囲内です。
このデータはアクセスから抽出したもので文字列の数字でないことは手動でも
確認済みです。実はこんな感じで全く同じデータが数か所あるんですが、
全部反映されていません。今、1つしかないデータをコピーして最終行に貼り付けて
範囲指定してみましたが、やっぱり反映されていないですね。なんか設定で
意図的に除外しているような感じのエラーです(泣
943名無しさん@そうだ選挙にいこう:2010/07/13(火) 10:19:31
すいません。2007はiferrorがありますが2003はありません。
#N/Aの表示を消したいのですがどうすればいいでしょうか?お願いします!
944複乳:2010/07/13(火) 10:24:51
>>943
a1がエラーの場合
=if(iserror(a1),"",a1)
こんな感じで
945名無しさん@そうだ選挙にいこう:2010/07/13(火) 10:43:59
>>944 ありがとうございます。2007で作ったので修正が大変ですw
試してみます!
946名無しさん@そうだ選挙にいこう:2010/07/13(火) 12:49:33
>>942
どこかにアップすれば?
2chのどこかにアップローダーがあったぞ。
947名無しさん@そうだ選挙にいこう:2010/07/13(火) 21:26:26
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002(OfficeXP)

ファイルを順次開いて、コピー&ペーストをしようとマクロを書いてます。
a1〜a5まで開くことを思いながら書いてみましたが、うまくきません。
"D:\data\"以降を変数a1〜a5で割り当てるには
どう書けばいいですか?

Sub コピペする()

a1 = "test-1.xls"
a2 = "test-2.xls"
a3 = "test-3.xls"
a4 = "test-4.xls"
a5 = "test-4.xls"

For i = 1 To 5
  Workbooks.Open Filename:="D:\data\" & a & i
Next

End Sub
948名無しさん@そうだ選挙にいこう:2010/07/13(火) 21:43:02
そういうときは配列つかうんだよ a(1)とか
949複乳:2010/07/13(火) 22:23:10
Sub コピペする()
Dim a(5) As String
For f = 0 To 4
a(f) = "test-" & f + 1 & ".xls"
Next
For i = 0 To 4
Workbooks.Open Filename:="D:\data\" & a(i)
Next
End Sub
こーんあnかんじかねー
950名無しさん@そうだ選挙にいこう:2010/07/13(火) 22:42:22
a(5)はどこ逝った?
951複乳:2010/07/13(火) 23:07:12
どっかいった
952複乳:2010/07/13(火) 23:08:04
知るかボケ
953名無しさん@そうだ選挙にいこう:2010/07/13(火) 23:09:31
>>948
コンパイルエラー
SubまたはFunctionが定義されてませんになってしまいました。
Workbooks.Open Filename:="D:\data\" & a(i)

>>949
"test-1.xls"は例題なので、それぞれファイル名が違います。
変数a1〜a5で割り当てるのはだめなの?
954複乳:2010/07/13(火) 23:20:29
>>953
  Workbooks.Open Filename:="D:\data\" & a & i
  Workbooks.Open Filename:="D:\data\" & "a" & i

  Workbooks.Open Filename:="D:\data\a" & i
955複乳:2010/07/13(火) 23:22:29
a-dameda,tigau
mousukosimatte
956名無しさん@そうだ選挙にいこう:2010/07/13(火) 23:23:17
>>954
実行時エラー1004
D:\data\a1.xlsが見つかりませんと出ました。。。
957複乳:2010/07/13(火) 23:31:57
test
958複乳:2010/07/13(火) 23:33:17
>>947
ああ、今やっと意味がわかった
文字列("a1")を変数(a1)にしたいわけね、やめといたほうがいい
リフレクションって技術だな。多分。詳細はぐぐってくれ。俺は使ったこと無い。
多分別の方法を考えた方がいいと思う
それでもやりたいならプログラム板のVBAスレで聞くといいと思う
>>956
>>954はすまん、失敗
959名無しさん@そうだ選挙にいこう:2010/07/14(水) 00:30:47
>>947 こんな感じか?
Sub aaa()
Dim FN As Variant, WB As Variant
WB = Array("test-1.xls", "test-2.xls", "test-3.xls", "test-4.xls", "test-4.xls")
For Each FN In WB
Workbooks.Open Filename:="D:\data\" & FN
Next FN
End Sub
960959:2010/07/14(水) 00:32:40
>>947
もしくはこんな感じか?
Sub bbb()
Dim FN As Variant, WB As Variant
WB = Range("A1:A5").Value ' 予めセルA1〜A5にファイル名を入れとく
For Each FN In WB
Workbooks.Open Filename:="D:\data\" & FN
Next FN
End Sub
961名無しさん@そうだ選挙にいこう:2010/07/14(水) 12:10:13
太郎 4  りんご
君子 3  みかん
信二 2  ばなな
淑子 5  ぶどう
直子 1  なし

名前の隣はランク関数で導き出した数字です。

これを

4          1 なし
3          2 ばなな
2          3 みかん
5          4 りんご
1          5 ぶどう  とindex関数で 右側の数字を検査値として果物を導きます。

ところがある値が同じとなってランク関数が

4               1 なし
2               2 ばなな
2               3      ←エラー
5               4 りんご
1  こうなると       5 ぶどう  となります。

エラーはある値により2つになることもあります。
これを防ぐのにはどんなアイデアがいいでしょうか?
962名無しさん@そうだ選挙にいこう:2010/07/14(水) 12:16:28
ISERROR()でなんとかする
963名無しさん@そうだ選挙にいこう:2010/07/14(水) 12:19:55
>>962ありがとうございます
そのエラーの値になった果物をどうにか表示させるにはどうすればと思いました。
そこで悩んでおります。
964名無しさん@そうだ選挙にいこう:2010/07/14(水) 13:07:09
>>963
何でも関数でやろうとするなよ。
コピーして並び替えればいいじゃねーか。
並び変えればRANK関数も必要ないと思うぞ。
965名無しさん@そうだ選挙にいこう:2010/07/14(水) 14:04:45
>>964
もっとマシな回答を希望します。
966名無しさん@そうだ選挙にいこう:2010/07/14(水) 14:21:11
B1=RANK(A1,$A$1:$A$5)+ROW()/1048577
C1=RANK(B1,$B$1:$B$5,1)
など同じ値にならないようにする
直接求めてもOK
967複乳:2010/07/14(水) 14:23:55
>>961
row()/10000を組み合わせる
具体的には
4
2
2
5
1
にそれぞれrow()/10000を足せば
4.00001
2.00002
2.00003
5.00004
1.00005
になるので、この順位をindexではなくもう一度RANK関数で順位をつけると
4
2
3
5
1
になる。まぁ後はうまくやってくれ
968名無しさん@そうだ選挙にいこう:2010/07/14(水) 15:46:23
>>966-967ありがとうございます
アイデアなるほどと思いました。さっそくやってみます。
969名無しさん@そうだ選挙にいこう:2010/07/14(水) 16:43:04
>>965
RANK関数が必要ないは意味不明だが、前2行は一番まともな回答だな。
まぁ2chだから低ラベルなのは仕方がないかw
970名無しさん@そうだ選挙にいこう:2010/07/14(水) 16:59:42
自画自賛かよ
971複乳:2010/07/14(水) 17:20:01
>>970
カスども釣られるな(^o^)ノ
972名無しさん@そうだ選挙にいこう:2010/07/14(水) 17:44:18
まぁ という単語は本当に便利な馬鹿判定器
973複乳:2010/07/14(水) 18:01:31
まぁ、忘れてた
テンプレに>>980で次スレを立てること
って一文入れようと思うんだけどどうだろう
まぁ、悪くないと思うんだけどまぁ
974名無しさん@そうだ選挙にいこう:2010/07/14(水) 19:38:28
>>1に追加
★5 次スレは>>980が立てること。踏み逃げと思われる場合or立てられなかった時は>>985が立てる。
975名無しさん@そうだ選挙にいこう:2010/07/14(水) 20:16:03
馬鹿は自分の馬鹿さ加減が分らんからね。
複乳もかなりだが>>972もだなw
976名無しさん@そうだ選挙にいこう:2010/07/14(水) 20:27:03
まぁそうだね。
977名無しさん@そうだ選挙にいこう:2010/07/14(水) 20:50:30
>>959-960
両方ともうまくいきましたが、959で完成させました。
ありがとうございました。

解決したのに申し訳ないですが、WB はなぜ Variant でないと
だめなんでしょうか?
959はString、960はRangeのようにも思えるんですが、
前者はコンパイレラー、後者はエラー91になってしまいます。
978名無しさん@そうだ選挙にいこう:2010/07/14(水) 20:51:51
ごめんなさい

× コンパイレラー
○ コンパイルエラー
979名無しさん@そうだ選挙にいこう:2010/07/14(水) 21:54:26
>>977
>>959のArray関数はVariant型の配列を返すんだよ。だからVarinat型。
Array関数じゃなくSplit関数使って
WB = Split("test-1.xls test-2.xls test-3.xls test-4.xls test-4.xls")
とすればDim WB() As StringでもいいけどWBもVariant型が普通だな。
ちなみにSplitはExcel2000以降な。
Arrayより少し楽だぜ。

>>960は2個以上のセルの値は2次元配列になり、配列をいきなり変数に入れるならVariant型の変数にしか入れなれない。
WBがRange型なら
Set WB = Range("A1:A5") ' 予めセルA1〜A5にファイル名を入れとく
For Each FN In WB
Workbooks.Open Filename:="D:\data\" & FN.Value
Next FN
としないといかん。もちろん>>960の方が良い。
980名無しさん@そうだ選挙にいこう:2010/07/14(水) 23:00:51
馬鹿を侮っちゃいかん
microsoft公認もいるんだから
981名無しさん@そうだ選挙にいこう:2010/07/14(水) 23:14:09
すいません質問です。
EXCEL2003でコンボボックスにマクロを登録しておいて、コンボボックスに入力すると
マクロが実行されるようにしてありますが、この実行されるマクロ側で起動元のコンボボックス名を取得する
方法はないでしょうか?
982名無しさん@そうだ選挙にいこう:2010/07/14(水) 23:24:17
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 条件付き書式

条件付き書式でセルに色をつけたいです。
セルは、次の3種に分けられます@空白(数式が入っている)A0以上 ex1,2 B 0以下 ex−1、-2

このセルに、Aの0以上の時、セルに赤色をつけようと思っています。
条件の設定は、条件1 セルの値が 次の値以上 0 → 書式で赤色を選択しました。

しかし、@の数式が入っているセルも、条件に引っかかるようで、セルが赤色になります。
この解決方法をおしえてください。

数式は C2=IF(A2=B2,"",B2) を入れ YESの時は セルを空白に NOの時は B2を値を入れています
このB2の値が Aの0以上時のみ セルを赤くしたいです。
C3、C4・・・とつづきます。


なにか一つ式がたりないのか、工夫がたりないと思いますが、ご教授ください

しかし、
983名無しさん@そうだ選挙にいこう:2010/07/14(水) 23:41:05
>>981
フォームなら MsgBox Application.Caller かな
984複乳:2010/07/14(水) 23:42:26
>>980.
スレ立て よろしくお願いします
>>982
1 数式が =(c2="")
2 値が 以上0
3 値が 以下0
985982 ●:2010/07/14(水) 23:53:20
>>984
ありがとうございます

条件3つ入れて解決しました。ありがとうございます。
しかし、自分で0以上と0以下と書いておいて0の取り扱いをかんがえてしまいました。

私がスレたてます
986:2010/07/14(水) 23:55:12
987名無しさん@そうだ選挙にいこう:2010/07/15(木) 00:02:52
>>983
できました。
感謝感謝。
ありがとうございました。
988名無しさん@そうだ選挙にいこう:2010/07/15(木) 09:52:18
今までExcel2002を使っていてCtrl+A一度でシート全体を選択するのに慣れてしまっているのですが
会社のExcelが2003になってしまいCtrl+Aを二度やらないとシート全体が選択できなくなってしまいました
Ctrl+A一度で全体が選択できるようにはできませんか?
A1セルの左上のとこクリックするしかないんでしょうか・・・
989名無しさん@そうだ選挙にいこう:2010/07/15(木) 10:11:22
マクロ登録すれば?
990名無しさん@そうだ選挙にいこう:2010/07/15(木) 10:19:16
>>839
お礼が遅くなりました、ありがとうございます!
無事に動作し、膨大なデータが1ファイルにまとまりました
60MB分が2MB程度へ…手動だったらゾッとしますorz
991複乳:2010/07/15(木) 13:16:38
ume
992複乳:2010/07/15(木) 13:20:07
ume
993複乳:2010/07/15(木) 13:26:47
ume
994複乳:2010/07/15(木) 13:40:56
une
995複乳:2010/07/15(木) 14:09:11
une
996複乳:2010/07/15(木) 14:14:20
ume
997複乳:2010/07/15(木) 14:50:51
mi
998複乳:2010/07/15(木) 14:53:49
rr
999名無しさん@そうだ選挙にいこう:2010/07/15(木) 15:57:43
MS excel 2007は黒歴史
1000 get!!!!!!!!!!!!!!!!!!!!!!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。