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

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

Excel総合相談所 93

1 :名無しさん@そうだ選挙にいこう:2010/07/14(水) 23:54:36
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★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総合相談所 92
http://pc11.2ch.net/test/read.cgi/bsoft/1274695863/

2 :名無しさん@そうだ選挙にいこう:2010/07/14(水) 23:55:42
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・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/07/14(水) 23:55:54
★ルールを無視すると…
 >>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/07/14(水) 23:56:07
★ 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/07/14(水) 23:56:26
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

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

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

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

 ▼グラフ
  ・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる
   (オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入)
  ┌┐
  〜〜
  ||


6 :名無しさん@そうだ選挙にいこう:2010/07/14(水) 23:56:57
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。
間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。
Excel2007についても未確認な項目が多いので変更点が有ればご指摘下さい。

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

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

以上でテンプレ終わり (Excel総合相談所 89からコピペしました)


7 :名無しさん@そうだ選挙にいこう:2010/07/15(木) 01:14:42
FAQに追加
2007でマクロの記録が不完全なんだけど

2010に乗り換えてください

大量のデータを読み込ませたらメモリ不足エラー

2010の64bit版は一度に扱えるデータ量が格段に増えました

8 :複乳:2010/07/15(木) 07:22:39
>1乙


9 :前スレ977:2010/07/15(木) 19:37:17
http://pc11.2ch.net/test/read.cgi/bsoft/1274695863/979
詳しい解説、ありがとうございました。

10 :名無しさん@そうだ選挙にいこう:2010/07/15(木) 20:10:50
結回答してるけど、FAQなんか読んだことなかった。
面倒くさい(´・ω・`)

11 :名無しさん@そうだ選挙にいこう:2010/07/15(木) 20:52:49
複乳が前スレ埋めてるが、俺は1年くらい前にキムチ臭いスレッドを20ばかり埋めたら●のIDを剥奪されたぜ。
あの程度は大丈夫なのか?

12 :複乳:2010/07/15(木) 21:05:11
>>7
FAQの意味知ってるか?TIPSとは違うぞ
>>11
時間開けたけど最後連投規制になった。ここのリンク貼るつもりだったのに

13 :名無しさん@そうだ選挙にいこう:2010/07/15(木) 21:08:33
>>11 キムチ臭いスレッドだったからじゃね?

14 :名無しさん@そうだ選挙にいこう:2010/07/15(木) 21:15:58
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】 否

ワードアートについてです。
以前のバージョンのExcelで、POPなどの作成でワードアートを使用していました。
PCを買い替えて、Excel2007ではワードアートの仕様が全く違い驚きました。
そして不便なことが多く困っています。
調べてみると、Wordのワードアートは変わっていないようですが、
Wordではワードアート単体の位置を好きなように変えられないので、
使えないなぁという感じです。

そこで質問なのですが、以前使用していたMicrosoft office2000を、
現在使用している新しいPCにインストールってしても問題ないのでしょうか?
Microsoft office〜が重複しても大丈夫ですか?
よろしくお願いします。


15 :名無しさん@そうだ選挙にいこう:2010/07/15(木) 21:51:19
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 "="の入力 エラー Excel

A1以下に0〜100の数値が入ってて、数値が3なら===、4なら====とイコールを数値の数だけ
入力したいんだけど数式なら=REPT("=",A1)でできるのに
VBAで
For i = 1 To range("a65536").end(xlup).row
   range("b"&i)=worksheetfunction.rept("=",range("a"&i))
next
とするとエラーで怒られます。
どうしたらいいですか?


16 :名無しさん@そうだ選挙にいこう:2010/07/15(木) 22:56:59
>15
range("b"&i) = "'" & worksheetfunction.rept("=",range("a"&i))
ではどうですか? 先頭が = なので、excelが計算式と解釈しようとしてエラーになってると思うので、
文字列だよ、と明示してあげればいいと思う。


17 :名無しさん@そうだ選挙にいこう:2010/07/15(木) 22:58:14
>>15
直接セルに === と打ち込んでもたぶんエラーになると思うよ
最初の = で数式と認識するから

んで対処法は セルの書式を文字列にする
For i = 1 To Range("a65536").End(xlUp).Row
  Range("B" & i).NumberFormatLocal = "@"
  Range("B" & i).Value = WorksheetFunction.Rept("=", Range("A" & i).Value)
Next

ちなみに VBAは String関数があるから
WorksheetFunctionを使わなくても
  Range("B" & i).Value = String(Range("A" & i).Value, "=")
の方がよいと思う

18 :名無しさん@そうだ選挙にいこう:2010/07/15(木) 23:11:18
>>14
Officeを複数インスコは可能。
ただし古いやつから順番に入れるのが鉄則。

ただ、ワードアートって2007のが表現の幅が広がってる気がする。
方法が変わっただけでできなくなったと思われてることも結構ある。

19 :名無しさん@そうだ選挙にいこう:2010/07/15(木) 23:19:56
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】いいえ

000221という具合に前に0が幾つかついた数字が
同じ列に何千行か並んでいます。
その表記を221に改めたいのですが
頭文字の0の前に ` みたいな記号がついているため
セルの書式設定をどう変えても前の0がとれません。
冒頭の ` のみを、数千行にわたり削除するにはどうすれば
いいでしょうか。
vbaのコードでもいいので教えてください

20 :名無しさん@そうだ選挙にいこう:2010/07/15(木) 23:41:32
>19
A1以下に元データがあると仮定して、B1に =VALUE(A1) って入力して下にフィルコピー

21 :名無しさん@そうだ選挙にいこう:2010/07/16(金) 00:33:33
MsgBoxで、"" を表示させるにはどう書けばいいの?

例えば シート"DATA"を見てね とかメッセージを出したいです。

22 :名無しさん@そうだ選挙にいこう:2010/07/16(金) 00:38:18
>>21
""

23 :名無しさん@そうだ選挙にいこう:2010/07/16(金) 00:43:17
>>19
データがA列に入ってる場合

Sub a()
  Dim x() As Variant
  x = Range("A:A")
  Range("A:A") = x
End Sub


24 :名無しさん@そうだ選挙にいこう:2010/07/16(金) 01:05:28
>>19
列を選択して
データ→区切り位置→次へ→次へ→完了

25 :名無しさん@そうだ選挙にいこう:2010/07/16(金) 01:33:17
>>22
もう夏休み?

26 :名無しさん@そうだ選挙にいこう:2010/07/16(金) 01:41:32
>>21
MsgBox "シート""Date"" を見てね"

27 :名無しさん@そうだ選挙にいこう:2010/07/16(金) 02:20:49
>>25
あってるじゃん
""と書けば"が表示される
ゆとり?

28 :名無しさん@そうだ選挙にいこう:2010/07/16(金) 02:42:17
>>15
>>16-17で解決だろうけど、他の方法なら配列にため込んでから吐き出せば表示形式が標準でもエラーにならねーな。

29 :複乳:2010/07/16(金) 07:11:01
>>19
置換でいいんじゃない

30 :名無しさん@そうだ選挙にいこう:2010/07/16(金) 08:27:26
>>29
何を何に置換?
000を""だと3000は3になるが?

31 :名無しさん@そうだ選挙にいこう:2010/07/16(金) 08:29:16
すまん、頭に'がついてたのか
'0や'00や'000を空白に置換か

32 :31:2010/07/16(金) 08:35:08
>>31はやってみたら駄目だな

33 :複乳:2010/07/16(金) 09:28:58
ぎゃーすいません試してませんでした
じゃあA1に入ってるとして
B1=SUBSTITUTE(A1,"'","")*1
B1をA1に値で貼り付け

34 :15:2010/07/16(金) 10:30:48
>>16-17
出来ますた。
String関数なんてものがあるんですね。
知らなかった。
>>28
配列は苦手なのでString使って16か17でいこうと思います。

35 :名無しさん@そうだ選挙にいこう:2010/07/16(金) 10:56:32
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

A列とB列共に入力規則でドロップダウンリストで
入力する形にしたいのですが、条件として
A列の結果によって、B列のリスト内容を変更したいです。

皆様のお知恵を拝借させてください。

36 :複乳:2010/07/16(金) 12:30:57
>>35
あらかじめ名前を定義しておき、リストの範囲を=indirect(A1)のようにする
詳しくは↓
ttp://www.eurus.dti.ne.jp/~yoneyama/Excel/n-kis.htm
入力規則3 【リスト3】 リストの切り替え
ってとこ


37 :名無しさん@そうだ選挙にいこう:2010/07/16(金) 18:02:34
【1 OSの種類       】 WindowsXP
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか   】 いいえ
【4 VBAでの回答の可否】 否

Excel2003では普通に使えたMOD関数が
Excel2010の互換モードで開くと
値が狂ってしまうのですが
他に似たような現象が起きた方はいませんか?

38 :名無しさん@そうだ選挙にいこう:2010/07/16(金) 18:11:50
>>37
MODは2010だと内部的な計算方式が変更されたから、結果が違うことがあるよ
ヘルプの「新機能: Excel 関数に対する変更」あたりを読んで

39 :名無しさん@そうだ選挙にいこう:2010/07/16(金) 19:06:29
>>37
ありがとうございます。
読んでみます。

40 :名無しさん@そうだ選挙にいこう:2010/07/16(金) 20:52:48
>>27
合ってねーじゃんw
「"" を表示させるには」って書いてあるがな

つーか、お前は何が楽しくて生きてんの?

41 :名無しさん@そうだ選挙にいこう:2010/07/16(金) 20:58:39
>>40
元の質問を最後まで読め
前後のクォートって意味で2つ並べてるだけだろ
例文のどこに「""」が出てくるんだよ

42 :名無しさん@そうだ選挙にいこう:2010/07/16(金) 21:23:08
>40

だまされたと思って自分で試してみなよ。
顔真っ赤になるからw

43 :名無しさん@そうだ選挙にいこう:2010/07/16(金) 22:06:31
【1 OSの種類       】 WindowsXP
【2 Excelのバージョン 】 Excel2002

四角い図形の中にある、名前と今日の日付を書き換えるマクロを
自動記録でやってみましたが、動作しません。
どこを直せばいいのか教えてください。

まず最初に構成から。
下記のような四角い図形があり、グループ化になっています。
http://upload.jpn.ph/upload/img/u63606.jpg
向かって左側のName1は"Rectangle 4"、右側のName2は"Rectangle 5"です。

図2のように、グループ化したままでも、手動ならシングルクリックで
書き換えることができるのに、マクロの自動記録ではできませんでした。
そこで、一度グループ化を解除して、中を書きかえてから
再グループ化したマクロをつくりました。

次に、Name1に当たるところをNAME1 = Range("B3").Value、
今日の日付をDATE1 = Format(Date, "dd/mmm/yy")にしました。

ところが、下記のマクロだと、ActiveSheet.Shapes("Group 9").Selectで
止まってしまい、実行時エラー'-2147024809 (80070057)':
指定した名前のアイテムが見つかりませんでした とメッセージが
出てしまいます。

Sub NAME1を記入()
Dim NAME1 As String, DATE1 As String

NAME1 = Range("B3").Value
DATE1 = Format(Date, "dd/mmm/yy")
ActiveSheet.Shapes("Group 9").Select
Selection.ShapeRange.Ungroup.Select

44 :43:2010/07/16(金) 22:07:50
'43の続き
Range("B3").Select
ActiveSheet.Shapes("Rectangle 4").Select
Selection.Characters.Text = NAME1 & Chr(10) & DATE1
With Selection.Characters(Start:=1, Length:=14).Font
 .Name = "MS ゴシック"
 .FontStyle = "標準"
 .Size = 10
 .Strikethrough = False
 .Superscript = False
 .Subscript = False
 .OutlineFont = False
 .Shadow = False
 .Underline = xlUnderlineStyleNone
 .ColorIndex = xlAutomatic
End With
Range("A1").Select
ActiveSheet.Shapes("Rectangle 4").Select
ActiveSheet.Shapes.Range(Array("Rectangle 4", "Rectangle 5")).Select
ActiveSheet.Shapes.Range(Array("Rectangle 4", "Rectangle 5", "Rectangle 6")).Select
ActiveSheet.Shapes.Range(Array("Rectangle 4", "Rectangle 5", "Rectangle 6", "Rectangle 7")).Select
Selection.ShapeRange.Group.Select
Range("B3").Select
End Sub

よろしくお願いします(ペコッ

45 :名無しさん@そうだ選挙にいこう:2010/07/16(金) 22:33:02
Sub t()
MsgBox ""
End Sub

46 :名無しさん@そうだ選挙にいこう:2010/07/16(金) 22:49:12
>>43
グループ化解除→再グループ化 すると名前が変わると思うけどそれは確認した?
Nameプロパティで元の名前に戻すとかしないと

47 :43:2010/07/16(金) 23:00:22
>>46
確認してます。
エラーの原因はそれなんですが、どこをどう弄ればいいのでしょうか?

48 :46:2010/07/16(金) 23:19:47
>>47
ActiveSheet.Shapes("Group 9").Select
Selection.ShapeRange.Ungroup.Select
'<省略>
Selection.ShapeRange.Group.Select
Selection.Name = "Group 9"
とか

49 :名無しさん@そうだ選挙にいこう:2010/07/17(土) 15:47:14
【1 OSの種類       】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか   】 はい
【4 VBAでの回答の可否】 可

フォーム(コントロールではなく)のコンボボックスで選択して表示ている値(テキスト)を
VBA内で使いたいのです。
ActiveSheet.Shapes(Application.Caller).ControlFormat.Value
で選択した行数を取得することはできました。
しかし、コンボボックスで選択して表示している値をダイレクトに取得する方法はないでしょうか。

よろしくお願いいたします。
(コントロールのコンボボックスについてはやり方をネット上で見つけましたが、
フォームのコンボボックスとは根本的に違うんですね。)

50 :名無しさん@そうだ選挙にいこう:2010/07/17(土) 16:08:03
>>49
こんなでいいかな?
With ActiveSheet.Shapes(Application.Caller).ControlFormat
hoge = .List(.Value)
End With

51 :名無しさん@そうだ選挙にいこう:2010/07/17(土) 16:14:52
>>50
出来ました。
サンキュー
11時から悩んでいたのが解決しました。

52 :名無しさん@そうだ選挙にいこう:2010/07/17(土) 19:22:06
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 自動 能動 変更 indirect offset 

http://2ch-ita.net/upfiles/file3441.jpg

他のシートの数字を、特定のセルに入力した数字で指定した先から拾ってくるような仕組みを作りたいです。

上の写真の自転車工場のラインの例では、
「最終工程」のシートの「生産」(オレンジ色)の数字を
「組立3」のシートの「払出」(緑色)に反映させたいのですが、
払出先が頻繁に変わるため、「組立3」シートの「次部品」の欄(青いD4,D5)に
「ママチャリ」などと払出先を入力することにより、自動的に「ママチャリ」という文字の横にある生産セルから
タイヤの払出セルに数字が反映されるようにしたいです。

稚拙な説明で恐縮ですが、どうかご教示お願いいたします。






53 :名無しさん@そうだ選挙にいこう:2010/07/17(土) 19:26:58
【1 OSの種類       】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか   】 はい
【4 VBAでの回答の可否】 可

またまた質問させて頂きます。
フォーム(コントロールではなく)の入力すみのコンボボックスの名前を指定して初期化したい
(VBAで初期化したい)のですが、どうしたらいいのでしょう。

(自分でいろいろ調べましたがフォームのコンボボックスについては見つからません>< )




54 :名無しさん@そうだ選挙にいこう:2010/07/17(土) 21:22:46
>52

index/match/offset

55 :14:2010/07/17(土) 22:28:58
>>18
遅くなってすみません。
レスありがとうございます。

もし古い方をあとから入れてしまった場合どのようなことがおきますか?

すみませんが、よろしくお願いします。

56 :名無しさん@そうだ選挙にいこう:2010/07/17(土) 22:40:34
>>53
自己レスですがわかりました。
「リンクするセル」に入っている値をクリアすれば良かったみたいです。
どうもお邪魔しました。

57 :43:2010/07/18(日) 00:13:39
>>48
すみません、
ActiveSheet.Shapes("Group 9").Selectで止まってしまうんですが・・・ orz

58 :52:2010/07/18(日) 01:52:16
ご回答ありがとうございます。
3時間ほど調べてみましたが、目的の数値を参照する方法などがよくわかりません。
「組立3」シートの「I4」セルに、「最終工程」シートの「I5」の数値を表示したい場合、

OFFSET関数については、基準となるのが「最終工程」シートの「ママチャリ」というセルのため、
ママチャリのセルから下に1、右に8離れているため、OFFSET(??,1,8,0)という数式がおぼろげながら分かりました。

MATCH関数は「C4」で指定の「最終工程」シートから「D4」で指定の「ママチャリ」という単語を探したい場合、
=MATCH(D4,INDIRECT("'"&C4&"'!検索範囲"),0)
という数式だと思われるのですが、正常に動作しません。

また、INDEXについてどこで使ってどう組み合わせてひとつの数式にするのがわかりません。
「I4」セルに入れる数式についてお手本を作っていただけませんでしょうか?
よろしくお願いいたします。



59 :複乳:2010/07/18(日) 07:32:17
>>55
PCが爆発するよ
っていうのは嘘だけど
バージョンによって挙動も違うし、何も起こらないかもしれない。
ただ被害を抑えたければ正しい順番で再インストールした方がいいと思う
>>57
Selection.ShapeRange.Ungroup.Select  'グループ解除
'<省略>
Selection.ShapeRange.Group.Select 'グループ化
Selection.Name = "Group 9" '名前設定

だから、省略の内部で別の図形をselectしているとうまくいかない
下のように、グループ化直前にselectする

Selection.ShapeRange.Ungroup.Select  'グループ解除
'<省略>
ActiveSheet.Shapes.Range(Array("Rectangle 4", "Rectangle 5", "Rectangle 6", "Rectangle 7")).Select
Selection.ShapeRange.Group.Select 'グループ化
Selection.Name = "Group 9" '名前設定


60 :名無しさん@そうだ選挙にいこう:2010/07/18(日) 19:28:13
abc:def
a:bc:ed というテキストデータを貼り付けたら

abc  def
a    bc   ed になってしまいました。

それぞれ1つのセルに貼り付けるにはどうすればいいですか?










61 :名無しさん@そうだ選挙にいこう:2010/07/18(日) 20:55:26
>>60
その前(又は過去に) : を区切り文字として使った事ない?

区切り位置の設定で 設定変更すると 設定が変更されたままになる
初期設定で区切り位置を実行したい場合はExcelを一旦終了するか

区切り位置を実行して設定を変更する
([データ]タブ、の[区切り位置]ボタンをクリック)

これでダメなら俺にはわからん

62 :名無しさん@そうだ選挙にいこう:2010/07/18(日) 21:09:12
>58
>また、INDEXについてどこで使ってどう組み合わせてひとつの数式にするのがわかりません。

ググッて分からないならあきらめろ。

>「I4」セルに入れる数式についてお手本を作っていただけませんでしょうか?

断る。

63 :名無しさん@そうだ選挙にいこう:2010/07/18(日) 21:10:08
>>61
レスありがとうございます。
仰るとおり、区切り文字として使ってました。
ボックを閉じてもだめなんですね。
Excelを一旦終了して解決です。

64 :名無しさん@そうだ選挙にいこう:2010/07/18(日) 21:11:33
すいません
ボック じゃなくて、ブック の打ち間違いです。

65 :名無しさん@そうだ選挙にいこう:2010/07/18(日) 23:56:25
半角→全角(またはその逆)にする関数はありますが、
セルの中に半角カタカナが含まれてたら、
セル内の文字を削除する方法を教えてください。

66 :名無しさん@そうだ選挙にいこう:2010/07/19(月) 00:01:07
>半角→全角(またはその逆)にする関数はありますが、

    ↑は不要でした。

67 :名無しさん@そうだ選挙にいこう:2010/07/19(月) 01:39:50
>>65
VBA

68 :名無しさん@そうだ選挙にいこう:2010/07/19(月) 10:54:18
マクロで関数を代入するときに

[セル].value="=SUM(a1:c5)"
[セル].formula="=SUM(a1:c5)"
[セル].formulaR2D2="=SUM(a1:c5)"

の使い分けがわからん。
みんな一緒じゃない?

69 :複乳:2010/07/19(月) 11:07:28
>>68
R2D2はスターウォーズだろ
上二つの違いは、取得する時に変わる。代入なら多分同じ動作になったと思う。あんまり自信はない

例えば
A8=SUM(a1:c5)
のvalueはSUMで合計した数値になるし、formulaは"=SUM(a1:c5)"になる

あとformulaR1C1はR1C1表記じゃないとうまく動かないは図
Cells(7, 1).FormulaR1C1 = "=SUM(a1:c5)"
とすると、
A7=SUM('a1':$E:$E)
とおかしくなるし、取得時も

Sub a()
Cells(8, 1).Formula = "=SUM(a1:c5)"
aaa = Cells(8, 1).FormulaR1C1
End Sub
だと
aaaの中身は"=SUM(R[-7]C:R[-3]C[2])"んいなる

70 :名無しさん@そうだ選挙にいこう:2010/07/19(月) 15:15:04
【1 OSの種類       】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか   】 はい
【4 VBAでの回答の可否】 可

ボタンを一回押すと、(多分)VBAが実行されて
フォームのコンボボックスが見えなくなり、
コンボボックスの下にあったセルに手入力できるように
なるEXCELファイルがあります。
次にもう一回ボタンを押すと、コンボボックスが現れます。
事前にコンボボックスで内容を選択後に消していればその内容が保持されたまま
で現れます。

このVBAやシートには保護パスワードがかかっていて
VBAのコードは見れません。
これと同じことを自分で作ったブックで行ないたいのですが
これは、コンボボックスを切り取りして一時的にどこか見えない
ところに貼りつけて、もう一度ボタンを押すとそれをまた切り取って
元の位置に戻しているだけかとも思いましたが、
それともっとスマートなやり方があるでしょうか?
よろしくお願いいたします。





71 :名無しさん@そうだ選挙にいこう:2010/07/19(月) 15:17:37
非表示にしてるだけでしょ

72 :複乳:2010/07/19(月) 15:20:50
>>70
プロパテぃのshowだかvisibleをFALSE/TRUE

73 :68:2010/07/19(月) 15:42:08
>>69
なるほどそうでしたか
毎度ありがとうございます

74 :名無しさん@そうだ選挙にいこう:2010/07/19(月) 16:17:27
>>71
>>72
御回答ありがとうございます。
ユーザーフォームに作るコントロールのコンボボックスだと
With Sheet1.ComboBox1
.Visible = False
End With
これでいいような気がしますが、

フォームメニューから作ったコンボボックスだと
どうやればいいのでしょうか?
「VBA使える」と書いておきながらすみません・・・


75 :名無しさん@そうだ選挙にいこう:2010/07/19(月) 16:45:54
調べもせずに、だけど、
フォームは表示・非表示が出来ないんじゃね?

76 :名無しさん@そうだ選挙にいこう:2010/07/19(月) 17:10:54
>>75
うーん、そうなんですかね・・・

77 :名無しさん@そうだ選挙にいこう:2010/07/19(月) 18:44:59
普通の会社で日常的にパソコン使うくらいなら、
よくわかるExcelシリーズの基礎にのってるぐらいのことが
できればいいのかな?

78 :複乳:2010/07/19(月) 18:48:54
>>75
>フォームメニューから作ったコンボボックス
これってシートに貼付けたコンボボックスのことだよね
デザインモードを終了しないと消えないよ
>>77
本の名前言われても困るけど、まぁ初心者向けの本の機能は一通りできますって言えばまぁ大丈夫じゃないかな
不安なら
http://www.relief.jp/itnote/
ここのエクセルの部分読んでおくといいかもね

79 :名無しさん@そうだ選挙にいこう:2010/07/19(月) 18:49:48
>>74
Worksheets("sheet1").Shapes("Drop Down 1").Visible = False

Worksheets("sheet1").Shapes("Drop Down 1").Visible = True

80 :名無しさん@そうだ選挙にいこう:2010/07/19(月) 19:01:33
>>79
で、出来ました m(。。)m


81 :名無しさん@そうだ選挙にいこう:2010/07/19(月) 19:25:55
>>67
で、どうやるの?

82 :名無しさん@そうだ選挙にいこう:2010/07/19(月) 20:09:09
普通の会社で使うぐらいって500円で学べるとかって本ぐらいで十分じゃないの?

83 :名無しさん@そうだ選挙にいこう:2010/07/19(月) 20:52:10
おいらのPCで、郵便番号7けたの数字を入力しただけで住所が変換される機能が使えなくなったのはどうしてですか?
3けたの数字ならなぜかうまく機能してるんです。


84 :複乳:2010/07/19(月) 22:02:48
>>81
こんな感じじゃないか?A1セル限定だけどまぁテキトーに応用できるだろう
Sub a()
Dim moji, k, keyascii, hidari, migi
moji = Len(Cells(1, 1).Value)
For k = moji To 1 Step -1
keyascii = Asc(Mid(Cells(1, 1), k, 1))
If keyascii > 160 And keyascii < 224 Then
hidari = Left(Cells(1, 1).Value, k - 1)
migi = Right(Cells(1, 1).Value, Len(Cells(1, 1).Value) - k)
Cells(1, 1).Value = hidari & migi
End If
Next
End Sub
>>83
わからん。
郵便番号ウィザード 三桁 でぐぐった結果のどれかか
もしくはアドインの郵便番号ウィザード(だっけ?)を入れなおす
もしくは解決方法じゃないけど、googleIME入れるとメモ帳でも変換できるようになるし、個人的にはコッチのほうが便利だと思う

85 :名無しさん@そうだ選挙にいこう:2010/07/19(月) 23:08:57
>>84
65です。
ありがとう、できました。
セル内の半角カナカナを削除するんじゃなくて、
セル内の文字を削除したいので、
行削除に改造しました。


86 :名無しさん@そうだ選挙にいこう:2010/07/20(火) 14:09:09
Excelを使用していて
abcde
などあるセルに入力して
ab
と入れたときに
abcde
と勝手にプルダウンが出てしまうのですが
それを禁止する方法はありませんか?

87 :名無しさん@そうだ選挙にいこう:2010/07/20(火) 14:47:38
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 VLOOKUP 名簿

VLOOKUP関数を使って名簿を作っているのですが、B11(B12と結合)に名簿番号、
C11(C12と結合)に名前、F11に入社年月日、F12に経験年数を入力しなければならないのですが
(伝わりますでしょうか…)、F12のセルにどう入力したらいいのかがわかりません。
列番号の指定をどうにかしなきゃいけないような気がしてるんですが…
どうすればいいのか、どなたかご教示ください。よろしくお願いします。

88 :名無しさん@そうだ選挙にいこう:2010/07/20(火) 14:57:21
>>87
どこにVLOOKUP使ってるんでしょうか?

89 :複乳:2010/07/20(火) 15:06:26
>>86
オプション 編集 オートコンプリートのチェック


90 :名無しさん@そうだ選挙にいこう:2010/07/20(火) 15:07:51
>>88
すいません。てんで説明不足だったようで…

まず職員一覧があって、その職員一覧から何人かを抜粋した名簿を作成しなきゃいけない時に簡略化したいと思いまして。

各セルにVLOOKUPを使っています。

C11には =VLOOKUP(A11,一覧!$A$11:$M$129,3,FALSE)
F11には =VLOOKUP(A11,一覧!$A$11:$M$129,6,FALSE) のように。
で、この場合のF12に入力する式というのが質問なんです。すいません。これで伝わりますでしょうか…

91 :複乳:2010/07/20(火) 15:14:17
>>90
=DATEDIF(F11,NOW(),"y")
こんな感じ?

92 :名無しさん@そうだ選挙にいこう:2010/07/20(火) 15:32:48
>>91
すいません。経験年数は一覧の方で計算するようにしてるんで大丈夫なんです。

ttp://uploader.moe.hm/src/up2913.jpg_l49uOHsgfWi9FGYN7JRS/up2913.jpg

Aに番号を入力しただけで↑の全ての項目が一覧から引っ張られるようにしたいのですが
黄色い部分に入れる式がわからない、という質問なんです。わかりにくくて申し訳ないです…

ちなみに一覧は同じ書式で全て入力してあります。

93 :複乳:2010/07/20(火) 15:54:38
>>92
すまん、わからん
>>90の=VLOOKUP(A11,一覧!$A$11:$M$129,3,FALSE)や=VLOOKUP(A11,一覧!$A$11:$M$129,6,FALSE) のようにして
適切な列を指定すれば言いだけじゃないの


94 :名無しさん@そうだ選挙にいこう:2010/07/20(火) 16:19:26
参照元の一覧の書式が変だからvlookup使えないんじゃね

95 :名無しさん@そうだ選挙にいこう:2010/07/20(火) 17:04:26
元の一覧も結合してあったりするんだろうな
=INDEX(一覧!$F$11:$F$129,MATCH(A11,一覧!$A$11:$A$129,0)+1)
とか不幸なことをするしかないんだろ

96 :複乳:2010/07/20(火) 17:25:28
あぁ、そういうことかねぇ
セルの結合は思い切って全部解除した方がいいかもねぇ

97 :名無しさん@そうだ選挙にいこう:2010/07/20(火) 18:11:25
みなさん色々ありがとう。

>>95>元の一覧も結合
その通りです…
これって不幸なんですか?確かにコピーで反映されないんで面倒でしたけど無事出来ました!
ありがとうございました!でも式がイミフ。勉強します。

98 :名無しさん@そうだ選挙にいこう:2010/07/20(火) 19:13:19
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 ランダム 並び替え EXCEL

一日数コマ×一週間のタイムテーブルのマスを
数種類の事柄でランダムに埋めたいと思い

A列にコマの数だけ=RAND()と入れ
B列に同じ数だけ事柄を記入しました。

で、A列をキーにして並び替えるのですが
昇順にしても、乱数がきちんと昇順になりません。
なぜなんでしょうか?

RAND関数は数じゃないのでしょうか?

99 :35:2010/07/20(火) 19:25:51
おそくなってごめんなさい。
(頼んでいたことを、忘れていました)
>>36さん、ご指導ありがとうございました!

100 :名無しさん@そうだ選挙にいこう:2010/07/20(火) 19:39:53
>>98
並べ替えるたびにランダムの数字をあててるんでしょ

101 :名無しさん@そうだ選挙にいこう:2010/07/20(火) 19:50:45
>>98
RAND関数は何か操作をするたびに数字が変わっていく
一回限りで固定したいなら値貼り付け

102 :名無しさん@そうだ選挙にいこう:2010/07/20(火) 20:11:13
>>100
>>101

なるほど!
そういう理由だったのですね。
昨晩から悩み続けてましたorz

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


103 :名無しさん@そうだ選挙にいこう:2010/07/21(水) 01:12:17

【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 ピンボール アルゴリズム

エクセルでピンボールを作ってる途中なんですがこっからどうしましょう
http://www42.atwiki.jp/syugyou?cmd=upload&act=open&pageid=243&file=nnn.xls

104 :名無しさん@そうだ選挙にいこう:2010/07/21(水) 04:37:53
エクセルの関数って独学で理解というか身に付けていけるものですか?
すごい初心者なんでスレ違いだったら申し訳ないんですけど・・
関数とか普通に使える人はみんな最初はどんなふうに勉強したんですか?

105 :名無しさん@そうだ選挙にいこう:2010/07/21(水) 04:40:34
連投すいません、関数で出てくるまではテキストで普通に進んで
いけたんですが関数が出てきて急につまってしまったんで・・

106 :名無しさん@そうだ選挙にいこう:2010/07/21(水) 05:06:36
>>105
関数が出てきたら詰まったって、それ1ページ目か2ページ目か、
ほとんど最初のところで詰まったってことじゃん
そうでないなら、知らないうちに関数を使ってるはず

107 :名無しさん@そうだ選挙にいこう:2010/07/21(水) 06:38:09
>>105
実際に使って理解できるまでガンバロ
それしかない

108 :複乳:2010/07/21(水) 06:38:23
>>103
ゲームオーバー 点数 残機表示の実装
後はエフェクトだけどやり始めると終わらん。この辺はwindowsについてるピンボールを真似すればいいと思う
ある程度できたらniconicoにでも投稿するといいかもね
>>104
http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/itiran.html
全部読んでとりあえず使ってみる
後は反復練習

109 :名無しさん@そうだ選挙にいこう:2010/07/21(水) 12:50:19
関数で詰まるってことは表とかグラフまでってことかな?

関数って一般事務とか営業事務の事務職と営業職だと
どっちのほうが使うんだろうね?

どうやって覚えるって、関数覚えるのにパソコン教室とか
訓練とかまではないと思うけど、どうなんだろ。。。

110 :名無しさん@そうだ選挙にいこう:2010/07/21(水) 13:02:12
四則計算とピボットさえできりゃ何にも要らないんだよ

111 :複乳:2010/07/21(水) 13:15:21
>>109
普通に事務でしょ
>>110
罫線やグラフ、書式設定もいるねぇ

112 :名無しさん@そうだ選挙にいこう:2010/07/21(水) 13:27:20
>>111
罫線はいらねーんだよ。
日本人は罫線がやたら大好きだが外国いったら笑われるぜ。
グラフはピボットグラフ、書式設定はピボットでも使うから必要ではある。

113 :名無しさん@そうだ選挙にいこう:2010/07/21(水) 13:33:25
>111
そうなんだ。なんか営業とかのほうがエクセルって使いこなせないと
ダメとかって聞いたんだけど。営業って事務職の仕事もできないと
いけないからとからしくて…でもやっぱ事務だよね。それとも何の営業
とかにもよるかな…

よくわかるシリーズの応用って難しいね。こんなの使えないといけないんか
な?普通の事務員さんはみんなできるの?

114 :複乳:2010/07/21(水) 13:53:30
>>112
>外国いったら笑われる
ここは日本だぞ。指示されて線の引き方知りませんなんて言えない
独立する方には必要ないかもしれないけど
>>113
使いこなせるっていうより、使えないとダメってことだと思う
とりあえず請求書を1から作れるぐらいでいいとは思うけど
後はその会社ごとに必要な機能も違うだろうから、事務の人に教えてもらうといいかも
どこが分からないか分からない、という状況にさえならなければ何とかなるでしょ、多分

115 :名無しさん@そうだ選挙にいこう:2010/07/21(水) 14:20:23
>>112
>>外国いったら笑われるぜ。

既に>>112が笑われている件について。

116 :名無しさん@そうだ選挙にいこう:2010/07/21(水) 14:45:35
よくわかるシリーズって本当にいい教材?
CD−ROMついててサクサク進むけど、あれって身についてないのに
結構進んで、わかった気になってるようなだけな気がする・・
問題集やったほうがいい?

117 :名無しさん@そうだ選挙にいこう:2010/07/21(水) 15:54:50
何がやりたいかにもよるんじゃないか
MCASの資格とりたいだけならそれでいいんじゃない

118 :複乳:2010/07/21(水) 16:37:13
よくわかるシリーズが良く分からないが、
まぁどの本も内容は大体同じと思う

119 :名無しさん@そうだ選挙にいこう:2010/07/21(水) 22:26:43
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

シートに約300行のデータ(列はA〜Gまで)があるのですが
このデータを奇数行と偶数行で別のシートに分けるにはどのようにすれば良いでしょうか?
VBAは全くの素人なのでエクセル操作のみでお願いしたいのですが・・・

120 :名無しさん@そうだ選挙にいこう:2010/07/21(水) 23:01:00
>>119
その程度の量ならH列に1,2,1,2,1,2…ってオートフィルで貼り付けて
1だけ抽出して2シートめへ、2だけ抽出して3シートめへ、でいいんじゃね?

121 :名無しさん@そうだ選挙にいこう:2010/07/22(木) 04:31:46
>>119 他には
>>120のようにH列をオートフィルしてから
H列で並べ替えて、それぞれ別シートへC&P

122 :名無しさん@そうだ選挙にいこう:2010/07/22(木) 14:19:36
0721 300
1107 5000
6969 10000
1234 5678
0721 1700

のようなデータがあるとします。
1列目が番号で、2列目が価格だとします。

同じ番号の価格を加算してExcelのシートに
書きだそうと思うのですが、どうするのが
最も最適なのでしょうか?

例えば、1行目と5行目は同じ0721です。
マクロを実行させると、他のシートに
0721 2000
と書きだすことになります。

123 :名無しさん@そうだ選挙にいこう:2010/07/22(木) 14:40:05
>>122
重複してるものだけ合計して書き出すのか?
それとも重複してないものも書き出すの?
後者ならピボットテーブルだよ。

124 :122:2010/07/22(木) 15:00:07
>>123
後者の方ですねぇ…片足をつけたまま、ですか…

ピボットはマクロに組み込めませんので、とりあえず
 1.ループでA列を読んでいく。作業シートのA列と比較して
  値がなければその値を作業シートのA列、金額を作業シートB列に書き込む。
 2.A列+1の値を読む。値があればB列に金額を加算。値が無ければ1同様新規追加
のようにしてごり押ししていこうと思います。

125 :名無しさん@そうだ選挙にいこう:2010/07/22(木) 15:22:02
>>124
そういう効率の悪いやり方はいかんよ。
データの種類が多いと遅くなるぞ?
ピボットは作りさえすれば、あとはマクロで簡単に操作できる。
記録マクロで範囲の部分を少しいじって、あとは更新だけだから。
どうしてもピボットを使いたくなければ最低並び替えくらいしろ。
同じ値が続く間加算していくだけだ。
あだ花のDictionaryは使うなよ。


126 :名無しさん@そうだ選挙にいこう:2010/07/22(木) 21:58:26
>>120-121
ありがとうございます!

127 :名無しさん@そうだ選挙にいこう:2010/07/23(金) 04:58:24
2007のVBAのヘルプが使いにくくてたまらん。
VBAXL10.CHMを読みたくてもダミーファイルらしく開くことができない。
どこかにzipファイルで圧縮されてるようだが、どこにあるの?

128 :名無しさん@そうだ選挙にいこう:2010/07/23(金) 08:03:05
>>127
VBAのヘルプはVBE→F1で出る

129 :名無しさん@そうだ選挙にいこう:2010/07/23(金) 10:05:04
>>128
何故かオンラインヘルプが読めなくなってしまった。
2010betaを入れたからか?
「このページはご利用板だれません」と出てくる。
[コンピュータに保存されたオフラインのコンテンツを表示する ]をクリックすると
なんとか読めるが、昔のレガシーなヘルプとは使い方が違うような気がする。
オンラインヘルプより、どっちかつーとーとレガシーヘルプを昔のように使いたいんだが。
MSE_LEGACY.HXSらしいんだが、どうやって開くのか分らん。

130 :名無しさん@そうだ選挙にいこう:2010/07/23(金) 12:26:59
>>129
俺もあまり詳しくはないんだが

HXSを閲覧するにはExcel.exeと同じフォルダに入っているCLVIEW.exeを使う
ファイル名を指定して実行から
"C:\Program Files\Microsoft Office\Office12\CLVIEW.EXE" "EXCEL" "Microsoft Office Excel"
とやるとExcelを起動しなくても単独でヘルプビューアが起動できる

あとはIEから
ms-help:// 〜 /????.xml
みたいに開くらしいけどよくわからん

131 :名無しさん@そうだ選挙にいこう:2010/07/23(金) 12:33:30
>>130
CLVIEW.EXEに関してはすでにやってるんだよね。
それじゃ駄目なんだ。
2010betaのせいかなぁ。

132 :名無しさん@そうだ選挙にいこう:2010/07/23(金) 16:48:12
2010入れてみれなくなったら、そら2010が原因だろうよ。
つーかいまさらβってアホじゃねーの。

133 :複乳:2010/07/23(金) 16:50:35
EXACT関数って何か良い使い方ありますか?

134 :名無しさん@そうだ選挙にいこう:2010/07/23(金) 17:04:17
暗黙の変換させないで厳密な比較したいときに使えばいい

135 :複乳:2010/07/23(金) 17:53:01
>>134
ありがとうございます!

136 :名無しさん@そうだ選挙にいこう:2010/07/23(金) 17:58:47
2010ベータ君を筆頭にアホばっかだな

137 :名無しさん@そうだ選挙にいこう:2010/07/23(金) 21:08:10
>>136
自己紹介お疲れ様です!

138 :名無しさん@そうだ選挙にいこう:2010/07/24(土) 08:23:15
WebのFormと同じボタンをexcelも作ることができます?
それを押すとWebと同じように機能するようにしたいです。
Webのformのname=,value=は、excelではあらかじめ指定して入力不要で済むように。

139 :名無しさん@そうだ選挙にいこう:2010/07/24(土) 08:49:32
>>138
まずは「excel form」でググって、それでも分からんことだけを聞くように。

140 :138:2010/07/24(土) 08:54:44
いやexcelのformじゃなくてボタンを作りたいだけなんですよ
それをwebのformを値指定でsubmitしたいの

141 :名無しさん@そうだ選挙にいこう:2010/07/24(土) 09:13:21
ダメだこりゃ

142 :名無しさん@そうだ選挙にいこう:2010/07/24(土) 09:31:22
>>138 >>140
もし、やりたい事が
Excelのボタン押す→IE起動→あるWebページのFormへ値を自動的に入力→ Submit
ならVBAで可能
「Excel IEオブジェクト」でググってみたら?

143 :名無しさん@そうだ選挙にいこう:2010/07/24(土) 09:34:05
>>140
ググるとはどういうことか、分かってないようだね。
「Googleとかで検索することでしょ?そんなの知ってますよ!」ってか?w
そういうことを言ってるんじゃないのよ。

144 :138:2010/07/24(土) 09:45:13
そのとおり!
VBAでどう記述するのでしょうか?

ググるとは、ググレカレーをつくって食べるということですか?それはククレカレーだし。

145 :名無しさん@そうだ選挙にいこう:2010/07/24(土) 09:50:56
>>138の文章を読んだ瞬間に、こういう性格の奴だとすぐに分かったわw

146 :138:2010/07/24(土) 10:00:29
そんなこといわずにおしえれ

147 :138:2010/07/24(土) 10:15:14
時間だ
答えを聞こう

148 :名無しさん@そうだ選挙にいこう:2010/07/24(土) 10:18:24
答え:この世界に全く向いてない。虎乗りにでも転職しろ。

149 :138:2010/07/24(土) 10:26:16
そこは「バルス」と言って欲しかった

150 :複乳:2010/07/24(土) 13:13:20
>>144
ググるとは、googleで検索すること

151 :名無しさん@そうだ選挙にいこう:2010/07/24(土) 14:53:51
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

以下のような名前/身長/体重を表したデータがあるとします。
名前をリストにして選択すると、身長と体重も名前の右のセルに出力するようにしたいです。
(例:A1の名前のリストで田中を選択すると、160をB1、150をC1に表示させたい)

一つのリストに連動して他のセルの値を変える方法がわからないのですが、
どのようにすればよいでしょうか?


山田 170 60 
田中 160 50
中山 150 40



152 :名無しさん@そうだ選挙にいこう:2010/07/24(土) 15:21:36
>>151
vlookupですね

153 :名無しさん@そうだ選挙にいこう:2010/07/24(土) 15:22:19
>>151

山田     =VLOOKUP(a1,$a$100:$c$200,2,0)     =VLOOKUP(a1,$a$100:$c$200,3,0)
田中     =VLOOKUP(a2,$a$100:$c$200,2,0)     =VLOOKUP(a2,$a$100:$c$200,3,0)
中山     =VLOOKUP(a3,$a$100:$c$200,2,0)     =VLOOKUP(a3,$a$100:$c$200,3,0)











山田 170 60 
田中 160 50
中山 150 40

154 :名無しさん@そうだ選挙にいこう:2010/07/24(土) 19:00:17
Excel起動時に日本語入力モードになってるのがうざいんですけど
半角英数字で起動する方法はありますか?

155 :名無しさん@そうだ選挙にいこう:2010/07/24(土) 23:24:01
EXCEL2007です。
質問なのですが、Sheet1に数万行のデータがあって、
Sheet2には千行ほどあります。
Sheet1の方は数式を値に貼替えていて、Sheet2は数式がありますが
たったの2列です。
この2列を削除したいのですが、削除しようとしたらフリーズしてしまいます。
セルを選択してDelもダメ。
列を選択してDelもダメで。
空白セルをコピーして、削除したいセルに貼りつけてもダメ。
どうにもなりません。解決策をお願いします。

156 :名無しさん@そうだ選挙にいこう:2010/07/25(日) 02:39:34
>>152->>153
ありあがとうございました!
無事解決しました

157 :名無しさん@そうだ選挙にいこう:2010/07/25(日) 05:46:52
>>155
とりあえず計算方法の設定を自動→手動に切り替えてから削除してみては?

158 :名無しさん@そうだ選挙にいこう:2010/07/25(日) 06:38:55
>>154
君はお風呂に水を入れようとして蛇口ひねったらシャワーから水が出てくるタイプだな。w

もしかしてAT〇Kか?


159 :複乳:2010/07/25(日) 07:48:49
>>154
まずスタートアップのフォルダを探す。OSやエクセルのバージョンによって違う。
C:\Documents and Settings\名前\Application Data\Microsoft\Excel\XLSTART
ここのファイルがエクセル起動時のファイルになるので、これを編集
全体選択(CTRL+A)→データ、入力規則、日本語入力タブ、日本語入力をオフに

>>155
メモリエラーかなぁ
新しいファイルを作って、Sheet1だけコピーする

>>158
全然面白くないから二度と書き込まないでね

160 :暑中お見舞い申し上げます。:2010/07/25(日) 08:08:52
>>159
君は比喩的表現が生理的に受け付けないか、または理解できないのか、
もしかして下段のATOKを知らずに隠語と何か勘違いしたのか、
おそらく暑さでカリカリして苛立っているのだろうな。

161 :複乳:2010/07/25(日) 08:14:13
言いたいことは一つ
回答者なら回答してから雑談でもしましょうということ

162 :暑中お見舞い申し上げます。:2010/07/25(日) 08:33:39
>>161
>>154はテンプレ使って質問Sしてないから使用環境を知るためにあえてああいった
表現を使ったまで。

第三者の君に
>>158
全然面白くないから二度と書き込まないでね

と言われる筋合いの事ではないのだがな。


163 :名無しさん@そうだ選挙にいこう:2010/07/25(日) 08:34:02
複乳って名前の割に真面目だよな
名前の割に

164 :名無しさん@そうだ選挙にいこう:2010/07/25(日) 09:03:34
Excelのある1つのシートだけはHTMLページにしたいんです
つまりそのシートだけは他で作ったHTMLシートを埋め込む感じです
どうすればいいか教えてちょんまげです

165 :名無しさん@そうだ選挙にいこう:2010/07/25(日) 12:35:02
>>157 それでやってもダメなんですよね。
1つ1つ消すわけにも行かないけど、やってみたら2つは消せても
3つ目でフリーズ。
仕方がないのでSheet1だけコピーして他のブックに貼付けました。
意味不明な出来事でした。

166 :名無しさん@そうだ選挙にいこう:2010/07/25(日) 22:01:44
VBAで下記の2つは同じですか?
Selection.Areas.Count
Selection.Cells.Count

167 :名無しさん@そうだ選挙にいこう:2010/07/25(日) 22:22:09
>>166
全く別のもの
実際にやってみれぱ分かると思うけど
A1:A3 と C1:C2 を2つの領域を選択した時
Selection.Areas.Count = 2 .... 選択した領域の数
Selection.Cells.Count = 5 .... 選択したセルの数

168 :166:2010/07/25(日) 23:01:06
どうもThanks >>167

169 :名無しさん@そうだ選挙にいこう:2010/07/25(日) 23:43:05
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可(VBAを使わないと難しければ)

エクセルで作製したグラフのプロット上にマウスカーソルを置いた際に、
そのデータ値が表示されると思うのですが、それを任意の言葉に変更したいのです。
VBA無しでできれば嬉しいのですが、可能でしょうか?
VBAが無ければ難しいのであれば、VBAで解答して頂いても大変ありがたいです。

170 :名無しさん@そうだ選挙にいこう:2010/07/26(月) 00:56:46
>と言われる筋合いの事ではないのだがな

キモいw

171 :名無しさん@そうだ選挙にいこう:2010/07/26(月) 08:12:08
Excelのある1つのシートだけはHTMLページにしたいんです
つまりそのシートだけは他で作ったHTMLシートを埋め込む感じです
どうすればいいか教えてちょんまげです

172 :複乳:2010/07/26(月) 08:54:36
>>164>>171
webページをコピーして貼り付けるぐらいしかない

173 :名無しさん@そうだ選挙にいこう:2010/07/26(月) 16:41:17
内容がないのに印刷すると総ページ数が2で2枚でてくる(最後の1枚は真っ白)のですが
これはどうにかして1ページにできないでしょうか?
余白をいじったくらいです

174 :複乳:2010/07/26(月) 16:51:26
>>173
ページ設定の拡大縮小

175 :名無しさん@そうだ選挙にいこう:2010/07/26(月) 18:14:49
>>173
Ctrl+EndでExcelが使用済みと判断したセルの位置が出る

とりあえず怪しいセルを選択して編集→クリア→すべてとやって名前を付けて保存してみる

176 :名無しさん@そうだ選挙にいこう:2010/07/27(火) 02:52:36
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

画像をセルのデータとして挿入するにはどうすればよいでしょう?
例えばA1に画像を挿入した場合に、他のセルで「=A1」とすれば、
同じ画像が表示されるようにしたいです。

google検索では、綺麗にセル幅にあわせた画像を乗せておく
といったようなパターンしか見つけられませんでした。

よろしくお願いします。

177 :名無しさん@そうだ選挙にいこう:2010/07/27(火) 03:28:45
無理

178 :複乳:2010/07/27(火) 07:13:43
>>176
セルのデータは無理だけど
同じ画像が表示は可能。図のリンク貼付けって機能↓
ttp://www.relief.jp/itnote/archives/000163.php

179 :名無しさん@そうだ選挙にいこう:2010/07/27(火) 14:42:50
条件付書式によって色塗りされたセルを、その色で確定する事はできませんか?
数式の結果をコピペで「値」にする感じで、セルの色を確定したいのですが…

180 :名無しさん@そうだ選挙にいこう:2010/07/27(火) 18:31:29
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

メールにExcelファイルを添付し送信したところ、
先方では、フォントやセルの色等が全て反映されていなく、
また多数のシートの一部を非表示にし、シートの保護をして送付しているのですが、
非表示分のシートも全て表示されてしまうという現象が起きています。
先方のバージョンが低いのかと思い、当方でExcel2003が入っているPCで同ファイルを開いたところ
問題無く開けているのでバージョンのせいでも無いようです。
原因がわかれば教えてください。宜しくお願いします。


181 :複乳:2010/07/27(火) 19:46:04
>>179
VBAならこの辺?
ttp://okwave.jp/qa/q1455002.html
>>180
フォントは先方に無いフォントを使うと自動で変わったと思う。セルの色は知らん
2003で作れば少しはましになるとおもう。
後はxlsxではなく、xls形式で作るとか
とりあえず先方のバージョンを聞かないと原因は分からない。先方がキングソフトオフィスや、OOo使ってる可能性もあるしねぇ


182 :名無しさん@そうだ選挙にいこう:2010/07/27(火) 23:36:56
2007ビューワーが入ってねーんだろ

183 :名無しさん@そうだ選挙にいこう:2010/07/27(火) 23:37:37
179は2007買え

184 :103:2010/07/28(水) 05:15:06

【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
エクセルでピンボールができたんですが福乳さんが何点とれるか知りたいです
http://www42.atwiki.jp/syugyou?cmd=upload&act=open&pageid=243&file=nnn.xls

185 :名無しさん@そうだ選挙にいこう:2010/07/28(水) 08:20:29
>>184
そういうのはこっち↓でやってろ。

【質問不可】Excel総合相談所スレの雑談・議論スレ2
http://pc11.2ch.net/test/read.cgi/bsoft/1151651536/l50

186 :180:2010/07/28(水) 17:38:35
>181,182
やはりバージョンですかね。
とりあえず保存を95まで落としたものを送ってみました。
結果はまだ来てませんが。
レスTKS!


187 :名無しさん@そうだ選挙にいこう:2010/07/28(水) 19:44:30
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

Nowのシリアル値が知りたくて、
msgbox datevalue(now)
としたんものの2010/07/28と出てくるんですが、どうしたらいいですか

188 :名無しさん@そうだ選挙にいこう:2010/07/28(水) 20:06:57
MsgBox Now

じゃダメなの?

189 :名無しさん@そうだ選挙にいこう:2010/07/28(水) 20:57:06
>>187
MsgBox CDbl(Now)

190 :名無しさん@そうだ選挙にいこう:2010/07/28(水) 20:58:41
>>189
ありがとう!

191 :名無しさん@そうだ選挙にいこう:2010/07/29(木) 17:49:31
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010 2007でも可
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 グラフ

○月○日 出張費 10000円
○月○日 出張費 8000円
○月○日 交際費 7000円

こういった感じで表を作った場合にグラフ(自分は円を使いました)
を作成すると(対象は科目列{2列目}と金額列{3列目})
グラフには出張費項目が2個作成されてしまい合計3項目のグラフになってしまいました。
これを「出張費」「交際費」の2つの項目のグラフにする方法はありますか?
現在は出張費合算、交際費合算をその他セルで算出してグラフ化しているのですが
できることならこれをしないでグラフ化したいのです。
よろしくおねがいします。

192 :名無しさん@そうだ選挙にいこう:2010/07/29(木) 20:33:00
>>191
ピボットグラフ

193 :あぼーん:あぼーん
あぼーん

194 :名無しさん@そうだ選挙にいこう:2010/07/30(金) 05:14:46
Excel2007で簡単に給料計算をする方法を教えてください。

195 :名無しさん@そうだ選挙にいこう:2010/07/30(金) 07:16:49
>>194
Excel2007で動く給与計算ソフトを探してきて導入。

196 :名無しさん@そうだ選挙にいこう:2010/07/30(金) 10:48:29
>>194
エクセル 給料計算 テンプレ
でぐぐるとテンプレートが出てくるのでそれを使う

197 :名無しさん@そうだ選挙にいこう:2010/07/30(金) 19:19:33
スレ的にこういう回答はどうかと思うけど給与計算は適当なパッケージソフト(保守サポートありのやつ)
買った方がいいと思う
所得税の計算とか社会保険料の計算とかしょっちゅう制度が細かく変わるから
自力でメンテするには面倒すぎる

198 :名無しさん@そうだ選挙にいこう:2010/07/30(金) 22:07:59
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

みかん 100円
りんご  50円
なし  200円
ぶどう 200円
りんご 100円
みかん  50円
りんご 100円


上の表で、りんごが売れた件数の表計算
上の表で、りんごが売れた合計金額の表計算

以上よろしくお願いします


199 :名無しさん@そうだ選挙にいこう:2010/07/30(金) 22:21:56
=COUNTIF(A:A,"りんご")
=SUMIF(A:A,"りんご",B:B)

200 :名無しさん@そうだ選挙にいこう:2010/07/30(金) 22:47:24
なんか(・∀・) コワレタ !!

201 :名無しさん@そうだ選挙にいこう:2010/07/31(土) 01:19:35
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007

読み上げがSumしません。NaokoとKenjiがいなくなりました。
MS社に問い合わせたところ、故意にやりましたという回答でした。
なぜ?

202 :名無しさん@そうだ選挙にいこう:2010/07/31(土) 07:46:33
>>201
MS社に問い合わせた時にさらに突っ込んで聞けばよかったのに。

203 :名無しさん@そうだ選挙にいこう:2010/07/31(土) 08:38:36
>>199

助かりました!
ありがとうございます!

204 :名無しさん@そうだ選挙にいこう:2010/07/31(土) 11:30:25
【1 OSの種類         .】 widows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】 否

教えてください
countifで三種類の記号のうち2種類のみを数えたいのですが
(表の中に○、△、×、とあるうちの○と△のみを数えたい)
「検索条件」を”○、△”と入力したのですがうまくいきません。

どなたか良い方法がありましたらご教授願いたいと思い書き込ませて頂きました。
宜しくお願いします。


205 :204:2010/07/31(土) 11:43:14
自己解決できました
スレ汚しスマソ

206 :名無しさん@そうだ選挙にいこう:2010/07/31(土) 11:45:07
【1 OSの種類         .】 WindowsVISTA
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 住所録作成

会社で仕事回されたのですが、うちの会社今までPCなんて使わなくって
誰もエクセル使えないという状態です。
なぜか社長が今までの顧客データ全部パソコンで作る言い出しまして
なぜか私が1万人近い住所録作ることに。
Aタブに郵便番号、Bタブに住所、C氏名、D生年月日、E性別、F電話、G備考。です。

Aに郵便番号入れたらそのままBに住所出力出来ませんか?
Bに全角で入れて変換する手間が省けたらと思いまして。

207 :名無しさん@そうだ選挙にいこう:2010/07/31(土) 13:28:29
>>206

やりたいのはこれか?

ttp://hamachan.info/excel/yuhenkan.html


208 :名無しさん@そうだ選挙にいこう:2010/07/31(土) 15:01:07
>>207
それですぅ
これで少し楽になるです。
ありがとです。

209 :名無しさん@そうだ選挙にいこう:2010/07/31(土) 15:04:42
あれ、、今やって見たら違たです。
A1〜〜A200位有るので
A1に郵便番号入れたら、勝手にB1に住所が入って欲しいのです。
A10に入れたらB10にとか。

210 :名無しさん@そうだ選挙にいこう:2010/07/31(土) 15:14:58
【1 OSの種類         .】 widows VISTA
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】はい
【4 VBAでの回答の可否】 できれば否、どうしても不可能だったら可
1、A
2、A
3、B
4、B
5、C
こういうデータがあった場合
1、A
3、B
5、C

としたいのですが現状は違う列にif(B2=C2,"○","×")
で×のセルを削除する方法をとっていますが、これ以外に方法ってあるのでしょうか?

また
1、A
2、
3、B
4、
5、C
みたいに複数データがある場合は、一番上の行だけ残してあとはクリアにしたいのですが
こういう場合はどうすればいいのでしょうか?

211 :複乳:2010/07/31(土) 16:29:55
>>209
VBAじゃないと無理と思う
後はgoogleIME入れれば郵便番号を変換すれば住所になる
>>210
上はフィルタオプションで重複を削除にチェック
下はB2=IF(COUNTIF($A$1:A2,A2)>1,"",A2)
で下にオートフィル、値でコピーとか。
数式を残したいならvba。

212 :209:2010/07/31(土) 18:49:00
>>211
ありがとです。
VBAって何です?って位知らないので普通に変換でやってきますぅ

213 :名無しさん@そうだ選挙にいこう:2010/07/31(土) 18:53:43
【1 OSの種類       】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか   】 はい
【4 VBAでの回答の可否】 可

EXCELのフォームでボタンを作りそのボタンを押すことにより
別のEXCELのテンプレートファイルをテンプレートとして開くもの
を作ろうとしています。

ボタンに次の様なマクロを登録すると

Sub ディライトテンプレート起動()
ChDir "C:\請求"
Workbooks.Open(Filename:="C:\請求\請求書.xlt", Editable:=True). _
RunAutoMacros Which:=xlAutoOpen
End Sub
(フォルダー「見積」にテンプレート形式の「見積書.xlt」ファイルがあります。)
一応「見積.xlt」は開いてきますが、この動作はEXCELメニューの「開く」からテンプレート形式のファイルを
開いたのと同じことなので、何か入力して保存するとテンプレート形式で保存されてしまいます。
「請求書.xlt」をテンプレートとして実行したいのですが、どうすれば良いでしょうか?
よろしくお願いいたします。


214 :名無しさん@そうだ選挙にいこう:2010/07/31(土) 18:56:07
>>213
訂正:以下の文中の「見積」は「請求」の間違いです。
>(フォルダー「見積」にテンプレート形式の「見積書.xlt」ファイルがあります。)
>一応「見積.xlt」は開いてきますが、この動作はEXCELメニューの「開く」からテンプレート形式のファイルを


215 :名無しさん@そうだ選挙にいこう:2010/07/31(土) 21:27:13
>>213
Workbooks.Add Template:="C:\請求\請求書.xlt"
じゃだめなのかな

216 :名無しさん@そうだ選挙にいこう:2010/07/31(土) 21:36:24
A列にあるすべてのセルの漢字の振り仮名をクリアにしたいのですが
まとめてできる方法とかありますでしょうか?

217 :名無しさん@そうだ選挙にいこう:2010/07/31(土) 21:38:23
>>215
テンプレートとして開くことができした。
ありがとうございます。
追加質問ですが、こうやって起動するとテンプレートファイルのauto_openのマクロが
自動実行されないのですが、何か215に追加してコードを書かないといけないのでしょうか。


218 :名無しさん@そうだ選挙にいこう:2010/07/31(土) 21:57:37
>>216
マクロで


Sub aaa()
With Range("a1:a" & Cells(Rows.Count, 1).End(xlUp).Row)
.SetPhonetic
.Characters.PhoneticCharacters = ""
End With
End Sub

219 :名無しさん@そうだ選挙にいこう:2010/07/31(土) 22:04:19
>>217
auto_openでどの様な処理をやっているか分からないけど

1)RunAutoMacros メソッドを使う
  →使った事ないからようわからん
又は
2)auto_openをやめて
 ThisWorkbook の Workbook_Openイベントを使う

  Private Sub Workbook_Open()
   'なんかの処理
  End Sub

220 :名無しさん@そうだ選挙にいこう:2010/07/31(土) 22:11:01
>>216
一度メモ帳に貼付け
貼りつけたものを再度コピーして、エクセルに貼付け
複数行ある場合はVBAが必要だけど、よほどでない限り目で確認しながら自分で編集した方が早いと思う

221 :名無しさん@そうだ選挙にいこう:2010/07/31(土) 22:12:15
>>219
ありがとうございます。
やってみます。

222 :215&219:2010/07/31(土) 22:14:50
>>221
ふと思ったけど 1)だと
Workbooks.Add(Template:="C:\請求\請求書.xlt").RunAutoMacros Which:=xlAutoOpen
で動作しないかな?

223 :名無しさん@そうだ選挙にいこう:2010/07/31(土) 23:05:05
>>219
2)でやったら出来ました。ありがとうございました。

その後
>>222さんの書き込みを見てやってみましたができました。
ありがとうございました。

今回ボタンを作って起動したいテンプレートファイルが20個くらいあるので
テンプレート側を直さなくていいRunAutoMacrosの方でやりたいと
思います。お二方ありがとうございました。


224 :名無しさん@そうだ選挙にいこう:2010/08/01(日) 00:04:19
>>223
テンプレファイルにコードを書くんじゃなく
ボタンがあるBookにコードを書くようにしたほうがイイよ


225 :名無しさん@そうだ選挙にいこう:2010/08/01(日) 00:30:21
>>224
そうします。サンキューです。

226 :名無しさん@そうだ選挙にいこう:2010/08/01(日) 00:49:36
>>213
マクロの記録で名前をつけて保存すればok

227 :名無しさん@そうだ選挙にいこう:2010/08/01(日) 16:00:20
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel 
【3 VBAが使えるか    .】 いいえ 
【4 VBAでの回答の可否】 否 
【5 検索キーワード     】 Googleやヘルプでの検索キーワード 
すみません、他スレに書いたのですがスレが機能していないみたいなので
こちらで質問します。
XPぐらいまでの古いエクセルだと、グラフを作っても遅くならないのですが、 
最新のオフィスだと、データが32000を超えるグラフを作った時に、 
系列を2つ(データが60000を超えるため)繋いで、
同じ系列の色をあわせるために変更すると、重すぎて作業になりません、 
どうしたら古いエクセルみたいに、色を変更しても、早くなりますか? 
色がバラバラなままだと重くないのですが、 色を統一すると
表示が遅くなりますという警告が出て、作業が出来ないぐらい重くなります。
今のままだと古いバージョンのエクセルでしかグラフを作る事しかできませんが、
最新のパソコンで作業するように言われてるため、
重すぎて何時間たってもグラフが作れません。



228 :名無しさん@そうだ選挙にいこう:2010/08/01(日) 18:30:26
>>227
最新ついでに64bit版Officeにしちゃえば?

229 :名無しさん@そうだ選挙にいこう:2010/08/01(日) 18:33:46
表を作り替える。100行に一行ぐらいのデータにしてそこからグラフ作成
OOoでも使ってみる。OOoが分からない場合はググれ

230 :名無しさん@そうだ選挙にいこう:2010/08/01(日) 22:19:55
1時間23分45秒を
83分45秒と表示させるにはどうすればよかったですっけ?


231 :名無しさん@そうだ選挙にいこう:2010/08/01(日) 22:23:30
>>228-229
お返事有り難うございます。
会社の物品なので自分で仕様変更は出来ません。
あと、元のデータは70万を超えていて、
12行に1行のデータにして6万のグラフにしてます、
これが旧バージョンのエクセルでは可能でした。
新バージョンでも色の変更さえしなければ
重くならずに作業出来るのですが、
それでは顧客に提出が出来ないので悩んでいます。


232 :230:2010/08/01(日) 22:25:58
Oh, thanks!
>>233

233 :名無しさん@そうだ選挙にいこう:2010/08/01(日) 22:28:10
[h]:mmとすればいいですYo

234 :名無しさん@そうだ選挙にいこう:2010/08/01(日) 22:31:36
>>230
これの事かな
表示形式 [m]:s に変更でそう表示されると思いますけど

235 :名無しさん@そうだ選挙にいこう:2010/08/02(月) 00:26:58
【1 OSの種類         .】 Windows vistaSP2
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 条件 抽出

  A   
1渋谷   
2恵比寿 
3渋谷   
4大塚  
5恵比寿
 
このような重複するデータの統計を取るのに、B列に
入力されたデータを一つずつ並べたいです。

 B
1渋谷  ←A1を入れる
2恵比寿 ←A1〜A4の中で、A1以外のデータを入れる
3大塚  ←A1〜A4の中で、A1、A2以外のデータを入れる
4     ←データの種類が3種類なら空欄

という感じで関数を組めば自動的にどのデータが入力されたのかの
一覧が出来ると思うのですが、具体的にどうやればいいのかわかりません。
よろしくお願いいたします。

236 :名無しさん@そうだ選挙にいこう:2010/08/02(月) 00:35:05
すいません、間違えました。
>>235の下は、

 B
1渋谷  ←A1を入れる
2恵比寿 ←A1〜A4の中で、B1以外のデータを入れる
3大塚  ←A1〜A4の中で、B1、B2以外のデータを入れる
4     ←データの種類が3種類なら空欄

です。
関数を使ってフィルタリングをしたいです。

237 :複乳:2010/08/02(月) 07:52:44
>>231
何らかの方法でデータを圧縮するor再計算を止める
表を見せてもらえばすぐに解決できるとおもう
>>235
フィルタオプションで重複を削除にチェック
どうしても数式なら
B1=IF(C1="","",COUNTA($C$1:C1)-COUNTBLANK($C$1:C1))
C1=IF(COUNTIF($A$1:A1,A1)>1,"",A1)
D1=VLOOKUP(ROW(),B:C,2,0)

238 :名無しさん@そうだ選挙にいこう:2010/08/02(月) 08:17:28
>>237
下手だねぇ。せめてc1の式はMATCH使えよ。
MATCH使ってもまだ100点満点で30点くらいだな。
そもそも関数でやること自体が100点にはなりえないが。


239 :名無しさん@そうだ選挙にいこう:2010/08/02(月) 08:37:55
>>238
おまいさんの上手な式とやらを見せてKれよ

240 :名無しさん@そうだ選挙にいこう:2010/08/02(月) 09:50:16
>>239
こうやるんだよ。
=INDEX(A:A,SMALL(INDEX((MATCH(A$1:A$1000&"",A$1:A$1000&"",)<>ROW(A$1:A$1000))*1000+ROW(A$1:A$1000),),ROW(A1)))&""
A1:A1000にデータがある式な。

241 :名無しさん@そうだ選挙にいこう:2010/08/02(月) 09:59:26
>>240
一式でやるのは個人的には楽しいけれど、こんな所で煽った結果の式がこれかい
自己満足以外の何ものでもない

アホか

242 :名無しさん@そうだ選挙にいこう:2010/08/02(月) 10:02:00
>>240
すごいねぇw
でその式は何点なの?

243 :名無しさん@そうだ選挙にいこう:2010/08/02(月) 10:17:34
>>242
俺からみたらマイナス100点だなw
モー愚で見たような式だが>>240はあそこのアフォじゃねーか?

244 :複乳:2010/08/02(月) 11:46:48
まさかこの回答で煽られるとは思わなかったw
>>242
100000000000000000000000000点ぐらいあります>w<

245 :名無しさん@そうだ選挙にいこう:2010/08/02(月) 12:11:41
せめて>>240も作業列を1列作れば10点くらいあげてもいいんだが、それじゃやっぱりマイナスだろうねぇ。
MATCHの計算を無駄に1000倍だもんなぁ。
基本が全然分ってない人なんだろうね。

246 :名無しさん@そうだ選挙にいこう:2010/08/02(月) 20:15:02
>>243
誰も声の大きい奴が有能なんて話してんじゃねえんだよ
どんな仕事でも、声の小さい奴は例外なく無能だって言ってんだ
どんな仕事って言っても正社員で経験したのは4社だけど
バイト時代も含めて声が出てない人は必ず仕事も出来ない人だった
一人の例外も無くだ
まだ12年の短い社会人経験から得た経験則だが、
まともに働いてる人間ならほぼ共通する認識、つまり常識のはずだぞ

247 :名無しさん@そうだ選挙にいこう:2010/08/02(月) 20:27:26
>>246
どこと誤爆?

248 :名無しさん@そうだ選挙にいこう:2010/08/02(月) 20:40:20
>>237
再計算はしてません、それと圧縮もこれ以上は出来ません。
表は、会社から顧客へ提出するので見せるのも出来ませんが、
6万ぐらいのデータを8系列〜13系列の折れ線グラフです、
色がバラバラなら重くならないのですが、
1系列のグラフは、3万データまでしか使えないので、
1〜3万、3万1〜6万のグラフを繋いで1系列にしています。
そのまま繋ぐと自動では、色が違うので
それを変更して統一する時に、色を変更すると処理速度が落ちますという警告が出て、
1回の表示に5分〜10分以上かかるようになり、
簡単な作業も何時間経っても終わらなくなって困ってます。




249 :複乳:2010/08/02(月) 22:04:23
>>248
圧縮、ねぇ
試しに数式で三行ごとに平均を取ってみた
http://www1.axfc.net/uploader/Img/so/90571
こういう処理してからグラフ作成すれば軽くなると思うんだけどねぇ〜
VBAも使えない環境・実力なら、ペイント等の画像ソフトで加工した方が圧倒的に早いと思う
Windows7のペイント、確かなかなか良かったような

あとこういう所で見せるデータというのは、ダミーデータだよ。
A列に日付、B列に本店売上、C列に仕入値、とかね。どこになにが入ってるかわかれば大体想像できるので、
適切な回答をもらいやすくなるよ。多分ね。

250 :名無しさん@そうだ選挙にいこう:2010/08/02(月) 22:11:52
>>248
データ量が大きい時はアクセスの方が少しはましになるんじゃないかい?
(詳しくないけど)

ってか、アクセスってグラフ機能あるのね、今調べて初めて知ったw

251 :名無しさん@そうだ選挙にいこう:2010/08/02(月) 22:22:01
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】VBA

Excelで一行目に文字列があって
その行と同じ階層にあるaaa.csvの
a,b,c,d…みたいな中身のファイルを比較して
たとえば
A1のデータとa、B1のデータとbみたいに
全て一致していたら○、一つでも違っていたら×みたいにしたいのですが
可能でしょうか?


252 :名無しさん@そうだ選挙にいこう:2010/08/02(月) 22:30:05
言ってる意味がさっぱりわからないが、
openfileやdir、文字列比較でぐぐったらいいと思う
それも出来ないようなら素直にベクターで
ファイルの内容比較するソフト使えばいいと思う

253 :名無しさん@そうだ選挙にいこう:2010/08/02(月) 23:53:35
>>251
aaa.csvをExcelで開いてあげてセル同士の比較にすればよくね

254 :名無しさん@そうだ選挙にいこう:2010/08/03(火) 00:09:50
シート1のA4に、シート3のB5をコピーしたい時にどのように入力すればいいですか?

255 :名無しさん@そうだ選挙にいこう:2010/08/03(火) 07:45:32
>>254
コピーは入力ではできない
参照なら
A4='sheet3'!B5

256 :名無しさん@そうだ選挙にいこう:2010/08/03(火) 08:37:39
ヘッダ2行で、以下数十行に渡って2行ずつのデータが並んでいるのですが、
これをヘッダ1行にして、データも1行にしたいです。
INDEXとかROWとかCOLUMNとかでやってみましたが、うまくできません。
ベクターでそういうツールが売っているのですが、会社に言ってそれを
買った方がいいのでしょうか?
それとも、関数式のオートフィルでできるのでしょうか?

257 :名無しさん@そうだ選挙にいこう:2010/08/03(火) 09:39:17
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】否
【5 検索キーワード     】 EXCEL 文字列操作 抽出

a1に「アイウエオカキクケコ」という文字が入ってる時に
a2に左から3文字右から5文字を抽出したい(つまり「ウエオカの抽出」)
のですが方法を教えてください。

FIND LEFT RIGHTを使っても上手くいきません。

258 :名無しさん@そうだ選挙にいこう:2010/08/03(火) 10:10:42
>>257
MID

259 :251:2010/08/03(火) 10:54:28
aaa.csvをExcelで開いてあげてセル同士の比較って
どうやればいいでしょうか?

260 :257:2010/08/03(火) 11:44:01
258
ありがとございます

261 :複乳:2010/08/03(火) 12:34:43
>>256
a列に並んでるとして
B1=INDIRECT("r"&(ROW()-1)*2+1&"c1",0)
C1=INDIRECT("r"&(ROW()-1)*2+2&"c1",0)
D1=B1&C1
下にオートフィル
終わったら値でコピーすれば官僚
>>259
それも分からないなら無理と思う

262 :251:2010/08/03(火) 12:56:05
そんなこと言わずに教えれ

263 :名無しさん@そうだ選挙にいこう:2010/08/03(火) 13:08:27
>>261
ご回答ありがとうございます。
a列一列を一行ずつに配置できましたが、
このa列が右に複数列あるばあい、
上記関数のどの数値や文字列を変更すればよろしいでしょうか。
たびたび申し訳ありません。

264 :複乳:2010/08/03(火) 13:32:50
>>263
R1C1、という形式があるんだけどRは行、Cは列を表す
=indirect("r1c1",0)だと、A1の内容を表示する。("r2c4")だとD2になる

右に複数列をどう処理するのかわかんないけど、
B1=INDIRECT("r"&(ROW()-1)*2+1&"c5",0)
C1=INDIRECT("r"&(ROW()-1)*2+2&"c5",0)
って感じで最後のC1をC5に変えれば5番目のE列を処理できる
これだけの情報で何とかなるかな
もっと詳細な情報もらえれば何かテキトーに作るよ
>>262
っていうかぁ〜
質問の内容あんまりわかんないんだよね〜
分かるように具体的な内容で質問しなおしてくれれば答えられるかもね〜

265 :名無しさん@そうだ選挙にいこう:2010/08/03(火) 14:00:57
>>264
ありがとうございます。
配置はできました。
助かりました。
もう一つなのですが、これを別シートで表示したいのですが、
自分でためしてみましたができません。
上記関数のどこにSheet1!をつければ宜しいでしょうか。
何回も恐れ入りますが、宜しくお願い致します。

266 :名無しさん@そうだ選挙にいこう:2010/08/03(火) 14:06:45
いい加減不細工なINDIRECTやめてINDEXにすりゃいいのに。
ブス専か?

ブス:=INDIRECT("r"&(ROW()-1)*2+1&"c1",0)
普通:=INDEX(A:A,ROW()*2-1)

ブス:=INDIRECT("r"&(ROW()-1)*2+2&"c1",0)
普通:=INDEX(A:A,ROW()*2)

267 :名無しさん@そうだ選挙にいこう:2010/08/03(火) 14:18:35
まぁまぁ、複乳はINDIRECTが得意なんだから見守ってあげようよ。

268 :複乳:2010/08/03(火) 14:19:56
>>265
=INDIRECT("sheet1!r"&(ROW()-1)*2+1&"c5",0)
>>266
じゃあ答えてあげれば〜

269 :名無しさん@そうだ選挙にいこう:2010/08/03(火) 14:22:51
>>266
=INDEX(Sheet1!A:A,ROW()*2-1)
=INDEX(Sheet1!A:A,ROW()*2)

これで解決致しました。
ありがとうございました。
複乳さんもどうもありがとうございました。

270 :名無しさん@そうだ選挙にいこう:2010/08/03(火) 14:49:26
よくコテハン使うよなぁ
恥をいっぱい書いて上達したいのかも知れないが、がんばってくれたまえ

271 :名無しさん@そうだ選挙にいこう:2010/08/03(火) 15:02:34
怒らないでマジレスしてほしいんだけど
なんでこんな時間に書き込みできるわけ?
普通の人なら学校や会社があるはずなんだけど
このこと知った親は悲しむぞ?

272 :複乳:2010/08/03(火) 15:17:46
わたしはね働かなくても財産がある
資産運用をして不労取得がある
お金のことに対して知恵がある
あなたとは違うんです

273 :名無しさん@そうだ選挙にいこう:2010/08/03(火) 15:24:29
あなたとはexcelの運用方法も違うんです

274 :複乳:2010/08/03(火) 15:28:54
>>273
そういうことも考えました
excelの運用方法とあなたおっしゃったけどもね
私は自分自身のExcelの使い方を客観的に見ることができるんです

http://azflash.net/az/fla/chigaundesu.htm

275 :名無しさん@そうだ選挙にいこう:2010/08/03(火) 15:40:47
かっこいい!

276 :名無しさん@そうだ選挙にいこう:2010/08/03(火) 17:33:10
複乳さんはよく煽られるけど、俺は全く嫌な感じしないけどね

レスの式が良いか悪いかは考え方にも、こだわり方にもよる。
何より初心者にとってレスがあるだけでも助けになるよ。

まぁコテであることだけで煽る、ある意味嫉妬のようなものかな

277 :名無しさん@そうだ選挙にいこう:2010/08/03(火) 18:19:48
Excel2007ではマクロが動くのに
同じファイルでExcel2003だとエラーが出るんです

どんなエラーか正確には忘れましたが
PC or Excelの性能の問題っぽいです。
どうすればいいですか?

278 :名無しさん@そうだ選挙にいこう:2010/08/03(火) 18:38:38
>>277

そのファイルをExcel2003では使わないようにする。


279 :253:2010/08/03(火) 20:46:11
>>259
VBAを使わず手動で Excelから aaa.csv を開いてみるとイメージがわくと思うけど
Excelの開くで ダイアログが出たら
ファイルの種類を テキストファイル(・・・・・・ *.csv)にしる

つか aaa.csv ってテキストファイルだよね?

280 :名無しさん@そうだ選挙にいこう:2010/08/03(火) 23:12:20
>>277
エラーの内容は正確に書き写すことが基本
性能が問題ならPC買い換えorEXCELのバージョンアップしか無い
どうしても混在の環境でマクロを作りたいなら、2003でマクロを作る

281 :名無しさん@そうだ選挙にいこう:2010/08/04(水) 00:43:32
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 少々
【4 VBAでの回答の可否】 可

G列にある、次のような値から右端の"-F"と"-R"だけ削除をしたいです。
("-F"や"-R"がないときは、そのまま)

A100-F
B-200-R
AB-3000-R
C10000
B2500-F

 ↓

A100
B-200
AB-3000
C10000
B2500

現在、データが3万行くらいあり、今後も毎月2,000行くらい
更新されそうなので、手作業で削除するのは辛いです。
値の長さが一定ではないので、区切り位置では
うまく出来ませんでした。
よろしくお願いします。

282 :名無しさん@そうだ選挙にいこう:2010/08/04(水) 02:08:02
>>281
"-F"と"-R"を""に置換

283 :名無しさん@そうだ選挙にいこう:2010/08/04(水) 06:38:52
>>281
Korea-F15K-Manholeとか途中にも-Fとかあるの?
末尾の-Fと-Rだけか?

284 :複乳 :2010/08/04(水) 08:50:51
>>281
A列に対象を入力しておいて
B1=IF(OR(RIGHT(A1,2)="-F",RIGHT(A1,2)="-R"),LEFT(A1,LEN(A1)-2),A1)
下にフィルコピー

285 :名無しさん@そうだ選挙にいこう:2010/08/04(水) 09:14:38
>281 VBAだとこんな感じ
開始行位置と終了行位置はシートのどこか適当なところに設定するようにすればソースをいじらずに済みます

Sub okikae()
 s = 1  '開始行位置
 e = 5  '終了行位置
  For i = s To e
   a = Cells(i, 7).Value
   If (a Like "*-F") Or (a Like "*-R") Then
    Cells(i, 7).Value = Left(a, (Len(a) - 2))
    cnt = cnt + 1
   End If
 Next i
 MsgBox ("置き換え " & cnt & " 件")
End Sub

286 :名無しさん@そうだ選挙にいこう:2010/08/04(水) 09:23:33
"0-*"を"0"に置換

287 :複乳:2010/08/04(水) 09:48:14
>>282 A100-F-A のように途中に"-F"か"-R"があるとダメ
>>286 A101-F と数字の最後が0以外、またA100-A と最後のアルファベットがFR以外でもダメ

288 :名無しさん@そうだ選挙にいこう:2010/08/04(水) 10:20:41
ダメダメじゃん。

289 :名無しさん@そうだ選挙にいこう:2010/08/04(水) 13:21:01
複乳の指摘も駄目だしな


290 :名無しさん@そうだ選挙にいこう:2010/08/04(水) 17:49:32
エクセルって正規表現で置換できなかったっけ?

291 :名無しさん@そうだ選挙にいこう:2010/08/04(水) 19:35:02
よろしくお願いします。
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】そこそこ
【4 VBAでの回答の可否】 OK
【5 検索キーワード     】 配列 min関数 match関数

A列 ・・・ Q列   R列
100602 23000    100
100602 35400    154
100602 102000 443
100634 46500 100
100634 71000 153
100794 489000 100
100794 490000 100
100794 502000 103

きっとずれてますがすみません。

こんな風にA列に同じ数字の行(1行〜10行くらい)がある、
A列の同じ検索値のQ列の最小値を100としてR列に比率を出したいです。
35400/23000=1.5391...ですが、小数点下3桁を四捨五入した100倍の整数にします。
ちなみに4万行近いデータがあります。配列や関数を使ってなんとか出来ないでしょうか。


292 :名無しさん@そうだ選挙にいこう:2010/08/04(水) 20:11:43
>>291
R列に
=ROUND((Q2/MIN(IF(($A$2:$A$10)=A2,$Q$2:$Q$10,10^10)))*100,0)
といれて、CTRL+SHIFT+ENTERを押して確定(式の前後に{}がつく)

けど、4万行だときついかな?どうでしょうかね?
マクロとかの方が後腐れなくできそう

293 :名無しさん@そうだ選挙にいこう:2010/08/04(水) 20:12:54
追記
上記はR2に入れる式で、範囲は2行目から10行目にしているから、そこは変えて。

294 :名無しさん@そうだ選挙にいこう:2010/08/04(水) 20:16:25
>>292
わ、早速ありがとうございます!
そうですね、マクロでのコードも思案中でした。
ですがこれで5000行くらいずつ数式入れてがんばってみます。
ありがとうございました!

295 :名無しさん@そうだ選挙にいこう:2010/08/04(水) 20:18:49
>>292
しかも速攻うまくいきました!
本当に助かりました。ありがとうございました!!!

296 :単乳:2010/08/04(水) 22:45:16
てすと

297 :名無しさん@そうだ選挙にいこう:2010/08/04(水) 23:09:35
書き込もうとしたら移転が始まって出遅れた
マクロ半分、数式半分でお手軽にやってみた

Sub aaa()
  Application.ScreenUpdating = False
  Application.Calculation = xlManual
  r1 = 1
  r2 = 1
  While Cells(r1, 1) <> ""
    While Cells(r2, 1) = Cells(r1, 1)
      r2 = r2 + 1
    Wend
    For i = r1 To r2 - 1
      Cells(i, 18).Formula = "=ROUND(Q" & i & "/MIN(Q" & r1 & ":Q" & r2 - 1 & ")*100,0)"
    Next
    r1 = r2
  Wend
  Application.Calculation = xlAutomatic
  Application.ScreenUpdating = True
End Sub

298 :281:2010/08/05(木) 00:28:07
281です。
回答してくださった方々、ありがとうございました。
毎月やらなければならないので、285さんのマクロを拝借しました。
32011行のデータが5秒くらいで終わりました。
ホント感謝です。

299 :291:2010/08/05(木) 08:39:04
>>297さん
どうもありがとうございます!非常に参考になります。
本当にありがとうございました!m(_ _)m

300 :名無しさん@そうだ選挙にいこう:2010/08/05(木) 10:45:05
Excelで複雑なマクロを実行してると、なんと電気ブレーカーが落ちて
もちろんパソコンの電源は切れ、部屋中が一時的に停電になってしまいました。

これはExcelが原因?こんなことってある?

301 :名無しさん@そうだ選挙にいこう:2010/08/05(木) 11:25:38
>>300
可能性はゼロじゃないけどめっちゃ低い。0.0001%ぐらい
ほかの原因を探した方が賢明

302 :名無しさん@そうだ選挙にいこう:2010/08/05(木) 11:39:51
>>300
可能性がないわけじゃない。

>複雑なマクロを実行
マシンパワーを必要とするからCPUフル稼働 → ファン全開 → 消費電力増大

つうか、ブレーカーが落ちたところを見てみろ。メインが落ちたのなら契約電力を変える。
一部が落ちたのなら、コンセントを変えてみる。
エアコンが稼動しているだろうから、主にそれが原因だと思うぞ。

303 :数字君:2010/08/05(木) 16:25:27
板違いで引っ越してきました。
親切な人、教えて下さい。
エクセルでいろいろな数字が入っている一覧表があるのですが
その数字をすべて一括で変えるVBAの式を探しています。
例えば123なら234、3,569なら4,679という風に一つ一つの数字を
文字列とみて全ての数字に1を足したものに変更したいのです。
エクセルなら文字列にしていても後で一括して数字に変更できるので
どなたかこのような式が分かる方がいたら教えて下さい。
当方関数しかわからない為よろしくお願いします。


304 :数字君:2010/08/05(木) 18:03:20
すみません!自己解決できました。
どうしてもループになってしまい、うまくいかなかったのですが
数字をいったんアルファベットに置換したあと、そのアルファベットを
希望の数字に変換することで何とか思う通りの結果になりました。
スレ汚し、失礼しました。

305 :名無しさん@そうだ選挙にいこう:2010/08/05(木) 20:21:24
そんな手間のかかることしなくても、8から順に置換すればいいのでは

306 :名無しさん@そうだ選挙にいこう:2010/08/05(木) 23:12:51
ねぇねぇ、これ何で計算できちゃうの?

a = 1
b = "2"
c = a + b

MsgBox c '3と表示される


307 :名無しさん@そうだ選挙にいこう:2010/08/05(木) 23:54:25
値が数値だからじゃね

308 :名無しさん@そうだ選挙にいこう:2010/08/06(金) 01:31:43
5億字ぐらいのテキストファイルの分析をやります。
A列の言葉をA列の同じ言葉と置き換えて出現数のカウントを40万語ぐらい
連続してやる作業です。

2010 64bitをW7ー64bitをいれてSSDではしらせるとリニアに早くエクセルが
動くといううわさなのですが、これは本当でしょうか?
CPUはこの場合、2,4,6の場合、やはり、比例して早くなるのでしょうか?

当方現在、vista32 2007 で3Gメモリで、分割して、一日7時間ぐらいずつ
作業しているのですが、途方にくれています・・・

309 :名無しさん@そうだ選挙にいこう:2010/08/06(金) 03:54:38
>>308
確かに64bitExcelは速いけど、そういう作業はExcelに向いてないというか、能率が悪すぎる
単語数をカウントするだけなら専用のソフトがある
50Mバイト程度(日本語なら100Mバイトか)のテキストファイルなら何時間もかからんよ

310 :名無しさん@そうだ選挙にいこう:2010/08/06(金) 10:19:58
ありがとうございます。なんというソフトでしょうか。名前を教えてくださいませんでしょうか?

311 :名無しさん@そうだ選挙にいこう:2010/08/06(金) 11:06:45
>>310

気軽に「こんなソフトありませんか?」 Part.128
http://hibari.2ch.net/test/read.cgi/software/1280183815/

312 :名無しさん@そうだ選挙にいこう:2010/08/06(金) 19:59:55
vectorとか窓の杜に有りそうだね。

313 :名無しさん@そうだ選挙にいこう:2010/08/07(土) 09:34:52
【1 OSの種類         .】 WindowsVista sp1 
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可・否 
【5 検索キーワード     】 グラフ、ビスタ 

グラフを作ると画面が停止してファイルが落ちたり、
動作が遅いのは、ビスタだからなのでしょうか?
同じグラフを、他のOSで使うと、サクサクと動きますが、
ビスタで使う時、動かなくて困っています。
タスクマネージャーで確認した所、
グラフを開いた時のCPU負荷率54%、メモリ使用率75%です。
どうにか軽減できないでしょうか?
CPUは2.97G、メモリは4Gのスペックです。


314 :名無しさん@そうだ選挙にいこう:2010/08/07(土) 15:30:37
1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 オートフィルタ

質問:

以下のような行があって、×の行だけ抜き取りたくて、オートフィルタを使いました。

×


×

上記からオートフィルタで×だけを抽出。
すると
×
×
のように表示されます。
で、この×の二行をドラッグ&ドロップでまとめて選択して、CTRL+Xして 別のシートに貼り付けました。
こうすれば、×の行だけ消えてると思ったわけです。ところが、なぜか●の行も一緒に別のシートに移動されてました。

どうもドラッグ&ドロップで選択すると、●の行も一緒に選んでしまっているみたいで、それでうまくいかなかったようです。
しかし、いちいち×の行だけ選んでいくのは大変です。

×の行だけを別のところに移動させるうまい方法はないものでしょうか?

315 :名無しさん@そうだ選挙にいこう:2010/08/07(土) 16:07:16
>>314
A列とかB列みたいに列じゃなくて、
A2〜A200みたいにセルを選択したらどう?

316 :314:2010/08/07(土) 17:32:11
>>315
失礼しました。
すこし説明の手間を省くために ●と×とだけ書いたのが間違いでした。実際には、●の横には色々データがあり、
●を含む行すべて、×を含む行すべて、でより分けたいのです。

そういう方法ありますでしょうか。

317 :名無しさん@そうだ選挙にいこう:2010/08/07(土) 17:44:47
>>314
315さんのようにセル選択でいいんじゃね?
A2〜C200って感じで

フィルタかけて、行範囲選択→コピー
→形式を選択して貼り付け→空白セルを無視するにチェック→OK
なんてやるより


318 :名無しさん@そうだ選挙にいこう:2010/08/07(土) 17:53:36
>>314
よく読んでなかった
コピーじゃ駄目なの?どうしても切り取り?


319 :名無しさん@そうだ選挙にいこう:2010/08/07(土) 17:55:15
>>314

やりようは色々あるよ。簡単な方法だけどオレだったらこうする。

ページごと複製してから参照行で×が上に●は下に集まるようにソート掛ける。
後は●の部分のいらないデータを丸ごと削除する。


320 :314:2010/08/07(土) 18:07:14
皆様どうもありがとうございます。

>>318
あ、コピーなら、フィルタリングかけか行だけコピーできるんですね。
他にも試してみると、消去もできますね。

しかし、なぜ、
コピー(CTRL X)→貼りつけ
だけはできないのだろう・・・。全くよく分からない仕様ですね。


>>319
そのやり方は確かにあるのですが、ちょっと面倒なのでオートフィルタを使おうと思いました。
でももうそのやりかたでもいいですね。


321 :名無しさん@そうだ選挙にいこう:2010/08/07(土) 18:14:16
>314
ジャンプ機能はだめなの?

範囲選択-「編集」-「ジャンプ」-「セル選択」-「可視セル」にチェック
そのままコピーか切り取りでもしたら見えてる部分だけコピペできる。

やりたいことが違ってたらすまん

322 :名無しさん@そうだ選挙にいこう:2010/08/07(土) 18:53:43
>303
アク菌で書けなかったんで、亀ながら
=SUBSTITUTE(A1,"9","8")+REPT("1",LEN(A1))

323 :名無しさん@そうだ選挙にいこう:2010/08/07(土) 20:03:25
>314 のやり方はいつも >321 の方法でやってる。


324 :名無しさん@そうだ選挙にいこう:2010/08/07(土) 20:17:55
>>306
暗黙の型変換。

325 :名無しさん@そうだ選挙にいこう:2010/08/07(土) 21:22:50
excelファイルは「最後にファイルを開いた日時」が表示されますが、
どのパソコンから開いて操作したかもわかるようになってますか?
(複数のPCで共有されているファイルの場合)

326 :名無しさん@そうだ選挙にいこう:2010/08/07(土) 21:43:35
>>314
>>321の可視セル選択のショートカットは Alt + ; (セミコロン)ね

327 :名無しさん@そうだ選挙にいこう:2010/08/08(日) 11:29:38
>>325
誰が最後に保存したかはプロパティを見ればわかるけど

328 :名無しさん@そうだ選挙にいこう:2010/08/08(日) 13:08:07
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 EXCEL リターン 計算 マクロ


 質問: 数字を入れても自動的に計算をしてくれません。
     計算式のあるセルをいちいちクリックしてリターンを押せば答えが出てきますが、面倒でしょうがありません。
     何かの設定なんだとは思うのですが、わかりません。
     初心者で申し訳ありませんが、どなたかご教授ください。



329 :名無しさん@そうだ選挙にいこう:2010/08/08(日) 13:09:39
>>328
ツール→オプション→計算方法→自動にチェック

330 :名無しさん@そうだ選挙にいこう:2010/08/08(日) 13:10:04
>>328
ツール→オプション で計算方法タブ(だっけ?)の計算方法が「手動」になっているのを「自動」にする

331 :328:2010/08/08(日) 13:43:02
329さん.330さん
ご教授ありがとうございました。


332 :名無しさん@そうだ選挙にいこう:2010/08/08(日) 16:30:39
【1 OSの種類         .】 WindowsVista
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 日付 曜日 weekday 

http://viploader.net/ippan/src/vlippan133200.jpg

日付から土日判定をしたかったのですが、なぜか
2011年6月26日以降、weekday関数が7しか吐かなくなってしまいました。
何ででしょうかニート予言でしょうか

ニートにはなりたくないので解決方法わかる方いましたらお願いします。

333 :名無しさん@そうだ選挙にいこう:2010/08/08(日) 16:42:00
=WEEKDAY(A516)?
A328じゃなくて?


334 :名無しさん@そうだ選挙にいこう:2010/08/08(日) 16:47:19
>>333
ありがとうございます
お恥ずかしい・・・初歩的なミスでした・・・

335 :名無しさん@そうだ選挙にいこう:2010/08/09(月) 09:09:15
【1 OSの種類       】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか   】 はい
【4 VBAでの回答の可否】 可

人から Excel2000 で作って欲しいものがあると言われて
PCを預かってExcel2000のVBAで開発を行っていたのですが、
EXCELを何度も開いたり閉じたりしていると何回かに1回、
(100回に一回くらいかな?)
なぜか「OUTLOOK EXPRESSのフォルダを圧縮することがでいます。圧縮を行ないますか?」
というようなことを聞いています。
通常のOUTLOOK EXPRESSで出る表示と同じ様なものです。
それでOKするとメールの圧縮が始まります。
EXCELでOUTLOOK EXPRESSデータの圧縮を行っている様な表示がでます。
私はOUTLOOK EXPRESS自体は一度も開いたりしていません。
こんなことってあるんですかね?
それとも何か特殊なプログラムがこのPCに入っているのでしょうか。


336 :名無しさん@そうだ選挙にいこう:2010/08/09(月) 15:01:23
諸兄らの知恵を拝借したく質問
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel200
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】

座席表です。
シート2のA1に「教卓」 横のB1に「教師」とあるとする。
で、シート1の座席表の教卓のスペースに「教師」と自動で入力したいのです。
シート2は任意に変更され、ある月は「教師」が「教生」と記入したら
シート1の教卓は「教生」と変更されている。
つまり、ある特定文字列を指定してその横のセルの文字列を表示したいのですが、
なんとかいい手はないでしょうか?

オートフィルタで一個一個探してコピペという手は思いついたのですが、
人数が多くナンセンスっぽいので お願いします。



この文字列の横B1のシート1のA1に自動で文字列をいれたい。



337 :336:2010/08/09(月) 15:02:40
最後の行は無視してください。
消しわすれです。
連投申し訳ないです。

338 :名無しさん@そうだ選挙にいこう:2010/08/09(月) 15:25:55
残念ですがそのバージョンではお答えしかねます。

339 :336:2010/08/09(月) 15:30:27
すみません。脱字にきづきませんでした。
【2 Excelのバージョン   】 Excel2003
で、再度 お願いいたします。


340 :名無しさん@そうだ選挙にいこう:2010/08/09(月) 16:31:46
>>336
シート1の教卓のスペースのセルに式「=Sheet2!B1」と書くのじゃだめですか?
シート1の「教卓」自体が他に移動したり、別のものに変わるんですかね?
変わるのならVLOOKUP関数でどうかと・・・


341 :336:2010/08/09(月) 16:57:16
340さんありがとうございます。
ただ、夏期講習とかで参照先のシート2がへんこうがあるのです。
シート2のAには学籍番号がはいっています。
シート1はレイアウトも含め変更はありません。


342 :名無しさん@そうだ選挙にいこう:2010/08/09(月) 17:44:29
>>341

欲しい座席表が例えば
シート1
---------------------
    教師

麻生 福田  安倍  森

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

シート2は
---------------------
学籍番号
000 教師
001麻生
002福田
003安倍
004森
----------------------




343 :名無しさん@そうだ選挙にいこう:2010/08/09(月) 17:45:34
>>342の続き
としたいなら
シート1に式で
----------------------------------------------------
セルD5に「=Sheet2!B1」

セルA1        セルA2      セルA3     セルA4
「=Sheet2!B2」  「=Sheet2!B3」 「=Sheet2!B4」 「=Sheet2!B5」
---------------------------------------------------
としておけば、
シート2の学籍番号と名前が塗り変わればシート1の表示も変わりますが、
こんなんじゃ駄目なんですかね?




344 :名無しさん@そうだ選挙にいこう:2010/08/09(月) 20:44:41
【1 OSの種類         .】 WindowsVista 
【2 Excelのバージョン   】 Excel2007 
【3 VBAが使えるか    .】 いいえ 
【4 VBAでの回答の可否】 否  
【5 検索キーワード     】 

エクセルで作業をしていると、メモリ不足になり表示出来ませんというエラーが出たり、
保存も出来なくなり、せっかく作ったファイルが全部やり直しという事が、しばしばあります。
どうしたらいいでしょうか?

345 :名無しさん@そうだ選挙にいこう:2010/08/09(月) 20:54:38
>>344

その場合、Excelより先にPC本体のデータが無いと判断付かないんだが。

【6 PCのメーカ/型番  】
【7 搭載メモリ量     .】

この追加情報を出して欲しい。


346 :名無しさん@そうだ選挙にいこう:2010/08/09(月) 21:15:54
すみません、型番は今わかりません。

【6 PCのメーカ/型番  】 DELL
【7 搭載メモリ量     .】 4GB


347 :名無しさん@そうだ選挙にいこう:2010/08/09(月) 21:25:08
小まめに保存が鉄則だけど、それにしても酷い状態だなあ。
バックグラウンドで動いているソフトを一時的に終了させればイイのでは?壁紙も無しにして。
デスクトップに保存してる物はマイドキュメントとかに移動。
タスクバーに無駄なアイコンを表示させない。

4G?何かの間違いだろ?

348 :名無しさん@そうだ選挙にいこう:2010/08/09(月) 21:33:08
>>344
ちょっと検索しただけでも色んな原因がありそうだ
エクセル2007 メモリ不足 でググッてみ



349 :名無しさん@そうだ選挙にいこう:2010/08/09(月) 21:34:56
重いので10分ぐらい作業しても、ほとんど仕事が進みません。
それでやっと保存しようとするとデータが飛ぶ状態です。
目立つソフトは停止させてますが、状態はあまり変わってません。
IMEを変更した事によって、若干軽くなりましたが、
それでも、重くて、何度かエラーが出て保存出来ない状態になりました。
メモリは4Gです。


350 :名無しさん@そうだ選挙にいこう:2010/08/09(月) 21:36:47
>>348
検索した結果、いらないソフトを止めてクラシックスタイルにする。
アンチウィルスが邪魔してるので、IMEを変更する等が出て、
少しだけ軽くなりましたが、今日も仕事中に保存出来ない状態になり
何度も作業やり直しになりました。


351 :名無しさん@そうだ選挙にいこう:2010/08/09(月) 21:43:39
>>344
ものすごく大きなファイルなのか
外部参照をしたまま保存しているのか

352 :名無しさん@そうだ選挙にいこう:2010/08/09(月) 21:45:31
外部参照はしていません、ファイルは小さくても同じ状態になります。
もちろん大きな物も使っています、
対策としてデータを全部消して、書式を作り、
最後にデータを貼り付ける等して、どうにか作業していますが、
データがない状態でも、メモリ不足で落ちます。

353 :名無しさん@そうだ選挙にいこう:2010/08/09(月) 22:17:30
オプションの自動保存を1分後とにしておいたら良いかな?
逆に負荷がかかって開けなくなるだろうか?w

計算方法の反復計算にチェックが入ってたりするのでは?

354 :名無しさん@そうだ選挙にいこう:2010/08/09(月) 22:23:14
アクロバットとかウイルスソフト関係もネット上に出てるね。> 2007メモリー不足
何かとExcelが戦っている可能性が高いなあ

355 :名無しさん@そうだ選挙にいこう:2010/08/09(月) 22:27:50
Glary Utilities
とかじゃね?

356 :名無しさん@そうだ選挙にいこう:2010/08/09(月) 22:33:25
計算関連は全てチェックを外してます。
自動保存が一分だと、処理待ち時間中に保存が入って
エラーで落ちると思います。
何かを表示させると、長い時は5分から10分ぐらい待ちます。
ウィルスソフトはマカフィーが入ってますが、
インターネットには繋がっていませんので、
設定でオフ出来る部分はオフにしています。

357 :名無しさん@そうだ選挙にいこう:2010/08/09(月) 23:34:19
>344,352,356
当該パソコンでは最初からそんな風(Excelがやたら重い)でしたか? あるときからそうなりましたか?
タスクマネージャを起動させているとCPU使用率がわかりますが、Excelもしくは他のプロセスで異常に
CPU使用率が高くなっているものはありませんか?
メモリ不足と表示される、ということなので、Excelもしくは他のプロセスのメモリ使用量を調べてみては
いかがですか?

358 :名無しさん@そうだ選挙にいこう:2010/08/10(火) 01:36:13
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 少々
【4 VBAでの回答の可否】 可
【5 検索キーワード     】

会社のソフトで、画面をドラッグし、テキストとして
貼り付けたデータを各項目ごとに分けるには
どうすればいいでしょうか?

サンプル
ttp://uproda.2ch-library.com/279950bwo/lib279950.png
1〜13行は、テキストとして貼り付けたデータの一部です。
これを18〜28行のように、各項目ごとに分けたい。

359 :名無しさん@そうだ選挙にいこう:2010/08/10(火) 02:27:40
>>358

これだと、コピーして不要な部分を削って行くしか無いんじゃね?
スペースや特定記号で区切ったり文字数で抽出したり出来ないし。


360 :名無しさん@そうだ選挙にいこう:2010/08/10(火) 09:08:23
テーブルを3つ用意して
1:スペース3字分で区切って、セルに一つ一つ入れていく
2:セル一つのデータを見出しと内容に区切って新しい2列テーブルにいれていく
3:2列の配列を見出しのならべたい順序に書き出していく
となるのでは?
2と3は一つにできるが頭がこんがらがるだろう
1のときに :を含むのを除外するのかな

361 :名無しさん@そうだ選挙にいこう:2010/08/10(火) 09:51:14
>>358
A1:A13を範囲選択
データ→区切り位置→カンマやタブ・・にチェック
次へ→スペースにチェック→連続した・・にチェック→完了
んで参照するとか

エディタ等で整形とカンマ区切りのデータにした方がいいと思う



362 :名無しさん@そうだ選挙にいこう:2010/08/10(火) 13:05:27
MacとWinでのExcelの画像の互換性に関しての質問です。

Mac上のExcel2004で作った.xlsファイルにpng形式の画像を貼って
送ると、Win上のExcel2007で開くと画像が文字化け
(画像の大きさの領域は残っていて、その中央に文字化けしたファイル名)
して読めないようです。


jpgファイルだと問題がないようです。

質問:どの画像形式ならば互換性が保たれるのかが解説されている
サイトや表などがあればお教えください。

もしくは、何らかの方法で互換性を保つやり方があるのでしょうか?

363 :名無しさん@そうだ選挙にいこう:2010/08/10(火) 13:08:24
パソコン一般板に質問しましたが、このスレを見つけたのであらためてこちらで質問させていただきます。
マルチになってしまい申し訳ありません。
板が分からなかったのでここで質問させていただきます。
もしスレ違いなら誘導していただければ幸いです。

キングソフトのエクセルを使って住所録を作ったんですが、最近、office2007を導入しました。
つきましてはキングソフトで作ったデータをエクセル2003や2007に変換するのはどうすればいいでしょうか?

コピーして張り付けても機械的なコピーで、セル幅などが調整されません。
同じような状態で使用できるようにコピーするにはどうすればいいでしょうか?
宜しくお願いします。

364 :名無しさん@そうだ選挙にいこう:2010/08/10(火) 14:16:52
>>363
キングソフトのエクセルってこれの事?
http://www.kingsoft.jp/office/product/spreadsheets.html
使った事ないから的外れかもしれないけど

ここ読むと
>保存形式は、.xls(エクセル)の拡張子を選択できます。
ってなってるけどこれじゃだめなのかな

365 :336:2010/08/10(火) 15:17:08
>340
席順がかわるときはVLOOKUP関数ですか。なるほど。講習おわって座席レイアウト変わる前に試行錯誤します
>341
ありがとうございます。とりあえずはこれでいけそうです。
助かりました。


366 :名無しさん@そうだ選挙にいこう:2010/08/10(火) 15:46:26
氏名と生年月日のリストから毎年成人式の対象者を選び出して
最終的には別のシートに一覧にしたいのですがどのようにしたら良いでしょうか?

特定の期間で対象者を選び○×をつけるくらいはできるのですが
毎年自動で変えたり対象者を別のシートに抜き出す方法がわかりません

367 :名無しさん@そうだ選挙にいこう:2010/08/10(火) 16:04:26
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【5 検索キーワード     】 EXCEL ツールバー 重い

前日からEXCELの左上にある
ファイル(F)をクリックしても30秒位フリーズが続き反応が無く
作業が効率的に出来ない状態になってしまいました

ファイル(F)の下を表示するときだけなってしまう症状なのですが
何か対処方法は無いでしょうか?



368 :名無しさん@そうだ選挙にいこう:2010/08/10(火) 18:08:45
>>366
列に余裕があるなら生年月日から年齢を出して、

=datedif(引数1,引数2,"Y")
引数1と引数2の差を"Y"(年数)で表示
4月1日の人は早生まれになるんだっけ?
引数1:生年月日
引数2:2011/4/1

あとはフィルタで20歳の人を抽出して、>>321,326の方法でコピーしたらどうでしょう?



369 :名無しさん@そうだ選挙にいこう:2010/08/11(水) 00:20:09
【1 OSの種類       】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか   】 はい
【4 VBAでの回答の可否】 可

フッダに特定のセルに手入力した日付を印刷したいのですが、
例えば下のコードでセルA1には平成22年11月1日と入力、表示されていますが
フッダに印刷されるのは「11/1/2010」になってしまいます。
これを書式指定で和暦表示とかできるのでしょうか?

Private Sub Workbook_BeforePrint(Cancel As Boolean)
 ActiveSheet.PageSetup.RightFooter = Range("A1").Value
End Sub
よろしくお願いします。

370 :名無しさん@そうだ選挙にいこう:2010/08/11(水) 01:52:30
>>369
ActiveSheet.PageSetup.RightFooter = Range("A1").text
では どうですか

371 :名無しさん@そうだ選挙にいこう:2010/08/11(水) 02:28:57
>>369
ActiveSheet.PageSetup.RightFooter = Format(Range("A1").Value, "ggge年m月d日")

372 :名無しさん@そうだ選挙にいこう:2010/08/11(水) 09:48:17
>>370
>>371
お二方の方法、両方共うまく行きました。
ありがとうございます。

373 :名無しさん@そうだ選挙にいこう:2010/08/11(水) 13:26:18
>>368
ありがとうございます
ちょっとがんばってみます

374 :名無しさん@そうだ選挙にいこう:2010/08/11(水) 15:18:31
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル 週単位 WEEKNUM

週単位の区切りで、商品数量データを入力し
指定日時点での在庫状況を表示させたいです
指定日・週区分をWEEKNUMで判別する方法を考えましたが
会社のPCではアドインが使用できませんでした

他に手段は無いものでしょうか?ご教示お願い致します
完成予想図(笑)を作ったので、私の稚拙な説明の足しにしてください

ttp://www.dotup.org/uploda/www.dotup.org1085038.jpg

375 :358:2010/08/11(水) 20:43:02
>>359 >>361
ご回答ありがとうございます。
地道に、セル内の文字の長さ - 文字が始まる位置 - 1 を繰り返すことにしました。

376 :名無しさん@そうだ選挙にいこう:2010/08/11(水) 22:23:39
オートコンプリートについて教えてください。

文字を入力してオートコンプリートの候補がでてきても、それを選択せずそのまま入力する方法がわかりません。

「だいたいあってる」と一回別のセルで入力して、そのあと、「だいたい」とだけ入力しようとしても「だいたいあってる」が
勝手に出てきて、エンターを押すと、その入力になってしまいます。
どうやっても「だいたい」と入力できません。

オートコンプリート自体を解除する方法は知っているのですが、オートコンプリート自体は一応便利なので
その機能自体を解除せず、「だいたい」とやるにはどうしたらいいのでしょうか。

377 :名無しさん@そうだ選挙にいこう:2010/08/12(木) 00:08:14
「あっている」が反転されているときにDELで消すぐらいでしょうか。

378 :名無しさん@そうだ選挙にいこう:2010/08/12(木) 07:46:51
>>376
面倒だけど、「だいたい」で入力してスペース一個入れてバックスペースで戻る

379 :名無しさん@そうだ選挙にいこう:2010/08/12(木) 13:35:31
>374
日付を縦に並べて作ってみたので、検討ください。
ttp://www.dotup.org/uploda/www.dotup.org1086655.png

WEEKNUMという関数を使わなくても、入力した日付と当年の第1月曜日の日付から第○週を計算できます。
日付を縦にしたのは、ウィンドウ枠固定を利用できるのと、計算式中のSUM関数の範囲を行番号で示すこと
ができるためです。

380 :名無しさん@そうだ選挙にいこう:2010/08/12(木) 14:47:01
【1 OSの種類         .】 Windows vista home 64bit
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可。全く分からないですが、それが必要なら頑張ってみます。
【5 検索キーワード     】 htm excel 変換 

お店の中古商品情報一覧の表がネット上にありまして
これをwebブラウザでなくエクセルでチェックできたらなあと思うのですが
これを可能にするにはどうすればよいのでしょうか?

目的のページはこちらになります→http://www.fujiya-avic.co.jp/d-style/u-hp.html

これをhtmで保存した後エクセルにD&Dし、テーブルで範囲を決めて
各枠の幅の決定まではできましたが、そのまま保存したのち再び開くと
枠の幅やテーブルが解除されてしまうみたいでした。

エクセルも初心者で分からないことばかりですが
これを機に勉強できたらなと思います。
どうかご教示のほどよろしくお願いします。

381 :名無しさん@そうだ選挙にいこう:2010/08/12(木) 16:20:28
>>380
保存する時にExcel形式(プルダウンリストの一番上)を選ぶ

382 :名無しさん@そうだ選挙にいこう:2010/08/12(木) 17:39:46
>>381
言葉足らずですいません。
web上のページの更新に連動するようにしたいのです。

383 :名無しさん@そうだ選挙にいこう:2010/08/12(木) 21:12:56
>>380
「データ」からWebクエリで、表の箇所だけ取り込める
10分おきに自動更新なども出来る

384 :名無しさん@そうだ選挙にいこう:2010/08/13(金) 00:37:57
>>383
ありがとうございます!こちらの方が簡単に取り込めますね、更新もできるみたいで凄く助かりました。

後は・・・この表をテーブルにできればよいのですが、取り込んだ全体の範囲をテーブルに指定すると
「選択範囲が、1つまたは複数の外部データ範囲と重複しています。選択範囲をテーブルに変換し、すべての外部接続を削除しますか?」
という注意書きが現れ、「はい」でテーブルを作成すると、データ>接続のプロパティーも操作不能になってしまい
おそらく更新が止まってしまうみたいでした。

テーブルを維持したまま、更新を有効にするにはどうすれば良いのでしょうか?

385 :名無しさん@そうだ選挙にいこう:2010/08/13(金) 02:16:38
【1 OSの種類         .】 Windows vista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可。
【5 検索キーワード     】

A1からA10000までそれぞれ文字列で4つの数字が並んでいます。中には空白もある
その中で1850〜2000の範囲に入る数値以外のデータがあれば
NGという入力チェックを作りたいのですが
VBAを駆使してもいいので
できれば別のシートで数値に変換してという方法以外でお願いします


386 :名無しさん@そうだ選挙にいこう:2010/08/13(金) 06:01:15
>>385
vbaを駆使する意味が分からない。

b列かなんかにIF文いれてチェックするってこと?

387 :名無しさん@そうだ選挙にいこう:2010/08/13(金) 10:30:57
>>357
最初から重い状態です。
前にも書きましたが、タスクマネージャーで確認した所、 
エクセル2007使用時のCPU負荷率54%、メモリ使用率75%です。 
WindowsVista sp1でCPUは2.97G、メモリは4Gのスペックです。 


388 :名無しさん@そうだ選挙にいこう:2010/08/13(金) 12:38:39
>>387

それは本当にExcelを新規で起動した時の状態?
マシンにもよるけど普通は負荷率2〜3%上昇、
メモリ使用率1%程度上昇位で収まるはずなんだが。

もし新規で起動してもそうなら、明らかにExcel本体がおかしい。
Officeを完全にアンインストールしてからインストールし直した方が良い。


389 :383:2010/08/13(金) 17:02:42
>>384
sheet1に、Webクエリでデータを取り出せたら、適当なnameを付けて保存する
Webクエリそのものはテーブルには出来ない。テーブルはネット上のデータを利用きないからだ。
だが同一ブック内のデータならテーブルぬすることが出来る。

そこで、sheet2で、今度は「データ」から外部データの取り込みへ進み、そのほかのデータソースへ入る
データ接続ウィザードへ進み、ODBC DSNを選択する
Excelファイルを指定し、自ファイルを選ぶ
後は勝手にテーブルにしてくれる。

考え方としては
Web上のデータ→(Webクエリ)→sheet1で一時的に蓄え→(ODBC)→sheet2でテーブル化
という流れ


390 :名無しさん@そうだ選挙にいこう:2010/08/13(金) 18:16:33
Sheet1にボタンを作り、Sheet2をイジったあとにセルの位置をA1にします。
以下のtest1はおkなのに、test2は何がダメなんでしょうか?

Sub test1()
 Sheets("Sheet2").Select
 Range("A1").Select
 Sheets("Sheet1").Select
End Sub

Sub test2()
 Worksheets("Sheet2").Range("A1").Select
End Sub


391 :名無しさん@そうだ選挙にいこう:2010/08/13(金) 19:32:27
>>390
そういうものなのです。

シートを選んだ後、セルを選択しないとダメ。
ちなみにブックをまたがるときは、ブックを選択→シートを選択→セル選択 と順を追わないとダメ

392 :名無しさん@そうだ選挙にいこう:2010/08/13(金) 19:35:43
【1 OSの種類       】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか   】 いいえ
【4 VBAでの回答の可否】 可

ウインドウ枠固定を設定して、固定した行の境目から下に
2つ目と3つ目のセルを結合した場合にその境目に見えない境界?が
残ってしまうのを排除したいのですがどのようにすればよいのでしょうか?

結合したセルに入力しにくくて仕方ないです。よろしくお願いします。

393 :380:2010/08/13(金) 21:00:15
>>389
ご丁寧な解説とアドバイスありがとうございます!
勉強になりました。そしてできました!
ブックを開く際に更新と設定をしておいて、後はWWWCなどで更新の有無をチェックする形で使ってみます!

ただ、パスで2バイト言語があると更新がダメみたいですね
おとなしくデスクトップで使おうと思います。
それを差し引いたとしても、念願のチェック方法が出来るので本当に嬉しいです。
どうもありがとうございました!

394 :390:2010/08/13(金) 22:58:23
>>391
d

395 :名無しさん@そうだ選挙にいこう:2010/08/14(土) 16:36:12
test

396 :名無しさん@そうだ選挙にいこう:2010/08/15(日) 18:03:37
【1 OSの種類         .】 Windows7 32ビット
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel フォントサイズ 反映されない など

文書を作って横書きから縦書きに変更しました。
それを印刷したいのですが、
どの程度の文字の大きさになるか、試しに最初の3列程度印刷すると普通に印刷されるのですが、
1ページ分(40列前後)くらいを指定して(全部で4ページくらいになります)印刷しようとすると
入力時に設定したフォントサイズで印刷されません。(1サイズくらい小さくなってしまいます。)
余白の大きさや列の幅を変えてみたりしましたがやはりダメでした。
うまく説明できておりませんが、よろしくお願いいたします。



397 :名無しさん@そうだ選挙にいこう:2010/08/15(日) 18:15:54
>>396
「次のページ数に合わせて印刷」を設定しているとか、
「改ページプレビュー」で改ページ位置を変えた、とか、したんじゃないかい?

398 :396:2010/08/15(日) 19:47:35
>>397
レスありがとうございます。
ページ数に合わせて印刷は設定しても自動にしても
やはり変わりませんでした。
改ページも変えてないのですが、できませんでした。

399 :名無しさん@そうだ選挙にいこう:2010/08/15(日) 20:10:12
>396
用紙サイズ、本来のフォントサイズがわかりませんが、1頁に40列っていったらかなり小さい文字ですか?
Excelなのに「横書き→縦書き」って、ひょっとして横長→縦長?

1サイズくらい小さくなるっていうのが具体的に10ポ>9ポくらいなのかどうか、わかりませんが
とりあえず、Excelの問題なのかプリンタドライバの問題なのか切り分けるために、こういうのはどうでしょう。

FinePrintという仮想ドライバがVectorなどに紹介されています。(最新はFinePrint6、自分はFinePrint5使用)
ttp://www.vector.co.jp/soft/winnt/writing/se322363.html
有料(シェアウェア)ですが、お試しもできます。
出力を画像ファイル(dpiも各種選択可能)にすることもできるので、紙をムダにせずあれこれ試すことができます。


400 :名無しさん@そうだ選挙にいこう:2010/08/15(日) 22:37:08
2列のデータを2行にしたいんですが、B1セルが書き換わってしまいうまくいきません

これを、
   A    B
1 名前  大場佳奈子
2 住所  北海道札幌市
3 年齢  18歳
4 性別  女
5 趣味  2ちゃんねる三昧

これにしたい・・・
   A       B         C    D    E   
1 名前      住所       年齢  性別  趣味
2 大場佳奈子  北海道札幌市 18歳   女   2ちゃんねる三昧
3   
4   
5   

Sub 二列を2行にする()
For i = 1 To 30
Do While Cells(i, 1) <> ""
Cells(1, i) = Cells(i, 1)
Cells(2, i) = Cells(i, 2)
Next
Rows("3:30").Select
Selection.ClearContents
Columns("A:AD").EntireColumn.AutoFit
End Sub

ついでに、2行を2列(上の逆)も教えてください

401 :札幌市民:2010/08/15(日) 22:45:08
「大馬鹿な子」が2ちゃんねる三昧なのは結構だけど
なぜ札幌?
札幌をバカにするな

402 :名無しさん@そうだ選挙にいこう:2010/08/15(日) 23:07:55
それ行列を入れ替えて貼り付ければ済むだけなんじゃ・・・

403 :396:2010/08/15(日) 23:30:58
>>399
ありがとうございます。お礼遅くなりすみません。
フォントは18と20と22だったかが混ざってました。
A4用紙を横に使って縦書きのものです。
今回はちょっと時間的に間に合わないので、
次のときにはささっとできるように、教えて頂いたソフトなども
勉強したいと思います。
ありがとうございました。

404 :名無しさん@そうだ選挙にいこう:2010/08/15(日) 23:57:08
【1 OSの種類         .】 Windowsビスタ
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】

マクロについて教えてください。
先週からマクロを勉強しております。
エクセルでは、行方向への並べ替えが一発で出来ませんが
マクロではそのようなことはないのでしょうか?
また、セルに数字を打ち込んで、マクロを発動させたときに
特定の数字は特定のセルに表示(移動)させるなんてことは可能なのでしょうか?
どなたか、回答お願いいたします。

405 :名無しさん@そうだ選挙にいこう:2010/08/16(月) 10:56:39
>404
Excelの元々の列数と行数の上限が256列×65536行だったことから
横方向に並ぶデータの並べ替えは考慮されていなかったものと思います。

どうしても横方向のソートがしたいってことであれば、
1 ソート範囲をコピー
2 別のシートに貼り付けるときに「行と列を入れ替え」
3 上記のデータをソート
4 ソート後のデータをコピー
5 元のシートに「行と列を入れ替え」て貼り付け
こんなところでしょうか。実際に試した訳ではありません。
マクロの自動記録の機能を使えば、割と簡単に試すことができます。
VBAで直接並べ替えを行おうとするとややこしいです。

>特定の数字は特定のセルに表示(移動)させるなんてことは可能なのでしょうか?
VBAで条件判断できるので可能です。

406 :名無しさん@そうだ選挙にいこう:2010/08/16(月) 12:34:51
excelって列方向の並べ替えできるよ。
もちろんマクロ記録もできる。

407 :名無しさん@そうだ選挙にいこう:2010/08/16(月) 22:17:13
あのほりえもんも使っている口コミ広告の決定版。
今一番熱い、次世代SEO対策です。
広告効果が非常に高いのでまだお試しされてない企業様は是非使ってみて下さい。
その広告効果に驚くこと間違いなしです!
http://www.analys.jp/pages/sponcerlpo/

408 :名無しさん@そうだ選挙にいこう:2010/08/16(月) 23:04:03
>>400
こんなんどう?

Sub 行列入替()
Dim Target As Range
Dim Data As Variant
Dim x As Long
Dim y As Long

Set Target = Range("A1").CurrentRegion
Data = Target.Value
Target.ClearContents

For y = 1 To UBound(Data, 1)
 For x = 1 To UBound(Data, 2)
   Cells(x, y).Value = Data(y, x)
 Next x
 Columns(y).AutoFit
Next y
End Sub

409 :名無しさん@そうだ選挙にいこう:2010/08/16(月) 23:54:03
>>405-406
レスさんきゅー
405の操作でマクロ組んで、行方向ソートは簡単に出来るようになりました
その並び替えた数字を特定のセルに表示させるにはVBAの知識が必要ですか?

410 :名無しさん@そうだ選挙にいこう:2010/08/17(火) 00:00:20
複乳さんはどうやって生計を立てているのでしょうか?

411 :名無しさん@そうだ選挙にいこう:2010/08/17(火) 06:32:11
>>410

【質問不可】Excel総合相談所スレの雑談・議論スレ2
http://pc11.2ch.net/test/read.cgi/bsoft/1151651536/

412 :名無しさん@そうだ選挙にいこう:2010/08/17(火) 20:43:37
すみません質問です。オートシェイプの図形の中に文字を入力するのでは
なく、関数を使いたいのですが可能なんでしょうか?




413 :名無しさん@そうだ選挙にいこう:2010/08/17(火) 21:25:25
>>412
オートシェイプを選んでいる状態で(名前ボックスにテキストボックス1とか出ている状態)、
数式バーに関数(=A1とか)を入れる

414 :名無しさん@そうだ選挙にいこう:2010/08/18(水) 00:02:40
ツールバーに=や+のように”&”を追加したいのですが、どのようにすればいいのでしょうか?

415 :374:2010/08/18(水) 19:09:39
>>379
回答ありがとうございます!

残念ながらお盆休み中にファイルは流れてしまったようですが
>第一月曜日から計算
この方法は気づきませんでした…この計算式がアップされていたのでしょうか?
もし良ろしければ再upおねがいしたいです

416 :379:2010/08/18(水) 20:10:46
>374,415 再アップしました。
ttp://www.dotup.org/uploda/www.dotup.org1098222.png
レスが付くまで画像ファイルをとっといてよかった。もう消してもいいかな?

417 :名無しさん@そうだ選挙にいこう:2010/08/19(木) 14:39:29
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 まだちょっと・・・?
【4 VBAでの回答の可否】 必須
【5 検索キーワード     】 Excel テキスト 開く 保存 名前 選択 vba

簡潔に言います

「オープンダイアログでその都度テキストファイルを選択し(例:Text.txtを開くとする)
 その中身を区切り文字とかナシでB1セルに貼り付けて
 C列すべて(実際にはC1:C2000くらいでもいいかも)を
 新しいテキストファイル(名前はText2.txtのように2を付ける)として保存」

ここまでズバッとやってのけるマクロを作ってください
なお列がバラバラなのはすでにいろいろと計算式が入っているからです

418 :名無しさん@そうだ選挙にいこう:2010/08/19(木) 22:13:22
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel?
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル バージョン 相性
windows7を購入したのですが、7と相性のいいバージョンとかありますか?
kingsoftエクセルとかもありますが、どうなんでしょうか

419 :複乳:2010/08/20(金) 07:49:52
>>410 仕事中に2chだよ
>>417 ちょっとでも使えるならマクロの記録や検索してできるとこまでやってみたら
>>418 kingsoftofficeやOooはこの板に専用のスレが有るからそっちのほうがいいかも
個人的にはもう2010でいいと思う。リボンは使い辛いが、頑張って慣れよう

420 :374:2010/08/20(金) 08:42:07
>>416
再うpありがとうございます!
消してもらって結構です^^

まず画像の通り作ってみる事にします
回答頂きありがとうございました

421 :名無しさん@そうだ選挙にいこう:2010/08/20(金) 09:42:48
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【5 検索キーワード     】 Excel アプリケーションの自動修復 国語辞典 辞書
アプリケーションの自動修復をしたら国語辞典がリサーチのオプションから消えました…
調べても国語辞典を復活させる方法がわかりません。事例もありません。
助けてください。

422 :複乳:2010/08/20(金) 10:26:07
>>421
そのアプリを作った会社に聞いてみるのがいいと思う
それが分からなければ、メーカー製PCに入ってたなら、アプリケーションディスクか何かからインストールできると思う
PCの型番を教えてくれれば教えられるかもしれないが、メーカーに聞いたほうが早いと思う

423 :名無しさん@そうだ選挙にいこう:2010/08/20(金) 10:53:46
>>422
返答ありがとうございました。
Microsoftofficeのwordのヘルプに入っていたものなのですが…
もう少し調べて駄目だったらそうします。

424 :複乳:2010/08/20(金) 11:01:19
>>423
ありゃ純正だったか
http://office.microsoft.com/ja-jp/excel-help/HP001037786.aspx
注意 [検索する文字列] の一覧に [国語辞典: 日本語] が表示されていない場合は、[リサーチ] 作業ウィンドウの [リサーチのオプション] をクリックし、[国語辞典: 日本語] のチェック ボックスをオンにします。
これか?
これでなかったらエクセルの再インストール、ダメだったらOSの再インストールかなぁ

425 :名無しさん@そうだ選挙にいこう:2010/08/20(金) 11:14:31
>>424
ありがとうございました。
それじゃないんです…
やはり再インストールしかなさそうですねww


426 :名無しさん@そうだ選挙にいこう:2010/08/20(金) 19:35:02
>>425
リサーチ 作業ウィンドウを表示
リサーチのオプションをクリック
サービスの追加ボタンをクリックし
http://office.microsoft.com/Research/query.asmx
を入力


427 :名無しさん@そうだ選挙にいこう:2010/08/20(金) 20:57:57
【1 OSの種類         .】 WindowsXP PRO
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 末尾の文字列を消去

よろしくお願いします

A1に「/馬/牛/豚/鶏/」という文字列が入っています、
もし、先頭か末尾(もしくは両方)に/があったらそれを消したいのですが
関数ではどの様にしたらよいでしょうか?


428 :427:2010/08/20(金) 21:19:12
失礼しました
先頭に"/"が出ることはありませんでした。

429 :名無しさん@そうだ選挙にいこう:2010/08/20(金) 22:35:33
>>428
ベタで
=IF(RIGHT(A1,1)="/",LEFT(A1,LEN(A1)-1),A1)


430 :名無しさん@そうだ選挙にいこう:2010/08/21(土) 10:06:17
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003/2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル オートフィルタ 反転 抽出以外 絞込以外 削除

すいません。エクセルでオートフィルタを使って抽出したレコードを別の単一なシートにするという作業をしていますが
現在、[オートフィルタ] → 絞り込まれた表を別のシートにコピー → 繰り返し
といった感じで作業をしているのですが、なんせ一つの表から100近いレコードを取り出すので
もう少しスマートな方法が無いかと思っています。

具体的にはオートフィルタで絞込をかけた後に、絞込結果を反転できれば、後はそれを削除するだけなので
少し楽になります。
他にも、絞込結果を一発で反転したい事が良くあるのですが、これは可能でしょうか?

オートフィルタの[オプション]やフィルタオプションを使えば出来るのですが
ちょっとした入力ミスで絞込結果が変わってしまうのを避けたいので、手入力はなるべく避けたいと言ったところです。

431 :名無しさん@そうだ選挙にいこう:2010/08/21(土) 11:17:20
>>430
フィルタオプション使ったら?
http://www.eurus.dti.ne.jp/~yoneyama/Excel/filter3.htm

432 :名無しさん@そうだ選挙にいこう:2010/08/21(土) 11:18:22
ああ、ごめん、フィルタオプションは嫌なのね。
だったら、vbaか物によってはピボットとか

433 :名無しさん@そうだ選挙にいこう:2010/08/21(土) 14:43:36
>>430
作業的に常に同じ作業ならばマクロ登録してしまおう。

434 :名無しさん@そうだ選挙にいこう:2010/08/21(土) 22:06:38
【1 OSの種類         .】 Windows7 64ビット
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel 2010 補完してプロット 飛び飛びの値 など

空白セルを含む表から折れ線グラフを作るときに、データの入っていない部分が途ぎれない
ようにしたいのですが、どうしたらよいでしょう?
2010以前では下記URLのように「ツール」メニューの「オプション」から
「補完してプロットをする」を選べたのですが、、、このメニュー、2010だとどこにいったのやら・・・。
すいませんが、よろしくお願いします。

ttp://pc.nikkeibp.co.jp/article/NPC/20060213/229106/


435 :名無しさん@そうだ選挙にいこう:2010/08/21(土) 22:26:20
>>434
データ(ソース)の選択画面で左下の「非表示および空白のセル」をクリックすると目的のものが

436 :名無しさん@そうだ選挙にいこう:2010/08/21(土) 22:32:27
>>435

おおっ! できました! ありがとうございます!!


437 :名無しさん@そうだ選挙にいこう:2010/08/23(月) 02:28:19
1.本日の日付 例 8月20日
2.予定日   例 8月25日 

残りが5日というようにセルに反映させることは可能でしょうか
2−1が5日と出るようにしたいのです。 

438 :名無しさん@そうだ選挙にいこう:2010/08/23(月) 09:29:45
>>437
DATEDIF関数を使う
=DATEDIF(A1,A2,"d")
2007以前だと最初から使えないから、アドインをインストール↓してね
http://plaza.rakuten.co.jp/pasodairy/diary/200501290000/

439 :名無しさん@そうだ選挙にいこう:2010/08/23(月) 10:21:14
>>437
OS:xp,Excel2007の環境では、
1.本日の日付 例 8月20日 →セル:A1
2.予定日   例 8月25日 →セル:A2
3.残り日数         →セル:A3

とした場合に、
A3 =A2-A1
で日数の”5”が出ます。あとA3セルの書式設定を変更、
右クリック→セルの書式設定→表示形式→ユーザー設定→d"日"
としていくと”5日”と表示できるようになります。

もしならない場合はA1セル、A2セルの日付の入力方法を8/20,8/25と入力するようにして、
書式設定をm"月"d"日"へとすれば良いかと思います。

440 :名無しさん@そうだ選挙にいこう:2010/08/23(月) 13:13:59
日にちだけだったら、datedifを使うまでもないね。
月とか年とかを入れたいなら、関数を使ったほうがいいけど

441 :名無しさん@そうだ選挙にいこう:2010/08/23(月) 21:02:55
初歩的な質問なのですが、どなたか教えてください。
セルにドロップダウンリストを入れたいのですが、
どのようにしたらよいでしょうか?

442 :名無しさん@そうだ選挙にいこう:2010/08/23(月) 22:23:21
>>441
データの入力規則で

2003までならデータ→入力規則
2007以降はデータタブの中にある。

リストを選んで設定。詳しくは
http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis.html

443 :名無しさん@そうだ選挙にいこう:2010/08/23(月) 22:44:02
ハイパーリンクをクリックすると・・・

「このコンピュータに設定されている制約のため、この操作は中止されました。」
ってエラーメッセージ。

ググッたら、@IEを規定する
AインターネットオプションからIEを規定する
Bレジストリをアップデート

どれもダメ。

Help me〜!


444 :sage:2010/08/23(月) 22:54:16
シート1にデータを貼り付けると、シート2にデータが連動するという
システムを作っており、、

=IF(ISERROR(L$6=シート1!$Q$1)=TRUE,"",IF(L$6=シート1!$Q$1,
IFERROR(VLOOKUP($A7,シート1!$D$9:$J$58,5,FALSE),
IFERROR(VLOOKUP(シート2!$A7,シート1!$N$9:$T$58,5,FALSE),"")),""))

という数式を2007で作ったのですが、
2003と互換性を持たせたい場合、この数式はどの様に作り替えたら
よいでしょうか? お願いします。


445 :名無しさん@そうだ選挙にいこう:2010/08/24(火) 00:19:59
>>443
この際だしIEやめたら?
http://pcclick.seesaa.net/article/158119984.html
googleクロームを使うてもあるらしい
>>444
めんどくさいから自分でやって
=IFERROR(数式,エラーの場合の値)

=if(iserror(数式),エラーの場合の値,数式)
と思ったらコンバーターなんてあるみたい。これ使えば楽かも
ttp://office.microsoft.com/ja-jp/excel-help/HA010342994.aspx


446 :名無しさん@そうだ選挙にいこう:2010/08/24(火) 17:13:08
EXCELの最新じゃなくてもそこそこあたらしめのを安く買うにはどうしたらいいでしょうかね?
違法DL以外で

家のPC、OFFICE入れてないのでそろそろ入れようかと•

よろしくお願いします

447 :名無しさん@そうだ選挙にいこう:2010/08/24(火) 17:44:20
>>446
基本、正価以外で買えないと思ってください。
その上で、学生ならアカデミック版とかね。

ヤフオクとかは痛い目に合うかもしれないので、慎重に。
今買うんだったらやっぱり2010がいいと思う
2007の不具合がだいぶ解消されたらしいので

448 :複乳:2010/08/24(火) 18:10:36
>>446
ヤフオクはコピー品が出回ってるからねぇ
似たようなものならOOo(openofficeorg)が無料。
kingsoftofficeは安いけどよく知らない
メーカー物のPCを買えばたいていofficeが付いてくるから、本体ごと新調するのもいいかもね

449 :名無しさん@そうだ選挙にいこう:2010/08/24(火) 19:42:26
アップグレード版おすすめ。前バージョンの確認ないし

450 :名無しさん@そうだ選挙にいこう:2010/08/24(火) 20:07:05
>>447
2007の不具合とは何ですか?

451 :名無しさん@そうだ選挙にいこう:2010/08/24(火) 21:36:15
and関数とor関数を同時に使用する際の入力例をどなたか教えていただけませんか?
初歩的なことで申し訳ないのですが、何卒お願いいたします。

452 :名無しさん@そうだ選挙にいこう:2010/08/24(火) 21:40:20
>>451
=IF(AND(A1="",A2=""),"○","×")
=IF(OR(A1="",A2=""),"○","×")
こういうこと?

>>450
エクセルは2007から大幅に変わってしまったので、色々と不具合、不便なところが出た。
一応、それをふまえて改良されたのが2010
2003までと2007以降はほとんど別ソフト

453 :名無しさん@そうだ選挙にいこう:2010/08/24(火) 21:43:35
452さんレスありがとうございました。

454 :名無しさん@そうだ選挙にいこう:2010/08/24(火) 22:01:41
>>451
=AND(A1,OR(A2,A3))

455 :444:2010/08/24(火) 22:26:07
>>445

=IF(ISERROR(L$6=シート1!$Q$1)=TRUE,"",IF(L$6=シート1!$Q$1,
IF(ISERROR(VLOOKUP($A7,シート1!$D$9:$J$58,5,FALSE)),"",
VLOOKUP($A7,シート1!$D$9:$J$58,5,FALSE)),
IF(ISERROR(VLOOKUP(シート2!$A7,シート1!$N$9:$T$58,5,FALSE)),"",
VLOOKUP(シート2!$A7,シート1!$N$9:$T$58,5,FALSE))))

に作り替えてみたんですがうまくいかないです

456 :名無しさん@そうだ選挙にいこう:2010/08/25(水) 02:55:25
Excel2003なんですがセルの書式を固定させることはできませんか?

htmlにあるテーブル表をExcelに貼り付けた時に
当然のようにhtmlの枠線や色までコピーされてくるのですが
それをいわゆる形式を選択して貼り付けの値のようなことをしたいのです
あらかじめ書式が固定されていれば貼り付けても変化しないかと思ったのですが

457 :複乳:2010/08/25(水) 09:16:30
>>455
括弧の数はテキトーだけどこんな感じ

=IF(ISERROR(L$6=シート1!$Q$1)=TRUE,"",IF(L$6=シート1!$Q$1,
IF(ISERROR(VLOOKUP($A7,シート1!$D$9:$J$58,5,FALSE)),
if(ISERROR(VLOOKUP(シート2!$A7,シート1!$N$9:$T$58,5,FALSE)),"",
VLOOKUP(シート2!$A7,シート1!$N$9:$T$58,5,FALSE)),
VLOOKUP($A7,シート1!$D$9:$J$58,5,FALSE))

一行目 同じ
二行目 $D$9:$J$58のvlookupがエラーなら
三行目 $N$9:$T$58のvlookupを計算、それでもエラーなら空白
四行目 三行目がエラーじゃなければ$N$9:$T$58のvlookupを計算
五行目 二行目がエラーじゃなければ$D$9:$J$58のvlookupを計算
わかりにくいな。まぁいいか。がんばれ。

>>456
貼り付けるときに右クリックで形式を選択して貼り付け
形式をテキスト

458 :名無しさん@そうだ選挙にいこう:2010/08/25(水) 10:23:09
形式をテキストにすると行や列が元の表と合わなくなるんですが

459 :複乳:2010/08/25(水) 10:59:43
>>458
データ 区切り位置 スペース
これで無理ならしらねー

460 :名無しさん@そうだ選挙にいこう:2010/08/25(水) 11:04:07
>>456
一発でやる方法はたぶんないと思う
俺はいったん空いてるシートに貼り付けて、もういちどそこからコピーして形式を選択して貼り付けの値でやってる

461 :名無しさん@そうだ選挙にいこう:2010/08/25(水) 15:29:39
>>444
自分でキッタねぇ数式だと思わんか?

>>457
キッタねぇ数式にキッタねぇ回答ってどうよ?

462 :複乳:2010/08/25(水) 15:37:41
>>461
前から言ってるけど〜指摘するなら答えてあげればぁ〜?
そんな能力がないなら黙ってればぁ〜?

463 :名無しさん@そうだ選挙にいこう:2010/08/25(水) 16:06:31
てsって

464 :名無しさん@そうだ選挙にいこう:2010/08/25(水) 16:11:24
質問です。

1列目に書いた数値に一定の数を加算したものを2列目に入れたいのですが
どういう関数を書いたらいいのでしょうか?

たとえばA列にすべて 4を足したものをB列に表示させたいのです
よろしくお願いいたします

A   B
-------
1   5
1   5
2   6
3   7
10  14

465 :名無しさん@そうだ選挙にいこう:2010/08/25(水) 16:28:44
>>464
B2に
=A2+4
でいいんじゃないの?

466 :名無しさん@そうだ選挙にいこう:2010/08/25(水) 16:32:49
複乳さんに質問です
いつもこの板にいますが、お仕事されてますのか?
いや、もしそうなら私は働くのが嫌いなので、仕事などとっとと辞めて
働かずして生活していく方法を見つけ出したいのです

467 :複乳 :2010/08/25(水) 16:38:46
働かなくても親がなんとかしてくれるんで仕事はしていません。
しいて言えば2chが仕事です。

468 :複乳:2010/08/25(水) 16:51:30
>>466
私も散々考えた上、今の職場にいます。
まぁお金があれば細々と生きていけるでしょう。
無ければサラ金でお金を借りて宝くじを当てるしかないと思います。
でなければ死ぬしかありません(多分生きているのが前提と思うので、これは却下されそうですが)。
例えば犯罪にしても、強盗として、それは日常的にしないといけない。これは仕事と同じです。
独立して大儲けするにしてもそれは結局仕事です。
というわけで、できるだけ楽な仕事を探すのがいいと思います。
公務員は年齢や資格が必要です。クリアしてるなら挑戦しましょう。
無理なら協同組合に入社しましょう。賃金は低めですが、敷居も低く、仕事も比較的楽と思います。
貴方が今から出来ることは2chを切って、協同組合の求人を探すことです。頑張りましょう。

469 :名無しさん@そうだ選挙にいこう:2010/08/25(水) 22:47:14
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Googleやヘルプでの検索キーワード

12345 亜 ccc 亜 1月 8/4
22222 井 bbb 井 1月 8/4
23456 鵜 bbc 鵜 1月 8/4
12345 江 ccc 江 2月 8/4
22222 尾 bbb 尾 2月 8/4
23456 過 bbc 過 3月 8/4

こんな5列のデータがあります。
5列目のデータを基準に、別のワークブックの特定ワークシートにコピーしたいのです。
上記データで言いますと、
「1月」に該当するデータ(2行全部)をaa.xlsの「1月」のシートのセルA14に、
「2月」に該当するデータ(2行全部)をaa.xlsの「2月」のシートのセルA14に、
「3月」に街頭するデータ(1行全部)をaa.xlsの「3月」のシートのセルa14に一括コピーしたい。
 コピーする際はできれば値のみ貼り付けもしたい。

こんなのってできますか?

470 :469:2010/08/25(水) 22:48:17
あ、全部で6列でした。すみません。
5列目のデータが基準なのは合ってます。

471 :名無しさん@そうだ選挙にいこう:2010/08/25(水) 22:49:49
よく見ると1月分は3行ありますね…すいませーん><

472 :名無しさん@そうだ選挙にいこう:2010/08/25(水) 23:03:24
>>469
基本VBAで出来ると思うけど

>「1月」に該当するデータ(3行全部)をaa.xlsの「1月」のシートのセルA14に、
ここがようわからん
3行6列をどのように 一つのセルA14に転記するの?

473 :名無しさん@そうだ選挙にいこう:2010/08/25(水) 23:11:43
レスどうもです
1行全部コピーです。
1月でいえば3行全部
2月でいれば2行全部、といった具合です。

474 :名無しさん@そうだ選挙にいこう:2010/08/25(水) 23:15:52
すいません、一つのセルって意味ではなくて
特定セルを起点にコピーという意味でした。

a14に12345 b14に亜…という感じです

475 :名無しさん@そうだ選挙にいこう:2010/08/25(水) 23:21:23
エラー対策全くなし

>>469

Sub test()
Dim maxRow As Long
Dim maxRow2 As Long
Dim r As Range
Dim v
Dim wb As Workbook

Set wb = Workbooks("aa.xls")
maxRow = Cells(Rows.Count, 4).End(xlUp).Row
For Each r In Range("e1:e" & maxRow)
v = r.Value
With wb.Worksheets(v)
maxRow2 = .Cells(.Rows.Count, 1).End(xlUp).Row
If maxRow2 <= 13 Then maxRow2 = 13
maxRow2 = maxRow2 + 1
Rows(r.Row).Copy Destination:=.Rows(maxRow2)
End With
Next r
End Sub

476 :469:2010/08/25(水) 23:42:33
ああ、失敗しました…><
例で1月が入ってる列なんですが、実際には氏名を入れる覧でして…

膨大なデータから氏名を基準にデータ抽出し、
別のワークブックの氏名毎に仕分けしたシートにコピーする作業を
一括でできるプログラムが欲しかったんです…。


>>475さん、本当にごめんなさい o rz

477 :名無しさん@そうだ選挙にいこう:2010/08/26(木) 09:20:25
氏名ならせめて氏名で例作っとけよwwww
山田とか山本とか中山とか畑山とかなんでもてきとうなのあったろ

478 :名無しさん@そうだ選挙にいこう:2010/08/26(木) 10:49:28
>>477
そこまで気が回る奴は、そもそもこんな所で質問しないw

479 :名無しさん@そうだ選挙にいこう:2010/08/26(木) 14:31:49
In English, >>478's comment would be like this:

>>477
He wouldn't have asked it here in the first place, if he had been cleaver enough to pay attention to it.

480 :名無しさん@そうだ選挙にいこう:2010/08/26(木) 19:39:09
質問です。


エクセルの表を、チェックリストとして使いたいのですが、
Wクリックで セルの背景色が変わるようにするにはどうしたらいいのでしょう?

あらかじめセルに入っている文字を打ちかえることはないので、ロックしてしまってよいです



481 :名無しさん@そうだ選挙にいこう:2010/08/26(木) 19:59:52
>480
エクセルマクロTips 9.2 セルがダブルクリックされたとき
ttp://www.happy2-island.com/excelsmile/smile03/capter00902.shtml


482 :名無しさん@そうだ選挙にいこう:2010/08/26(木) 20:11:52
001 1 - 3 4 
002 - 2 - 4  

という表があるのですが(-のセルは空欄)

これを

001 1
001 3
001 4
002 2
002 4

という表におきかえたいとき、どうやったらいいでしょうか?
実際には、横行方向には 17 まで 数字を入れる欄があります…


483 :名無しさん@そうだ選挙にいこう:2010/08/26(木) 20:45:01
>>482
vbaでいいのかい?ってか、関数は思いつかないけど


Sub test()
Dim maxRow As Long
Dim ws As Worksheet
Dim r As Range
Dim rr As Range
Dim myRange As Range


maxRow = Cells(Rows.Count, 1).End(xlUp).Row
Set ws = Worksheets.Add
Set myRange = ws.Range("a1")

For Each r In Range("a1:a" & maxRow)
For Each rr In Range(Cells(r.Row, 2), Cells(r.Row, 18))
If rr.Value <> "" Then
r.Copy Destination:=myRange
rr.Copy Destination:=myRange.Offset(0, 1)
Set myRange = myRange.Offset(1, 0)
End If
Next rr
Next r

End Sub

484 :名無しさん@そうだ選挙にいこう:2010/08/26(木) 20:53:28
>>483

ありがとうございます!
標準モジュールに貼り付けてマクロ実行してみたのですが シートが増えるだけでした…
んー、なぜでしょう・・

エクセルのデータをうpしてみてもよろしいでしょうか?
http://www1.axfc.net/uploader/File/so/50007

485 :483ではありません:2010/08/26(木) 21:21:31
>482 オーソドックスな方法だとこんな感じです
(マクロは当該シートに記録してください)
' 編集前データはA1セルから記録されているものとする
' B列以降のデータはB列〜R列の17列にあるものとする
' 編集後のデータは同一シートのS列とT列に出力するものとする
' S列はあらかじめセルの書式設定で「文字列」にしておくこと
Dim tate_i As Long, tate_o As Long
Dim yoko_i As Long
Sub ex482()
 tate_e = Range("a65536").End(xlUp).Row
 tate_o = 0
 For tate_i = 1 To tate_e
  For yoko_i = 2 To 18
   If Cells(tate_i, yoko_i).Value <> "" Then
    tate_o = tate_o + 1
    Cells(tate_o, 19).Value = Cells(tate_i, 1).Value
    Cells(tate_o, 20).Value = Cells(tate_i, yoko_i).Value
   End If
  Next yoko_i
 Next tate_i
End Sub

>484 マクロはシートに記録してください。
標準モジュールでは編集元シートが特定できないため動きません。

486 :名無しさん@そうだ選挙にいこう:2010/08/27(金) 15:13:02
>>485

すっ… すごいです 完璧にできました!!!
ありがとうございます!!!

487 :469:2010/08/28(土) 01:08:48
うーん、私が悪かったのかレスいただけなくて残念です。
どなたかヘルプいただけないかなぁ…。

488 :名無しさん@そうだ選挙にいこう:2010/08/28(土) 01:48:48
>>487
訂正が多すぎて、流れを追うのがめんどくさい
なんで名前のところに1月と書いたり、意味不明なことするかなあ
普通に鈴木とか佐藤とか書いとけばいいのに

489 :名無しさん@そうだ選挙にいこう:2010/08/28(土) 01:55:58
抽出するのが文字列だったので何でもいいかなぁと単純に思いました。
ホント申し訳ないです。

あれからさらに検索すると、何とか使えそうなページ見つけましたので
自力で頑張ってみます。有り難うございました。

490 :名無しさん@そうだ選挙にいこう:2010/08/28(土) 17:58:21
日付は文字列じゃねえだろ・・・

491 :名無しさん@そうだ選挙にいこう:2010/08/30(月) 15:07:00
現在、2007標準のxlsxで保存しておりまして
VBAを使用する為、xlsmに変更をしたいのですが
VBAを保存できるxlsmだとマクロウイルス等に感染する恐れがあるのでしょうか?

VBAを保存できないxlsxの場合、そういったマクロウイルス等に感染する恐れはないのでしょうか?


Xlsmにすると感染の危険性が増すというなら、xisxのままにしておきますし
どっちでも変わらないというなら、xlsmにしようかと思いまして。

492 :名無しさん@そうだ選挙にいこう:2010/08/30(月) 15:38:54
自分で作って自分で使うならなんでもok

493 :名無しさん@そうだ選挙にいこう:2010/08/30(月) 15:42:10
>>491
可能性の話だけならxlsmの方が高い

494 :名無しさん@そうだ選挙にいこう:2010/08/30(月) 15:44:58
君が作ったマクロファイルが原因でウィルスにさらされる恐れはない
怪しげなサイトからダウンロードしたときに問題になってくるくらい

495 :名無しさん@そうだ選挙にいこう:2010/08/30(月) 16:56:51
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 多少
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel 年度 日付 

日付入力に関する質問です。
セルに 8/31 と入力すると自動的に 2010/8/31 と出るのですが、
2011/1/5 を表示させるためには、1/5 では駄目で、 2011/1/5 と入力しなければなりません。

そこで、入力日よりも若い月を入力した場合、自動的に次年度として認識してもらう方法はあるでしょうか?
よろしくお願いします。

496 :複乳:2010/08/30(月) 17:37:03
>>495
シートモジュールに以下を記入
シートモジュールが分からなければ↓のリンクを参考に
ttp://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_event.html#change

Private Sub Worksheet_Change(ByVal Target As Range)
If (Month(Target.Value) < Month(Now())) And (a = 0) Then
Application.EnableEvents = False
Target.Value = DateAdd("yyyy", 1, Target.Value)
Application.EnableEvents = True
End If
End Sub

497 :名無しさん@そうだ選挙にいこう:2010/08/30(月) 17:53:20
>>496
(a = 0) ってなに?



498 :複乳:2010/08/30(月) 18:23:00
>>497
sunnmasenn。別のマクロをコピーした残りでした。
If (Month(Target.Value) < Month(Now())) And (a = 0) Then

If Month(Target.Value) < Month(Now()) Then
でお願いします。

499 :名無しさん@そうだ選挙にいこう:2010/08/30(月) 18:36:57
>>496、498
うまくいきました!
年度がうまい具合に変更されてとても便利になりました。
ありがとうございました。


500 :複乳:2010/08/30(月) 19:03:32
>>499
いや礼はいらんよ
これからも不明なことがあったらどんどん言ってくだされ

501 :名無しさん@そうだ選挙にいこう:2010/08/30(月) 23:53:17
VISTA32ビットのエクセル2007使用しています。

質問なのですが、エクセルのセル内に文字を入力した後に方向キーを押すと、その方向のセルに移動してしまうのですが
これをしないように設定できますか?
セル内で入力ミスをして←キーで戻ろうとすると左のセルに移動してしまうから
打ち直す時はわざわざマウスで間違えた所をクリックしなければならないのが大変なので。
あと、カッコを書く時先に()と入力してから←キー1回押してカッコの中を書くと言うのも出来ないですし。

それともう一つ、選択したセルのフレーム、枠の所をダブルクリックすると
勝手に一番上に画面が飛ばされてしまうのを解除する方法ってありますか?
セル内に入力しようとしてダブルクリックすると、たまに枠をダブルクリックしてしまって
それで一番上まで飛ばされる事があります。
そのたびにまた下までスクロールするのは煩わしいので。
設定等で変える事は出来ますか?

502 :501:2010/08/31(火) 00:12:28
すみません。テンプレ書いてませんでした。

【1 OSの種類         .】 Windows VISTA
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 方向キー 選択 セル フレーム ダブルクリック など

503 :名無しさん@そうだ選挙にいこう:2010/08/31(火) 00:16:53
>>501
左矢印で修正は不可能
ただし、F2キーを一度でも押せば矢印キーで自由にカーソルが移動するモードに変わる

504 :名無しさん@そうだ選挙にいこう:2010/08/31(火) 08:03:06
>>501
あなたがExcel本来の入力のやり方を身に付けた方がいい。

505 :名無しさん@そうだ選挙にいこう:2010/08/31(火) 11:23:45
【1 OSの種類       】 WindowsXP
【2 Excelのバージョン 】 Excel2002


Excel電子印鑑1.4を久々に使おうかと思ったら
下記のエラー表示が出て使えません
どうしたら使えるようになりますか?
よろしくお願いします

「addin クラスの installed プロパティを設定できません」

506 :名無しさん@そうだ選挙にいこう:2010/08/31(火) 12:20:50
>>505
アドインの再インストール

507 :505:2010/08/31(火) 12:53:03
>>506
復活しました
ありがとうございました!

508 :名無しさん@そうだ選挙にいこう:2010/08/31(火) 15:19:21
>>501
セル内編集をやめて、通常のやり方すればいい。
入力バーから入力する。
そうすれば思い通りになるよ。

509 :名無しさん@そうだ選挙にいこう:2010/08/31(火) 19:01:39
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 それなり
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 なにで検索すればよいやら・・

シート名を○月分と設定するプロシージャですが、
1から12月以外の月数を設定したときに、再帰(?)して再入力を促す感じに作りました。
シート名が重複するときもエラーを判別して再帰(?)して再入力します。
でも1-12以外の月を設定して、再帰してもう一度月数を入れたとき、なぜか最初に入力した1-12以外の番号でシート名になってしまいます・・・
なぜなんだろう・・



510 :509:2010/08/31(火) 19:03:22
↓問題のマクロがこれです・・・どうすれば・・

Sub シート名をつける()
Dim m As Variant
m = InputBox("何月分のデータですか? 月数を入力してください")

If m = "" Then
MsgBox ("キャンセルされました")
ElseIf m < 1 Or m > 12 Then
MsgBox ("存在する月で月数を設定してください")
Call シート名をつける
End If

On Error Resume Next
On Error GoTo job
ActiveSheet.Name = m & "月分"
Exit Sub

job:
On Error GoTo 0
MsgBox ("月名が重複しています、有効な月数を設定してください")
Call シート名をつける

End Sub


511 :名無しさん@そうだ選挙にいこう:2010/08/31(火) 19:43:19
図解
ttp://www1.axfc.net/uploader/Img/so/93140.jpg
入れ子状態になってるとでもいえばわかりやすいか。スコープでぐぐるとわかると思うけど、mという変数がcallしたあとで別扱いになっている
別のマクロで、同じ変数mを使ったと思えばわかりやすいかな。
それとウォッチ式でmを監視し、F8のステップインで実行するといい

回避するにはdowhileで1-12になるまで入力させる、エラー処理は終了、トグル等のフォームで入力、gotoでコードの頭に飛ばす・・等
他にも色々あるとおもうけど、何がスマートだろうねー。ちなみに私ならmsgbox出して終了させるよ

512 :名無しさん@そうだ選挙にいこう:2010/08/31(火) 20:04:31
>509,510 再帰処理なんて、パスカルぐらいしかできないものと思ってた。
普通にループで条件に合うまで繰り返すとこんな感じ(PC環境は同じ)

Sub EX509_510()
On Error GoTo er1 '型エラー
job_start:
 Do
  m = Int(InputBox("何月分のデータですか? 月数を入力してください"))
  If m > 0 And m < 13 Then
   Exit Do
  Else
   MsgBox ("存在する月で月数を設定してください")
  End If
Loop
On Error GoTo er2 '重複エラー
 ActiveSheet.Name = m & "月分"
 Exit Sub
er1:
 MsgBox ("存在する月で月数を設定してください")
  Resume 0
 GoTo job_start
er2:
 MsgBox ("月名が重複しています、有効な月数を設定してください")
 Resume 0
 GoTo job_start
End Sub


513 :512:2010/08/31(火) 20:26:36
>511
mという変数名は同じなのに、なんで前の内容が残るんだろう?と>510のマクロを試して悩んだけど
「別のマクロで、同じ変数mを使ったと思えば」
そういうことなんですね、ありがとうございます。再帰するたびに増えていくmの分身か。

514 :509:2010/08/31(火) 20:51:21
みなさんご回答ありがとうございましたm(_ _)m
512さんのマクロだと、重複のときこれもなぜか上手くいかなかったのですが、
ヒントがつかめた気がします。
親のプロシージャが順番に呼び出していく部品のひとつなので、
処理の失敗時にexitする形ににはしたくなかったのですが(次が勝手に進んでしまう・・)
なんとかなるかも!
会社にはここまで質問できる人がだれもいなくて・・
処理もあれなんですが、どうしてなのか気になって気になって
家に帰ってきてからもずっとモヤモヤしてたんです、
図解つきで解説なんて涙でました・・・
本当にありがとうございます。



515 :名無しさん@そうだ選挙にいこう:2010/08/31(火) 23:06:40
>>509
もう要らないかもだが、俺も1つ

Sub aaa()
Dim m As Variant
Do
m = InputBox("何月分のデータですか? 月数を入力してください")
If m = "" Then
MsgBox ("キャンセルされました")
Exit Do
ElseIf m < 1 Or m > 12 Then
MsgBox ("存在する月で月数を設定してください")
m = 0
Else
On Error GoTo er1
ActiveSheet.Name = m & "月分"
On Error GoTo 0
End If
Loop While m = 0
Exit Sub
er1:
MsgBox ("月名が重複しています、有効な月数を設定してください")
m = 0
Resume Next
End Sub

516 :名無しさん@そうだ選挙にいこう:2010/09/01(水) 01:26:07
【1 OSの種類       】 WindowsXP
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか   】 はい
【4 VBAでの回答の可否 】 可
【5 検索キーワード   】 EXCEL VBA Shape はみ出
どうしても解決できなくて困っています。
ご存知の方がいらっしゃいましたら教えていただけないかと。。。

intLeft, intTop, intLength, intWidth は任意の数値です。
strBuf は適当な文字列です。文字列には改行が含まれています。

  Set shpArrow = Sheet3.Shapes.AddShape(msoShapeRightArrowCallout, intLeft, intTop, intLength, intWidth)
  shpArrow.TextFrame.Characters.Text = strBuf

 これを実行すると、Shapeの中に文字列が収まりきらないときにはみ出してしまいます。
 これをShapeのサイズを変えずに文字をはみ出さないように出来ないでしょうか。
 入りきらない文字は、隠れて表示されないようにしたいです。


517 :名無しさん@そうだ選挙にいこう:2010/09/01(水) 01:43:35
>>516
こうゆう事?
Set shpArrow = Sheet3.Shapes.AddShape(msoShapeRightArrowCallout, intLeft, intTop, intLength, intWidth)
With shpArrow.TextFrame
.Characters.Text = strBuf
.AutoSize = False
End With

518 :名無しさん@そうだ選挙にいこう:2010/09/01(水) 11:08:04
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ(VBAはセキュリティの関係上使用できません)
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル ファイル 有無 関数

VBAを使わずに関数のみで相対パスによるファイルの有無を調べたいです。

(例)
C:\hoge.xls→本体エクセル
C:\aaa\bbb.jpg

のような状態でhoge.xls内のセルで相対パス("aaa\bbb.jpg")があれば"真"と表示させたいです。
相対パスの条件は下記を連結させると絶対パスで書けそうなのですが、肝心のファイルの有無が分かりません。
=INFO("directory")

関数のみで他ファイルの有無のチェック方法を教えてください。

519 :516:2010/09/01(水) 14:57:13
>>517
ありがとうございます。
省略しようとして省いてしまって申し訳ありません。
.AutoSize = Falseにはしてあります。

Shapeの中に入りきらなかった文字列が図からあふれ出している状態です。
他のTextBox等をサイズに合わせて作成して、透明にする方法も考えた
のですが、数が多いので出来ればこの図形だけを使いたいです。


520 :名無しさん@そうだ選挙にいこう:2010/09/01(水) 17:22:42
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 多少
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel 一行ごと 色 フィルタ

一行ごとに色分けするために条件付き書式設定で =MOD(ROW(),2)=1 を利用しているのですが、
フィルタで選択を解除した項目があると一行ごとに色分けされません。

そこで、フィルタで選択していない項目がある場合でも一行ごとに色分けするにはどうしたらよいでしょうか?
出来れば関数でよろしくお願いします。

521 :名無しさん@そうだ選挙にいこう:2010/09/01(水) 18:25:28
>>520
A2〜Anにデータがあるとして、条件書式に

=MOD(SUBTOTAL(2,$A$2:A2),2)=1

ではどうだろうか?

522 :521:2010/09/01(水) 18:51:41
あー、念のために書いておくが、フィルタ解除状態で式を入れろよ。
つーか、フィルタ状態で式を入れると、解除後隠れていたところに
式は入っているのか?
これからもそんなことはやらないから、試す気にもならないが。

523 :名無しさん@そうだ選挙にいこう:2010/09/02(木) 00:45:18
初歩的な質問なのですが、数式などをいれた特定のセルを保護する方法
はありますでしょうか?
どなたかご教授お願いいたします。

524 :名無しさん@そうだ選挙にいこう:2010/09/02(木) 00:59:44
>>523
セルの書式の保護のタブのところをみるとわかると思うけど
デフォルトでロック状態になっているのでロックの必要が無いところはチェックをはずす。
で、ツールバーの「ツール」から「保護」→「シートの保護」→「OK」で完了。
必要に応じてパスワードを入力(設定しなくても可)。
2002ではだけど。


525 :名無しさん@そうだ選挙にいこう:2010/09/02(木) 06:12:59
>>524の前に数式の入ったセルのみ選択するには
Ctrl+G→セル選択→数式にチェックする

526 :名無しさん@そうだ選挙にいこう:2010/09/04(土) 21:16:04
aaaaatest

527 :名無しさん@そうだ選挙にいこう:2010/09/04(土) 21:18:55
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可ですがなるべく回避して頂きたいです。
【5 検索キーワード 】 最小2乗法、線形近似

http://uproda.2ch-library.com/287952CsY/lib287952.jpg

この様にX, Yの値の表があるのですが、これを
Y=aX+bと仮定して(線形近似)誤差の2乗和が最小になる様な
a, bを求めたいのです。(最小2乗法)
Excelでできますでしょうか?
方法を教えて下さい。

よろしくお願い申し上げます。


528 :名無しさん@そうだ選挙にいこう:2010/09/05(日) 01:09:27
>>527
linest関数

529 :名無しさん@そうだ選挙にいこう:2010/09/05(日) 01:10:48
linest関数とは何かと聞いておるのだ

530 :527 :2010/09/05(日) 11:15:46
>>528
linest excel
でググってきます。
ご教示ありがとうございました。

531 :名無しさん@そうだ選挙にいこう:2010/09/05(日) 18:29:10
excel2007使用です。
ワイド液晶を使用しているのですが、たとえばA4縦サイズのページ設定で
作成していて、ちょうどよい表示倍率にすると、作成している表全体が画面左半分に
寄ってしまいます。(A4に入るのはA〜Gで、H以降は画面上に表示させたくない)
ワードのように、A4の紙がモニター中央に配置されたような状態で編集する方法など
ありますでしょうか?

532 :名無しさん@そうだ選挙にいこう:2010/09/05(日) 18:34:01
>>531
ウィンドウを移動させては・・?

533 :名無しさん@そうだ選挙にいこう:2010/09/05(日) 18:36:57
>>532
全体表示で作業をしたいのです。
ウィンドウを移動させて編集範囲を画面中央に持ってくると、
リボンも半分程度見えなくってしまい・・・。
ウィンドウそのものを動かしてやりようはあるのですが、
単純にエクセルの機能として表示位置を調整するものがないかなと思いまして。

534 :名無しさん@そうだ選挙にいこう:2010/09/05(日) 18:48:27
>>533
無いねぇ
発想を変えてA列を余白扱いにして、大きく伸ばしてB-H列に印刷範囲を設定、作業とかしか

535 :名無しさん@そうだ選挙にいこう:2010/09/05(日) 18:50:13
>>533
右上をよく見ると、最大化、最小化ボタンが上下2列に並んでるでしょ
下の列の最大化ボタンを押してみ

536 :名無しさん@そうだ選挙にいこう:2010/09/05(日) 18:52:57
>531
新しいウィンドウ→ふたつのウィンドウを並べて表示→左右の表示幅を調整 でどうですか?
データ(セル幅)をいじらずに済みます。その都度設定するのは煩わしいけど。

537 :名無しさん@そうだ選挙にいこう:2010/09/05(日) 19:06:36
これじゃだめなの?
ttp://windyakin.if.land.to/src/up38_2237.jpg

538 :名無しさん@そうだ選挙にいこう:2010/09/05(日) 19:13:03
だめだから聞いておるのだ

539 :名無しさん@そうだ選挙にいこう:2010/09/05(日) 19:26:34
>>536
確かに方法としてはよいですが、少し面倒ですね。
>>535 >>537
やはりそれしかないですかね。 セル調整も既存のファイルを崩したくないので
難しいですね。

みなさま、アドバイスありがとうございました。

540 :名無しさん@そうだ選挙にいこう:2010/09/06(月) 22:41:51
エクセル2003使用です。
オートフィルタを解除してもプルダウンの表示がきえません。
新しいシートに表をコピペすると一時的に直るのですが、
またすぐに同じ不具合がでました。
どう対処したらいいでしょうか??

541 :名無しさん@そうだ選挙にいこう:2010/09/06(月) 22:59:46
>>540
自分で作った表? 他人の作成したファイルからのコピペだったら、マクロがあるとかは?

542 :名無しさん@そうだ選挙にいこう:2010/09/06(月) 23:07:18
>>541
私がつくった表ではなく会社のひとが作成しました。
マクロは無かったです。

543 :名無しさん@そうだ選挙にいこう:2010/09/06(月) 23:16:51
>会社のひとが作成しました
なんかVBが動いてそうだな(Excelではマクロのほうが通りがいいだろうからマクロと書いたが)、やっぱり。
どういう風にマクロが無いことを確認した?

544 :名無しさん@そうだ選挙にいこう:2010/09/06(月) 23:24:29
>>543
「マクロの表示」で見てマクロ名の登録が全くない状態だったので
マクロは無いかなと思いました。
ちなみにオートフィルタを解除したあともプルダウン表示が
残ったままですが、プルダウンとしての機能は全くありません。


545 :名無しさん@そうだ選挙にいこう:2010/09/06(月) 23:26:04
メモリ不足とか

546 :名無しさん@そうだ選挙にいこう:2010/09/06(月) 23:29:14
>>544
軽く検索してみたが、意外と既出の問題のようだね。
解決法は見つからなかったが。

547 :名無しさん@そうだ選挙にいこう:2010/09/06(月) 23:34:43
>>546
いろんなキーワードで(オートフィルタ解除 プルダウン消えないetc)
で自分でも調べてみて、なかなか出てこなかったのですが
どのように検索したら出てきますか??
>>545
メモリ不足でもこのような不具合が出ることがあるのでしょうか??
メモリの軒については明日会社にいったらちょっくら見てみます。


548 :複乳:2010/09/07(火) 00:04:23
>>547
オートフィルタはバグが多い。excel オートフィルタ バグ、excel オートフィルタ  残る 辺りで検索
http://okwave.jp/qa/q3523014.html
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1222020702
保存して終了、もう一度開くってやっても残ってるなら
シートの構造を変えるか、シートをコピーしてからオートフィルタかけた方がいいかもねぇ


549 :名無しさん@そうだ選挙にいこう:2010/09/07(火) 00:26:14
>>548
ありがとうございます。
リンク先には「2007で作業していたら知らないうちに直った」とありますね。
さっそくためしてみます・
シートのコピーはすでに試していて、一時的に直ったのでほっとしていたのですが
またすぐに同じ不具合があらわれてしまいました。
シートの構造を変えるというのは具体的にはどのようにすればよいのでしょうか??


550 :複乳:2010/09/07(火) 08:02:31
>>549
わからん
多分だけど全体の量、数式を短くするなどして減らせば解決する気はする

551 :名無しさん@そうだ選挙にいこう:2010/09/07(火) 11:45:21
【1 OSの種類         .】 Windows VISTA
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 データ 集計 関数

1列目にA,B,C,Dのいずれかが入力されており、その右側のセル(2列目)に
それぞれ数値が入力されているとします。(数値はバラバラ)

並び替え機能を使わずに関数のみでAの件数と右側のセルの合計値を
出したいのです。
件数はCOUNTIF関数で対応可能ですが、合計値の出し方が分かりません。

よろしくお願いします。

下記の例だと、Aが1300、Bが600、Cが900、Dが200と言う事です。
よろしくお願いします。

A 500
B 300
C 600
D 200
C 300
A 400
B 300
A 400


552 :名無しさん@そうだ選挙にいこう:2010/09/07(火) 11:47:31
sumif関数

553 :名無しさん@そうだ選挙にいこう:2010/09/07(火) 17:21:19
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2003 SP3
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】excel ピクセル ポイント 幅 列 など

あるブックのシートを別のブックに移動しました。
そうしたら、移動前と移動後で印刷結果が変わるものがありました。
(移動元のブックは、作業前のものも残してありました)
文字の大きさや行の高さなどは変わっていないのですが、
セル(というか列)の幅だけ、10%程小さくなっています。
印刷結果と言いましたが、画面上は変わっているように見えません。
幅をピクセルで表示すると変わっていません。
ただ、一緒に表示される文字数単位での幅は違います。
小さくなってしまった方は、25%程小さな数字が表示されます。例えば、こんな感じ。
移動前:9.83 / 64ピクセル
移動後:7.38 / 64ピクセル
標準フォントとか変更してみましたが、現象は変わりません。
拡大/縮小などはしていませんし、ページ設定で確認しても両方とも100%です。

移動先のシートを元と同じように印刷するには、どうしたらよいでしょうか。
よろしくお願いします。


554 :名無しさん@そうだ選挙にいこう:2010/09/07(火) 17:29:50
そのシート、どうやって「移動」したの?

555 :複乳:2010/09/07(火) 18:10:40
>>553
http://office.microsoft.com/ja-jp/excel-help/HP010078580.aspx
かなぁ
エクセルはよくサイズや印刷結果が変わるので仕様と思って諦めてる

解決策としては、移動元をブックごとコピーし、移動先を逆に持ってくる
形にすればサイズは変わらないと思う

556 :551:2010/09/07(火) 18:53:39
>>552
ありがとうございました!

557 :名無しさん@そうだ選挙にいこう:2010/09/07(火) 21:24:16
宜しければ教えてください
sheet1に原版3000行程のデータがあり
sheet2に原版から必要な2000程データの一覧をindexで抽出&平均値や%等、色々計算
sheet3〜でsheet2から更にindexでカテゴリ毎に更に抽出
っと、計算とindex・vlookup尽くしでsheet1の原版を少し触ると再計算が
非常に長くなりどうしようも無くなってきたのですが
マクロで計算させて数値データのみにしてしまえば軽くなるものなのでしょうか?

558 :名無しさん@そうだ選挙にいこう:2010/09/07(火) 21:30:08
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
セル内でテキストの編集をしている時(カーソルは文字のところで点滅中)に、キーボードの右・左のキーを押しても
次のセルにカーソルが移動しないようにしたい。(テキスト内の文字の編集に専念したい)

よろしくお願いします。

559 :名無しさん@そうだ選挙にいこう:2010/09/07(火) 21:42:34
>>557
大抵は滅茶苦茶軽くなる。

560 :名無しさん@そうだ選挙にいこう:2010/09/07(火) 21:45:12
>>558
テキスト入力中にF2を押せば編集モードになって
←→押しても隣のセルに移動しないけど、それじゃだめ?

561 :557:2010/09/07(火) 21:48:38
ぐ・・・関数を少し使いこなせるようになったと思ってたら・・・
VBAの勉強を初めて見ます。
ありがとうございました。

562 :名無しさん@そうだ選挙にいこう:2010/09/07(火) 22:00:58
>>557
もう見ないかもしれないけれど、自動計算を一時的に切る、というのも手だよ。でも、自動計算に戻すのを忘れずに

563 :名無しさん@そうだ選挙にいこう:2010/09/07(火) 22:07:25
>>560
初めて知りました。ありがとうございます。

564 :名無しさん@そうだ選挙にいこう:2010/09/08(水) 00:50:25
【1 OSの種類       .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
  
      検査項目  身長  体重  視力 腹囲
名前
山田 花子       150   50
鈴木 太郎       170   65
佐藤 次郎       175   80   1.5
白鳥 麗子       165   55   0.5  70

上記のような表があります。
身長+体重…Aコース
身長+体重+視力…Bコース
身長+体重+視力+腹囲…Cコース
とコース設定があるとして、上記の表から
Aコースの人の結果だけ、Bコースの人の結果だけ、Cコースの人の結果だけを
それぞれ抽出するにはどのようにしたらいいでしょうか?
よろしくお願いいたします。 

565 :名無しさん@そうだ選挙にいこう:2010/09/08(水) 00:53:21
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 コピー 切り取り セル Range 取得

VBAで「コピーや切り取り中」のセルを取得するプロパティやメソッドはありませんか?
コードからコピーを実行する前に、点線で囲まれているセル範囲を記録しておき、
処理完了後にそのセル範囲を再びコピー状態に戻したいのです


566 :名無しさん@そうだ選挙にいこう:2010/09/08(水) 01:46:33
>>564
抽出って何を指してる?
このデータがシート1にある状態でシート2〜4に各コースの人のデータを丸写しすればいいの?
求める結果の形を正確に言わないと出来ないし、正確にわかれば出来ないことなんてまずないよ。


>>565
後からそれを取得する簡単な方法はない。多分。
ググったならこのページくらいは見てるだろうが一応貼っとく。
ttp://questionbox.jp.msn.com/qa4165685.html

実現してる人はだいたいAPI使ったりして標準機能を使ってない。
そういうのはクリップボード経由で得られる情報を自力で解析して力技で元のセルを探し出してる。
それも完璧に取得出来るものはお目にかかったことがない。
(複数範囲をコピーしてると1つ目の領域しか取れず、2つ目以降の範囲はわからない、らしい)

標準機能でやってる人は大抵どこかのタイミング(Changeイベント等)でコピーモードを検出し、
その段階で隠しシート等のどうでもいいセルのPasteメソッドを呼び出して情報を取り出してる。
これは当然元のセルがどこかはわからない。

後からじゃなく先に手を打っておくなら、WithEvents宣言した非表示のカスタムボタン。
コピー操作で呼ばれるイベントは用意されてないが、コピーを実行しようとするボタンのクリックイベントならある。
つまりコピーが起きる前にそれを検出する。その発生元のセルを保持しておく。
コピー切り取り関係のメニューやボタン全てに対応するコマンドボタンオブジェクトを内部に保持してクリックイベントを傍受。

どれもメンド臭いのでもっと簡潔で素晴らしい方法があるなら俺も知りたい。

567 :名無しさん@そうだ選挙にいこう:2010/09/08(水) 02:47:02
>>565
Selection

568 :名無しさん@そうだ選挙にいこう:2010/09/08(水) 02:51:56
>>564
A列=名前、B列=身長の順にデータが入ってるとして、作業列に
=IF(AND(B1<>"",C1<>""),IF(D1<>"",IF(E1<>"","C","B"),"A"),"")
でコースが出る

569 :名無しさん@そうだ選挙にいこう:2010/09/08(水) 03:51:16
>564
VBAマクロで作ってみました。標準モジュールに作成してください。
Option Explicit
Dim sh_nm(3) As String, tate(3) As Long, cnt(3) As Long, i As Integer, j As Integer
Sub ex_564()
 For i = 0 To 3
  tate(i) = 2 ' 各シートの開始行位置(2行目から始まるものとして)
  cnt(i) = 0 ' 処理件数
 Next i
 sh_nm(0) = "Sheet1" ' 元データのシート名
 sh_nm(1) = "Sheet2" ' Aコースのシート名
 sh_nm(2) = "Sheet3" ' Bコースのシート名
 sh_nm(3) = "Sheet4" ' Cコースのシート名
 With Worksheets(sh_nm(0))
 .Activate
 Do While (.Cells(tate(0), 1).Value <> "")
  i = 0
  If .Cells(tate(0), 2).Value <> "" Then i = i + 1
  If .Cells(tate(0), 3).Value <> "" Then i = i + 2
  If .Cells(tate(0), 4).Value <> "" Then i = i + 4
  If .Cells(tate(0), 5).Value <> "" Then i = i + 8
  Do
続きます。

570 :569:2010/09/08(水) 03:56:12
続きです。
   Select Case i
   Case 3
    j = 1
   Case 7
    j = 2
   Case 15
    j = 3
   Case Else
    Exit Do
   End Select
   .Range(Cells(tate(0), 1), Cells(tate(0), 5)).Copy
   ActiveSheet.Paste Destination:=Worksheets(sh_nm(j)).Cells(tate(j), 1)
   tate(j) = tate(j) + 1: cnt(j) = cnt(j) + 1
  Loop While 0
  tate(0) = tate(0) + 1: cnt(0) = cnt(0) + 1
 Loop
 .Range("A1").Select
 End With
 MsgBox ("入力:" & cnt(0) & "件" & Chr(10) & "A:" & cnt(1) & "件" & Chr(10) _
 & "B:" & cnt(2) & "件" & Chr(10) & "C:" & cnt(3) & "件" & Chr(10))
End Sub

あたかもフィルタをかけたように、該当データのみ各シートにコピペします。
条件も厳しくしているので、身長や体重などが欠けていたらコピペしません。
処理件数も各コース別に表示するようにしています。
シート名が異なるときは、マクロの中身を修正してください。

571 :569:2010/09/08(水) 04:00:29
追加です

終了条件は、名前の列(A列)が空欄になったこと、としているので、
途中に名前の空欄があると、そこで処理は終わります。

572 :名無しさん@そうだ選挙にいこう:2010/09/08(水) 06:30:19
>>566
説明不足ですみません。
別シートでも同じシートでもかまいませんが
特定のコース受信者の人だけのデータのまる写しがほしいです。
>>568 >>569
詳しくありがとうございます!!
さっそくコピペしてみて動きを確かめてみたいと思います。
今日の夜にでもどんな風になったか報告にきますね。
本当にありがとうございます!

573 :564:2010/09/08(水) 06:52:58
564です。
ちょっくら569さんのを試してみたら、
コースごとにシートに振り分けることができなくて
入力何件、●●コースが何件、というふうなダイアログしかでませんでした。
そのままコピペしたんですが、(シート名も569さんのVBAでの記述にあわせてあります)
このようにしたらうまくいくか、再度おしえていただけるとありがたいです。

574 :名無しさん@そうだ選挙にいこう:2010/09/08(水) 08:54:21
>>554
移動元/先のブックを開き、対象のシートのタブで右クリック、
出てきたメニューの「移動またはコピー」を選んで行いました。

>>555
すいません、ご紹介いただいたページを見ましたが、よくわかりませんでした。
また、
> 解決策としては、移動元をブックごとコピーし、移動先を逆に持ってくる
これをすると、移動先であったブックから持ってきたシートがおかしくなりました。

ところで、画面の上と左側に列と行の番号が書いてある部分がありますが、
二つのブックでそこの大きさが違うことに気付きました。

アドバイスどうもありがとうございます。もう少し調べてみます。


575 :複乳:2010/09/08(水) 09:08:31
>>573
http://www1.axfc.net/uploader/Img/so/93752.jpg
こんな感じじゃないのん

576 :569:2010/09/08(水) 12:32:28
>564,573
開始行位置の違いかな? >575複乳さんの図のとおり3行目からデータが始まるのであれば、
tate(i) = 2 ' 各シートの開始行位置(2行目から始まるものとして) を
tate(i) = 3
としてください。それと、うまくいかないという内容を具体的に知らせてください。
例:途中でエラーになる、件数は入力、A、B、Cいずれも0件と表示される、etc
念のため、列構成はA列:氏名、B列:身長、C列:体重、D列:視力、E列:腹囲 です。
コピペ範囲は処理対象行のA〜E列の部分だけです。(各コースとも同じ)
処理終了で件数表示の後[OK]を押しても、最後に処理した行のデータ範囲がコピー元状態のままに
なるので、[ESC]を1回押してもらうといいです。

577 :566:2010/09/08(水) 13:47:56
>>567 ちょっと感動。なるほど。
SelCutCopyMode <> Falseになった瞬間のSelectionを範囲とみなすって事だよな?
完全ではなさそうだけど、簡潔でいいね。

不完全と思う理由:そのSelectionがカットコピー範囲ではない可能性がありそう


578 :名無しさん@そうだ選挙にいこう:2010/09/08(水) 13:59:11
>>553, >>574について補足です。

まず訂正します。「標準フォント」の変更をしたと言いましたが、間違っていました。
私がやったのは、ツール-オプション の 全般のところの標準フォントの変更で、
やるべきだったのは、書式-スタイル で「標準」を選んで変更することでした。

で、移動先のブックの標準フォントがどうなっているかによって、
>>553に書いたようなことが起きることが確認できました。


579 :名無しさん@そうだ選挙にいこう:2010/09/08(水) 17:45:21
内容:
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 SUMIF 複数条件

営業データを契約番号で管理しています。
ひとつの契約でも追加受注で増額したり、はたまた仕様変更で減額したりしています。

これの合計を出すだけならSUMIFで契約番号を条件にしてやれば良いのだと思いますが、
ひとつの契約番号でも複数の通貨で受注している契約があります。
(例:契約番号3番は、円貨10万円、外貨US$1000、等)

通貨が一緒のものは通貨が一緒のものとして、合計を出したいのですが、
何か上手い方法は無いでしょうか。

データは1万件位有るので、オートフィルタを使った手作業では無く、
関数かマクロで実行したいです。

自分で検索してみた結果、SUMPRODUCTという関数を使って以下のように書いて
みたのですが、上手く動きませんでした。(#NAMEになってしまう)

=SUMPRODUCT((A2:A10000=B2)*(C2:C10000="円")*(D2:D10000))

A列2行目〜10000行までが契約番号データ、
B2に検索したい契約番号、
C列2行目〜10000行までが通貨(今回は"円"のもののみ合計しようと考えました。)
D列2行目〜10000行までが契約額の増減(最初に10万円受注していたら、あとは+2万円とか-1万円とか)

580 :名無しさん@そうだ選挙にいこう:2010/09/08(水) 18:05:17
>>579
実際にどういうデータが入ってるか教えて
特にCとD列
+2万円というのは、文字列で入ってる?それとも書式設定?
また例の契約番号3番は、円貨10万円、外貨US$1000というのは
B2 契約番号3番
C2 円貨10万円、外貨US$1000
って感じで入ってるの?

581 :564:2010/09/08(水) 21:18:34
>>576
こんばんは。
今朝はうまくいかないと書きましたが、おちついてじっくり作成してみたら
うまくいきました。まさに自分がほしかった通りの動きです。
本当にありがとうございます。
そしてあと2点ほどおしえてほしいです。
コースごとのデータをシートに振り分けるさいに
コピー&ペーストではなくカット&ぺーストにするには
どうしたらいいでしょうか??
つまり、データを別シートにうつした人に関しては
最初のシートからデータが削除され状態にしたいです。
それと、実際はもっとたくさんのコースを作成したいので、
コースを指定している部分の記述はどこなのか教えてください。
たびたびの質問で恐縮ですが、よろしくお願いいたします。

582 :名無しさん@そうだ選挙にいこう:2010/09/08(水) 21:32:02
【1 OSの種類         .】 Windows VISTA
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】

長嶋 巨人,,,
王  巨人,,,
野村 南海/西武,,,
落合 ロッテ/中日/巨人,,,


が1000件ぐらいあった場合
長嶋 巨人,,,
王  巨人,,,
野村 南海,,,
野村 西武,,,
落合 ロッテ,,,
落合 中日,,,
落合 巨人,,,

としたいのですが
方法として
VBAでB列を上から順番に読み込んで/のあるセルを分割して配列に入れて
あとで下に追加してくる方法と
セルを分割して右のセルに分割して出来たデータ存在する行だけ順番に読みこんで一番下の行に追加していく
というやり方があると思うのですが

どちらもやたら時間がかかるのですが 
他に方法とかあるのでしょうか?

583 :名無しさん@そうだ選挙にいこう:2010/09/08(水) 21:36:47
>579
D列の金額は数値にしないとうまくいかないと思う。>580さんの書いているように、
"+1万円"とか"-1万円"などのように通貨単位まで入れてしまうとExcelは計算できない。
自分のPCで試してみたら、>579の計算式でうまくいきました。条件は以下のとおりです。
A2:A21 契約番号(数字)、C2:C21 通貨("円"or"$")、
D2:D21 金額(書式設定-表示形式−ユーザー設定 で +#,##0;-#,##0;0 と設定し、+や−を表示
※D列には計算できるように数値である必要があります。

そのうえで、B2セルに検索したい契約番号を入力のうえ、
当該契約番号での通貨円の合計を求めるセルには>579の式、通貨ドルの合計を求めるセルには
"円"の部分を"$"に変えた式にする。あとはわかりやすいように、計算式の入ったセルの表示形式で
 円 や $ を表示できるようにしたらいいです。

584 :569,576:2010/09/08(水) 22:08:42
コース設定に必要な項目(列)を追加する方法を説明します。
1 シートを増やす
2 配列変数の要素を増やす(併せて初期設定のループ回数を増やす)
3 コース設定に必要な項目(列)の判定部分を増やす
4 コース判定の Case文を増やす
5 コピペする範囲を増やす
6 最後にMsgbox内の表示する部分を増やす
このうち、3と4について説明します。

3について >569の
If .Cells(tate(0), 2).Value <> "" Then i = i + 1  2はB列、i+1の「1」は重み
If .Cells(tate(0), 3).Value <> "" Then i = i + 2  3はC列、i+2の「2」は重み
If .Cells(tate(0), 4).Value <> "" Then i = i + 4  4はD列、i+4の「4」は重み
If .Cells(tate(0), 5).Value <> "" Then i = i + 8  5はE列、i+8の「8」は重み
コース設定に必要な項目(列)を上記のように追加し、重みは1、2、4、8、16、32のように倍々ゲームで増やしていきます。

4について >570の
Case 3 −−−−−−B列、C列にだけデータがあった
  j = 1 −−−−−-Aコース(添字:1に対応)
Case 7 −−−−−−B列、C列、D列にだけデータがあった
  j = 2 −−−−−-Bコース(添字:2に対応)
Case 15 −−−−−−B列、C列、D列、E列にだけデータがあった
  j = 3 −−−−−-Cコース(添字:3に対応)
の部分を増やしていくだけです。※ Case Else よりも上に書くこと
ただし、上記の判定は厳格にデータの有無で判定しているので、(Gコースには視力(D列)の部分はデータがあってもなくてもかまわない)のようなどちらでもよい項目(他のコース設定には必要)の
場合は、当該項目が「ある場合」「ない場合」両方Select Case文に入れておく必要があります。わかりにくい場合は、おたずねください。
カット&ペーストについては別に書くのでしばらく待ってください。

585 :569,576:2010/09/08(水) 22:16:47
>581
コピー&ペースト から カット&ペースト への変更については、あまりおすすめしません。
大事な元データを消してしまうと、後から取り返しがつかなくなるので。(ま、ちゃんとバックアップはとるでしょうけどね)
.Range(Cells(tate(0), 1), Cells(tate(0), 5)).Copy  のある部分を変更したらできなくもない、とだけ書きます。

そのかわり、コピーした部分(セル範囲)を着色するということではどうでしょうか。
ActiveSheet.Paste Destination:=Worksheets(sh_nm(j)).Cells(tate(j), 1) の直下に
セルの塗りつぶしを1行追加するだけいけるはずです。



586 :564:2010/09/08(水) 22:29:04
>>584
詳しい説明ありがとうございます。
わからないところがありますので教えてください。
コース判定のケースをふやす、についてですが
Case 3 −−−−−−B列、C列にだけデータがあった
  j = 1 −−−−−-Aコース(添字:1に対応)
Case 7 −−−−−−B列、C列、D列にだけデータがあった
  j = 2 −−−−−-Bコース(添字:2に対応)
Case 15 −−−−−−B列、C列、D列、E列にだけデータがあった
  j = 3 −−−−−-Cコース(添字:3に対応)
のケース3、ケース7、ケース15の3,7,15の数字はそれぞれ何を意味しているのでしょうか?
ケースをふやす場合この数字はどのように付番していけばいいのでしょうか??
5のコピペする範囲を増やすやり方も教えてください。

>そのかわり、コピーした部分(セル範囲)を着色するということではどうでしょうか。
そのアイデアすごくいいです!!よろしくお願いいたします!!


587 :564:2010/09/08(水) 22:31:54
すみませんっ!
>2 配列変数の要素を増やす(併せて初期設定のループ回数を増やす)
これもわからなかったです。質問ばかりで恐縮ですが
よろしくお願いいたします。

588 :名無しさん@そうだ選挙にいこう:2010/09/08(水) 22:58:07
>>586
1と2と4と8のすべての組み合わせで足し算してみ。
1+2=3
1+4=5
1+8=9
2+4=6
2+8=10
4+8=16

全部答えが別になってるでしょ。同じ数字は絶対に出て来ない。
合計値を見るだけでどの組み合わせか確実に判断出来るんだよ。
もちろんひとつだけの時もその数字で分かるし、全くひとつも満たしてなくてもそれは0で判定できる。
そのためには、組み合わせ元が2倍数じゃないといけないってだけ。じゃなきゃ他と被るからね。

589 :複乳:2010/09/08(水) 23:11:43
>>582
↓。C列とD列に書き込むから注意。
本当は配列に書きこむのが一番早いと思うが描画と計算止めれば似たようなもんだろう
Sub unko()
Application.ScreenUpdating = Flase 'Stop drawing
Application.Calculation = xlManual 'Stop caluclating
Dim tmp() As String

gyo = Range("B65535").End(xlUp).Row
n = 1
For i = 1 To gyo
tmp = Split(Cells(i, 2), "/")
kazu = UBound(tmp)
Range(Cells(n, 3), Cells(n + kazu, 3)).Value = Cells(i, 1).Value
'配列をセルに転記する方法がわからなくなった。悲しい。
'Range(Cells(n, 4), Cells(n + kazu, 4)).Value = tmp

For k = 0 To kazu
Cells(n + k, 4).Value = tmp(k)
Next

n = n + kazu + 1
Next

Application.Calculation = xlAutomatic 'Start Caluclating
Application.ScreenUpdating = True 'Start drawing
End Sub

590 :569,576:2010/09/08(水) 23:16:22
>586
3,7,15・・は何を意味するか?の件
2進数の考え方の応用です。左の列から重みを1,2,4,8,16,32,64,128・・・と倍にして、
各列のデータの有無に応じて「重みの数字」か「0」を加算していくと、各列の有無のパターンが数字になるわけです。
>564の質問の場合は4列で判定ということで、
BCDE
1100→1+2+0+0=3
1110→1+2+4+0=7
1111→1+2+4+8=15
※通常の2進数では右側から重みが増えます。2進数0001は10進数の1というふうに。

コピペ範囲を増やす件
.Range(Cells(tate(0), 1), Cells(tate(0), 5)).Copy の 5 はコピー範囲の右端の列番号(E列なので5)を示す。
あとはおわかりですね。
※ActiveSheet.Paste Destination:=Worksheets(sh_nm(j)).Cells(tate(j), 1) は変更不要です。

配列変数の要素を増やす件
ア Dim sh_nm(3) As String, tate(3) As Long, cnt(3) As Long の 3 を 必要に応じて増やす
イ For i = 0 To 3 の 3 を必要に応じて増やす(アと同数であること)
ウ MsgBox ("入力:" & cnt(0) & "件" & Chr(10) & "A:" & cnt(1) & "件" & Chr(10) _
 & "B:" & cnt(2) & "件" & Chr(10) & "C:" & cnt(3) & "件" & Chr(10))  の部分で (1)、(2)、(3) と
増えている部分に注目してください。

コピー元部分を着色する件 は、何色にしたいか?の回答を受けてからにします。

591 :564:2010/09/08(水) 23:35:58
>>588>>590
わかりやすい説明ありがとうございます。
じっくり読んで理解に努めます!

着色は肌色みたいな薄いオレンジ色がありましたよね??
それでお願いします。

592 :579:2010/09/09(木) 00:26:09
>>580>>583
レスありがとうございました。
多分>>583さんの仰る通りだと思います。
D列は万円単位で丸まった形で表記していたように記憶しています。
明日職場でもう一度D列の内容を確認してみます。

>>580さん
遅レスすみませんでした。
A列:契約番号(Max5桁の数字)
B列:取り出したい契約番号(Max5桁の数字)
C列:通貨("円"、"US$"等)
D列:金額(書式設定でXX万円、とかしていたかもしれません。)

尚、例で挙げた通貨が2つある場合は、
円とUS$で個別にデータがあるような状態です。
3という契約番号のデータが2つ有って、片方にUS$ 1,000、もう片方に
円 10万円(こういう表記だったかな)というように記載されています。

593 :名無しさん@そうだ選挙にいこう:2010/09/09(木) 10:14:10
通貨は”等”が入っているということはUS$だけじゃないのですね。
他の通貨の場合も考慮したほうがいいんだろうね。
レートとかは無視して良いの?

594 :名無しさん@そうだ選挙にいこう:2010/09/09(木) 10:22:09
通貨ごとに合計じゃな

595 :569,590:2010/09/09(木) 10:55:31
>564,591
複写元セル範囲を着色する件です。コース別に色分けするようにしてみました。
1 変数の追加
 Dim sh_nm(3) As String, tate(3) As Long, cnt(3) As Long, 色(3) As Integer, i As Integer, j As Integer
 追加した部分は 色(3) As Integer, です。

2 色を指定する数字の初期設定
 sh_nm(1) = "Sheet2": 色(1) = 19 '追加した部分は : 色(1) = 19 以下省略します
 sh_nm(2) = "Sheet3": 色(2) = 27 '色の番号と実際の色の対応は
 sh_nm(3) = "Sheet4": 色(3) = 34 ' http://www.relief.jp/itnote/archives/000482.php を参照ください。

3 セル着色の部分
 ActiveSheet.Paste Destination:=Worksheets(sh_nm(j)).Cells(tate(j), 1) の下に
 .Range(Cells(tate(0), 1), Cells(tate(0), 5)).Interior.ColorIndex = 色(j) を追加します。
 もし、コース別の着色はいらない、単一色でいいということであれば、上記1、2は不要で、
 3 の 色(j) の部分を 19 など直接、数字を指定します。
 どちらにしろ、セル範囲の右端の列を示す数字 5 は、>590の「コピペ範囲を増やす件」と同じ扱いになります。

4 おまけ 処理終了時のMsgboxの中をわかりやすいように書き直すと・・・
 MsgBox ("入力:" & cnt(0) & "件" & Chr(10) _
       & "A:" & cnt(1) & "件" & Chr(10) _
       & "B:" & cnt(2) & "件" & Chr(10) _
       & "C:" & cnt(3) & "件")
 これでコースを増やすときにわかりやすくなったと思います。


596 :579:2010/09/09(木) 13:25:15
>>593>>594

レートは無視して大丈夫です。

通貨は円、US$以外にもユーロだとか色々有ります。

案件番号ごと(さらに複数通貨がある場合は通貨毎)に合計を出したい、というのが
目的です。

ちなみに、D列なんですが普通に数字が入っていました…。
書式設定はされていないです。

597 :名無しさん@そうだ選挙にいこう:2010/09/09(木) 13:36:35
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 数値 マイナス 自動 変換

セルの書式のユーザー設定の仕方を教えてください。
オートサムのみを使うような単純な計算の表なのですが・・・
数字を打ち込んだ際 その数字が出金であることが分かりやすいように、−or▲の印を打ち込んだ数字の前に
自動で表示したいのですが、表示形式のユーザー設定の所への打ち込み方を教えていただけますか?

598 :名無しさん@そうだ選挙にいこう:2010/09/09(木) 13:49:30
>>597
数字は正の数を入力するけれど、表示は▲をつけたい、ということ?

ユーザー定義に
▲G/標準
だけでいいと思うけれど、0は0のまま、というなら

▲G/標準;-G/標準;0
とかね。

599 :名無しさん@そうだ選挙にいこう:2010/09/09(木) 14:33:00
できました。 ありがとうございました。
邪道な使い方なんですが、会社の子のこだわりがあるらしく・・・
喜んでいました。 ありがとうございました。

600 :名無しさん@そうだ選挙にいこう:2010/09/09(木) 14:40:10
=IF(A6+B6>0,C5+A6-B6,"")の関数について

最後の””は、空白って意味と捉えていいのでしょうか?
手探りで、必要なことから覚えていっています。
収支表を打っていてこの関数にぶつかったのですが、
次回 自分で作る場合をふまえ疑問がわきましたので、
よろしくお願いいたします。

601 :名無しさん@そうだ選挙にいこう:2010/09/09(木) 14:43:16
>>600
合ってる

602 :名無しさん@そうだ選挙にいこう:2010/09/09(木) 14:43:18
>>600
「ヌルストリング」です空白(スペース)とはちゃんと区別した方がいいですよ

603 :名無しさん@そうだ選挙にいこう:2010/09/09(木) 14:55:12
600です
外に出なくてはいけなくなりました。
明日、来させていただきますので、どなたかよろしくお願いいたします。

604 :名無しさん@そうだ選挙にいこう:2010/09/09(木) 14:57:45
すみません。
リロードせずに書き込んでしまいました。
ヌルストロング・・・っていうのが、読み方ですか?
偽の場合 セルには何も書き込まないって指示の場合に使えばいい〜との解釈でいいでしょうか?

605 :名無しさん@そうだ選挙にいこう:2010/09/09(木) 15:06:00
>>604
ストロングじゃなくてストリング。ストリングってのは文字列のこと。
で、頭にヌルを付けると文字数が0って意味になる

あと厳密に言うとセルに何も入っていないのとは違う

606 :名無しさん@そうだ選挙にいこう:2010/09/09(木) 16:05:16
>>605
んな難しい単語出さなくていいでしょw
あとヌルストリングってなにを指して言ってるの?
vbNullString定数の事ならそう言ってあげて。正確な単語教えないと意味ないよ?
VB言語的には表向き隠されてる存在だし。

>>604
値としては""と同じだから普段気にしなくていい。そういうのがあるらしい、くらいでいいよ。
めったに使わないし、ごくまれにAPI使う際に必要なだけだから。
気になったら以下でも見てみ。
ttp://d.hatena.ne.jp/chaichanPaPa/20070223/1172232817
(VB6向けの記事だけど、VBAでも同じ)

607 :名無しさん@そうだ選挙にいこう:2010/09/10(金) 00:29:52
ヌルストロング

とても意味深ないい名前だね w

608 :564:2010/09/10(金) 00:30:50
>>569さん
こんばんわ。
お返事遅くなってすいません。
現在、569さんが書いてくれたものを読みつつエクセルで作業しつつ
頑張っていますが、なかなかうまくいきません。

 ActiveSheet.Paste Destination:=Worksheets(sh_nm(j)).Cells(tate(j), 1)
の文の下に>>595の1から3までの文を付け加えればいいのですよね??
(コースごとに着色分けしたいです)
もう少し頑張ってみます!!

609 :569,590:2010/09/10(金) 00:34:40
>564,608
違いますよ! 
ActiveSheet.Paste Destination:=Worksheets(sh_nm(j)).Cells(tate(j), 1) の下に追加するのは
.Range(Cells(tate(0), 1), Cells(tate(0), 5)).Interior.ColorIndex = 色(j) だけです。

1 と 2 は、それぞれ、元ソースを修正するだけです。行の追加はありません。


610 :569,590:2010/09/10(金) 00:47:51
>564,608
Option Explicit の行を1行目とすると、コピペ範囲の着色に関する修正箇所は
2行目、9〜11行目、それに>609で示した内容です。(コース追加をしてない状態にて)


611 :564:2010/09/10(金) 00:59:10
>>609
勘違い修正ありがとうございます。お恥ずかしい!
そして、できました!!すごい、これ本当に本当にすごい!!!
実際にこのマクロを適用したい表はコースがたくさんあるとても大きな表です。
だから、569さんに作っていただいたものをもとに頑張って編集をすることになります。
初心者なのでここからがまた時間がかかって大変そうですが、
勉強にもなると思うのでじっくりと取り組みたいと思います。

長々とおつきあいいただいて本当にありがとうございました。
感謝感謝です。
また何かありましたら顔をだしますので、(何かなくても
勉強のために読んでますが)そのときはまたよろしくお願いいたします。

612 :569,590:2010/09/10(金) 01:02:29
>611  よかった(ほっ)
コースの追加もがんばってください。わからないところがあったら、また尋ねてください。

613 :564:2010/09/10(金) 01:24:41
>>612
569さん、親切にありがとうございます。
おそらく、コースを追加していくうえでつまづくと思いますので
近いうちにまた登場してお世話になることと思います。
なので564のことを頭の片隅にでもおいて覚えておいていただけると
再度登場したときに助かります。

それにしてもVBAというのはすごいものですね。
569さんのすごさにすっかり感心してしまったと同時に
自分もVBAを習得してみたいと思いましたので、
今週末はVBAの初歩の本を探しに行くことにしました。
目標は
自分も569さんのように、ここで困っている人にアドバイスできるようになること!
(遠い道ですが・・・)です。


614 :569,590:2010/09/10(金) 01:28:33
>611  まだ見てくれるかどうかわからないけど、念のため

>実際にこのマクロを適用したい表はコースがたくさんあるとても大きな表です
コース判定項目が15個まではたぶん大丈夫と思いますが、16個以上あるときは
Dim sh_nm(3) As String, tate(3) As Long, cnt(3) As Long, i As Integer, j As Integer のうち、
i As Integer の部分を i As Long に変える必要があります。
1+2+4+・・・・で16個になると Integer で扱える数の上限(32,767)を超えるためです。
Long だと 2,147,483,647(21億!)までいけます。

615 :564:2010/09/10(金) 01:35:22
>>614
15個以上あるんです(汗)
上記アドバイスを早々にいただけて良かったです!


616 :名無しさん@そうだ選挙にいこう:2010/09/10(金) 10:42:48
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

電力メータの値が記録されたデータがあり、前回と現在の差を求めたい。
データは整数、少数(第一位、第二位)があります。
電力メータはカウントアップすると0に戻ります。(...99998,99999,0,1...)

次のようなデータのときの差はどのように計算すればよろしいでしょうか?
カウントアップした場合の計算がうまくできません。
「3日-2日+カウントアップ値」としたのですが、Aであれば1、Bであれば0.1足りません。

   A     B
1日 99996   9999.1
2日 99999   9999.8
3日   2     0.5
4日   5     1.2
5日   8     1.9
Aの差は、3
Bの差は、0.7

617 :名無しさん@そうだ選挙にいこう:2010/09/10(金) 10:57:33
>>616
0=100000なんだから100000足します

618 :複乳:2010/09/10(金) 11:11:24
>>616
Bが少なかったら100000足してそっからA引く
D2=IF(C2<B2,C2+100000,C2)-B2


619 :616:2010/09/10(金) 11:51:23
>>617-618
カウントアップする値を99999で見ていたのが悪かったのですね。
早速の回答ありがとうございました。

Aの場合、100000を足す。
Bの場合、10000を足す。
で解決しました。

620 :569,590:2010/09/10(金) 13:17:56
>564,611
ずいぶん大きな表ですね。具体的に、コース判定に必要な項目(列)はいくつあるんですか?
変数jを Long にしても判定に使える列は31個までになると思います。(未確認ですが)

それと、参考までにこういうときに間違えないようにするための資料をアプロダにupしたので見てください。
こんな感じ↓の表を作るとわかりやすいと思います。
ttp://upload.jpn.ph/upload/img/u66413.png パスワードはありません
赤い○印は、判定に使用しない列をとばしているのを示しただけです。

なお、今日以降、深夜帯に出没できなくなりますので、あしからず。

621 :417:2010/09/10(金) 16:00:52
いろいろ検索したりしてマクロを組んでみたのですが
どうも1行ずつ処理をしているようで恐ろしい時間がかかってしまいます
テキストファイルの全体やセルの範囲全体を一括で処理はできないでしょうか?
なお今現在のマクロは下記のようになっています

Sub Text2txt()
Const cnsTITLE = "TXTファイル読み込み処理"
Const cnsFILTER = "TXTファイル (*.txt),*.txt"
Dim xlAPP As Application
Dim intFF As Integer
Dim strFILENAME As String
Dim strREC As String
Dim GYO As Long
Dim lngREC As Long
Set xlAPP = Application
xlAPP.StatusBar = "読み込むファイル名を指定して下さい。"
strFILENAME = xlAPP.GetOpenFilename(FileFilter:=cnsFILTER, _
Title:=cnsTITLE)
If StrConv(strFILENAME, vbUpperCase) = "FALSE" Then Exit Sub
intFF = FreeFile
Open strFILENAME For Input As #intFF
GYO = 0
Do Until EOF(intFF)
lngREC = lngREC + 1
xlAPP.StatusBar = "読み込み中です....(" & lngREC & "レコード
目)"
Line Input #intFF, strREC
GYO = GYO + 1
Cells(GYO, 2).Value = strREC
Loop
Close #intFF
xlAPP.StatusBar = False

622 :417:2010/09/10(金) 16:01:55
strFILENAME = Replace(strFILENAME, ".txt", "2.txt")
Dim intFF2 As Integer
Dim strREC2 As String
Dim GYO2 As Long
Dim GYOMAX2 As Long
GYOMAX2 = Range("C65536").End(xlUp).Row
intFF2 = FreeFile
Open ThisWorkbook.Path & strFILENAME For Output As #intFF2
GYO2 = 1
Do Until GYO2 > GYOMAX2
strREC2 = Cells(GYO2, 3).Value
Print #intFF2, strREC2
GYO2 = GYO2 + 1
Loop
Close #intFF2
End Sub


623 :名無しさん@そうだ選挙にいこう:2010/09/10(金) 19:44:01
>621
自分自身はファイルの入出力処理はほとんど扱ったことがありませんが、バイナリ処理だといっぺんにできるようです。
ただ、いっぺんに読み込んだ後どうするのかは見当もつきませんが。

バイナリファイルの入出力@Excelマクロ・VBAのお勉強
ttp://www.cocoaliz.com/excelVBA/index/47/

下はその該当部分です。
'バイナリファイル読み込み
Open inputFileName For Binary As #inputFn
'ファイルの長さで配列を初期化
ReDim buffer(LOF(inputFn))
'ファイルをバイナリで読み込んでByte配列に格納
Get #inputFn, , buffer
Close #inputFn

624 :名無しさん@そうだ選挙にいこう:2010/09/10(金) 23:05:38
質問です。
雑誌の発売日リストを作成中なのですが、日付の表記で困っています。
最終的には、発売日順に並べられるようにしたいと考えています。
以下の3種類の日付がある時、表記はどのようにすべきでしょうか?

A 2010年2月
B 2010年8月20・27日合併号
C 2010年1月17日

ためしにそれぞれこのように入力しました。
A 2010/2/
B 2010/8/20・27
C 2010/1/17
これで昇順・降順で並び替えると、まずCの表記になってるものが全部上に来て
その中で古い日付から並び、その下にAとBの表記のもので日付順に古いほうから並ぶといった感じになってしまいます。
どうすればいいでしょうか?

よろしくお願いします。

【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 日付 並べ替え フォーマット

625 :名無しさん@そうだ選挙にいこう:2010/09/10(金) 23:15:38
>>624
ABは文字列と認識される。日付(シリアル値)と認識されるのはCだけ。
以上を踏まえて、列をすべて文字列にする。
注意点としては1月10月11月12月2月という風にソートされるので、
月や日にちは必ず2桁表示にする(01月とか)。

626 :名無しさん@そうだ選挙にいこう:2010/09/10(金) 23:17:51
>624
発売日って「当該書籍が店頭に並んだ日」を示すんじゃないの?

それはおいといて、○年○月号、○月○日号、○月○・△日合併号のことなら、
セルの書式を文字列にしておいて、西暦年4桁/月を2桁/日を2桁(合併号なら2桁・2桁合併号)
みたいに様式を揃えておけば希望の順に並ぶと思うけど。


627 :624:2010/09/10(金) 23:41:24
>>625-626
文字列にしたところ、Cの形式で記述したものが数字になってしまうのですが、どうすればいいでしょうか?
たとえば2010/1/17と入力したものは 40195 になってしまいます。


>>626
>発売日って「当該書籍が店頭に並んだ日」を示すんじゃないの?

たしかにその通りですね。よく気づきましたね

628 :名無しさん@そうだ選挙にいこう:2010/09/10(金) 23:50:10
>>627
打ち直し。もしくは違う列に関数(TEXTあたり)で日付を文字列に変換。

629 :624:2010/09/10(金) 23:53:44
>>628
わかりました。風呂入ったあとにちょっと頑張ってみます。

>>625-626>>628のみなさん、ありがとうございました。

630 :564:2010/09/11(土) 01:20:47
>>620
659さん、こんばんわ。
コース判定に必要な列は・・・、月曜に会社に行って調べてみます。
(会社で使用している表なので)
コース自体はかなりたくさんあるのですが、よく使用しているコースは
4から5コース程度というところです。
ですので、すべてのコースを作成するにあたり、列を31以上使用してしまうようなら
本当によく使うコースだけの設定も考えてみます。

表のうpありがとうございます!!
なるほど、重みというのは判定の材料なわけですね。
暗号のようなVBAの記述が、こうして説明してもらえるとすごく判りやすく
これから自分で編集をおこなっていくうえで、作業がはかどります。
意味が少しでも分かっていると、作成の上での間違いも防ぐことができますし、
また間違いをみつけることもできますね。




631 :名無しさん@そうだ選挙にいこう:2010/09/11(土) 08:32:33
>>630
んなものフィルタオプションで充分。
記録マクロを少しいじくったVBAでもいいだろう。

名前\検査項目  身長  体重  視力 腹囲
山田 花子       150   50
鈴木 太郎       170   65
佐藤 次郎       175   80   1.5
白鳥 麗子       165   55   0.5  70

このような表にしておいてフィルタオプションの検索条件範囲がH1:H2とすると、Aコースなら
H1:
H2: =CCOUNT(D2:E2)=0
この検索条件で抽出すればよい。
BコースならH2は=COUNT(D2:E2)=1、Cコースは=COUNT(D2:E2)=0だ。
コースが増えたらAND使うなどして適宜工夫汁

632 :名無しさん@そうだ選挙にいこう:2010/09/11(土) 09:31:11
なんだコースがいっぱいあるみたいだな。
ならビット演算か


633 :564:2010/09/11(土) 10:04:16
>>631
フィルタオプションはコースごとの検索条件を登録し
保存しておくことは可能でしょうか??
それとも検索のたびに条件等を入力でしょうか??

>>632
ビット演算、はじめて聞きました。
どんなものか調べて検討してみます。

631さん632さんのアイデアを調べて試して、また夜中に質問に
くるかと思いますのでよろしくお願いいたします。

634 :569,590:2010/09/11(土) 12:07:12
>564,633
別の判定方法を考えるときの資料をアプロダにupしました。
ttp://upload.jpn.ph/upload/img/u66449.png パスワードなし
>564 で示された
>身長+体重…Aコース
>身長+体重+視力…Bコース
>身長+体重+視力+腹囲…Cコース
>とコース設定があるとして、
をそのまま条件にしたのが>569〜のマクロでした。もし、条件の書き方が
・腹囲にデータがあればCコース
・上記以外で 視力にデータがあればBコース
・上記以外で 体重にデータがあればAコース
ということであれば、項目毎の重みをどうこうするまでもなく、より簡単になります。

ただし、以下のような組み合わせによってコースが変わるということであれば、今回の方法では判断できません。
まずは資料を見て、わからなければたずねてください。

B C D E F
○○      Aコース
○○○    Bコース
○○○○○ Cコース
○○  ○○ Dコース(今回の処理ではCコースと判定してしまいます)


635 :名無しさん@そうだ選挙にいこう:2010/09/11(土) 19:51:07
Sub Macro1()
For a = 1 To 11
snum = Sheets(2).Cells(a, 1)
For b = 1 To 16 'ここはSheet1でデータが入力されてる行数
If snum = Sheets(1).Cells(b, 1) Then
Sheets(2).Cells(a, 2).Value = Sheets(1).Cells(b, 2)
Sheets(2).Cells(a, 3).Value = Sheets(1).Cells(b, 3)
Sheets(2).Cells(a, 4).Value = Sheets(1).Cells(b, 4)
If Sheets(2).Cells(a, 2).Value = "" Then
Sheets(2).Cells(a, 2).Value = "存在しない"
End If
Exit For
End If
Next
Next
End Sub
sheet1のデータからsheet2にデータを抽出してるのですが
sheet1にデータが存在しない時は存在しないとしたいのですが
If Sheets(2).Cells(a, 2).Value = "" Then
Sheets(2).Cells(a, 2).Value = "存在しない"
の部分が巧く行きません…
宜しければ教えていただけませんか?


636 :635:2010/09/11(土) 20:19:50
申し訳ありません自己解決しました…

637 :564:2010/09/12(日) 01:05:08
こんばんわ。
>>631
>フィルタオプションの検索条件範囲がH1:H2
H1:
H2: =CCOUNT(D2:E2)=0
これらをフィルタオプションの設定ダイアログに入力すればいいのですか??
具体的にどのように設定すればいいのかよく判らずうまくいきませんでした(汗
詳しくご教授いただければ幸いです。
>>632
ビット演算、調べてみましたがとても難しいですね・・・。
ビット演算というのを使用して、自分がエクセルでやりたいことをするには
まずどうしたらいいのかも判らなかったです。
せっかくいただいているアイデアなのに、活かす方法を思い付けずにすみません。
ありがとうございます。
>>634
よく使う4から5個のコースは、
基本コース(Aコース)+検査項目1ならBコース、
基本コース+検査項目1+検査項目2ならCコース、
という風に順繰りになっているので634で示していただいた重みをつけない方法が適用できそうです!
ただ、その他のコースについては、順繰りではなくいろんな組合せがあるので
やっぱり重みをつけるほうを採用にしたほうがいいのかなぁと思うのですが、
よく使うコース以外は、実はそんなに出てこないんです。
試しに重みをつけないほうでやってみて、こちらの方法でほぼすべての人たちを
コースごとに拾い上げることが出来るなら、634の方法で表の管理をしていきたいと思います!!
それと、資料のうpありがとうございます。文章だけでなくこうやって具体的に
見ることができるととても判り易く助かっています。
うpして頂いた資料はプリントスクリーンでエクセルに張り付けて
いつでもすぐに見ることができるように保存しています。




638 :569,590:2010/09/12(日) 08:18:45
>564,637
ふたつの方法を組み合わせて判定することもできます。資料はしばらくお待ちください。
例えば、先に右半分の8項目を>569の方法で計算し、右半分の重みの合計が 0 のとき、左半分の8項目を>634の方法で判定する、などということも可能です。

>うpして頂いた資料はプリントスクリーンでエクセルに張り付けて
564さんがお使いのPCの画面サイズ(ドット数)が何なのかわかりませんが、画面をはみ出すような画像の場合、画面キャプチャで保存するのは手間がかかります。
ブラウザ(InternetExplorer や FireFoxなど)で画像を表示させ、右クリックすると「この画像をファイル名を付けて保存」というメニューがでるはずです。
2chを専用ブラウザで見ていれば、urlを右クリックで「対象をファイルに保存」がでます。(当方、ギコナビを使用してます)



639 :569,590:2010/09/12(日) 12:01:02
>564,637 資料です。
ttp://upload.jpn.ph/upload/img/u66509.png

640 :564:2010/09/13(月) 23:42:37
>>638
こんばんわ。
本日、会社使用している表を確認してきました。
検査項目じたいはたくさんあるのですが、コース判定に必要な列は20列ほどで、
試しに3コースほどのものでどれほどの人を拾い上げられるかためしたところ
だいたいのひとをシートに振り分けることが可能でした。
ただ、上司の意見としては、すべてのコースを作成してほしいみたいです。

たびたびの質問で恐縮なのですが、検査項目の数値が低いまたは高いひとに
ついては数値の左にLかHというアルファベットがつきます。
ところが数値の右側にもLorHを付ける場合があり、会社のなかでは
右につけるか左につけるかで、意味合いを区別しています。
たとえば「4L」「L4」、「1.5H」「H1.5」など。
アルファベットが右側についている人だけを簡単に検索できる方法はないでしょうか??
もしわかれば教えてください。

それと、頂いている画像の保存方法のアドバイスありがとうございます。
「この画像をファイル名を付けて保存」で保存しましたところ、
プリントスクリーンで張り付けるよりも、余計な画像がはいらないので
すっきりしてみやすくてとてもいいですね!


641 :複乳:2010/09/14(火) 00:32:27
>>640
横レスだが
LやHの意味次第で大幅に変わるので、意味を教えてもらわないとどうにもならない

例えば「4L」「L4」の"L"がLowとして、0.1とする
それぞれ-と+として「3.9」「4.1」のようになるなら作業列が必要ですし、+-が逆なら
「4.1」「3.9」になる
詳しい仕様がわからないとなんにもできないし、
全部の文字の意味を教えてもらわないとなんともできない



642 :564:2010/09/14(火) 01:02:54
>>641
LまたはHが左側についているひとについては、
単純に「基準値よりも低め」または「基準値よりも高め」の"目安"として
アルファベットをつけています。
右にアルファベットがつく人は「未満」とか「以下」とかを表していて
「4L」でしたら、4未満または4以下であり、
詳しい数字として3.9とか2だとか、そういう表記はしないのですけど、
「未満」なんだな、「以上」なんだな、というのは判るようにしています。

説明があまりうまくできないのですが、判っていただけたでしょうか??



643 :名無しさん@そうだ選挙にいこう:2010/09/14(火) 01:05:20
アルファベットが右に付いているかどうか判定するだけの式
=AND("A"<=RIGHT(A1),RIGHT(A1)<="Z")

644 :564:2010/09/14(火) 01:11:06
一定の数値を下回る、または上回るばあいに右にアルファベットをつけます。
たとえば体重で例をとると、30キロ以下は表の上ではすべて30キロで表記して、
「30L」という書き方をします。29キロであっても、25キロであっても
30キロをしたまわる場合は「30L」です。
それにたいして、ちょっと体重低めだな、というときに
基準値より低めの目安である、「左にアルファベット」をつけます。
35キロのひとは体重低めなので「L35」というふうにします。

645 :名無しさん@そうだ選挙にいこう:2010/09/14(火) 02:14:25
>>644
パソコンでは「ちょっと低い」というのは処理も表現もできません。
「40キロより軽い」のように具体的な数字が必ず必要です。

646 :名無しさん@そうだ選挙にいこう:2010/09/14(火) 11:28:54
ちょっと想定外の質問かもしれませんが
Excel2002の時のヘルプはとても使いやすかったのに
Excel2003にしたらヘルプが全く!使い物にならなくなってしまいました
2002のヘルプだけ取っておくというか、残しておくというか
ヘルプだけを単品で使うことはできませんか?

647 :名無しさん@そうだ選挙にいこう:2010/09/14(火) 11:33:53
複乳さんこんにちは
いつもいらっしゃいますが働いてないのですね?
どうやって生活費を稼いでいるかわたしにも教えてくれませんか?

648 :複乳:2010/09/14(火) 12:56:28
>>646
C:\Program Files\Microsoft Office\Office\XLMAIN9.CHM
が2000のヘルプ。.chmで検索すればいいとおもう。名前は少し違うかもしれない
>>647
>>468。働いてるっていうか今も仕事中です

649 :647:2010/09/14(火) 13:03:42
>>648
あなたはニセモノですね
ズバリそうでしょう
本物の複乳さんとしゃべりかたが全然ちがうやん
それに本物の中の人はいつもsageてるし

650 :複乳:2010/09/14(火) 13:29:55
>>649
続きは雑談スレいってやりましょう

651 :複乳:2010/09/14(火) 13:47:48
>>650
それどこ?

652 :名無しさん@そうだ選挙にいこう:2010/09/14(火) 15:10:32
>>651
>>650じゃないが、↓ココだよ。

【質問不可】Excel総合相談所スレの雑談・議論スレ2
ttp://hibari.2ch.net/test/read.cgi/bsoft/1151651536/l50

653 :569,638:2010/09/14(火) 20:04:51
>564,640
>アルファベットが右側についている人だけを簡単に検索できる方法はないでしょうか

これまでのコース判定ではなく、あくまでも検索ということであれば、Excelの基本機能で可能です。
前提条件としては、データの先頭or末尾にあるのが"H"もしくは"L"だけとします。
(1バイト、2バイトの違いはダメですが大文字、小文字は同じものとしてみてくれるようです)

Excelのオートフィルタ−フィルタオプションで条件が2個設定できるので、これを使用します。
例によってアプロダにupしたので参照ください。厳密には検索ではなくフィルタによる抽出ではありますが。
ttp://upload.jpn.ph/upload/img/u66772.png
上半分の図が"H"or"L"で始まるもの、下半分が今回おたずねの"H"or"L"が末尾にくるものです。
抽出条件の指定の左側の欄に、直接"H"と"L"を入力してください。右側は▼をクリックすると一覧から選べます。

もし、文字通り、アルファベットで検索したいということであれば、>643さんの式を作業列に入れて
"TRUE"でフィルタをかければいいです。(この方法だと1バイト、2バイトの区別なく判定してくれます)

654 :569,638:2010/09/14(火) 20:12:52
>644 を見て、ちょっと疑問が生じました。

そもそもの話、コース分けをしたい元データは、Excelブックの形であなたのところに回ってくるのですか?
そのとき、先頭が"H"もしくは"L"で始まるとか"H"もしくは"L"が末尾になるデータとなっているのですか?
それとも、当該列のデータを見て、あなたが設定する(先頭または末尾に"H"or"L"を付加する)のですか?
今回の(>640の)質問は、設定を自動化したいということですか?(文面を見る限りはそうではないようだけど、念のため)

655 :564:2010/09/15(水) 01:14:37
>>643
レスありがとうございます。ただ、この式をどこに入力するのか判らなくて(汗
569さんが上のレスで教えてくれてますので試してみますね。

>>653
今回の質問はコース判定のこととは切り離して、単純に検索の仕方の質問です。
653の方法だと、検査項目ごとに末尾にHorLがくるのを探すことになるのですね??
贅沢をいえば検査項目ごとではなく表全体から一気に探せると助かるのですが
難しいでしょうか??
それと、643さんの式を作業列にいれてTRUEでフィルタをかけるやり方が
すいません・・・、判らないので教えてください。
>>654
元データはエクセルでまわってきます。その時点ですでに
基準値より高め&低めには先頭にHorL、一定の数値以上や以下には末尾にHorLが
付加された状態です。設定の自動化ではなく、末尾のHorLの数値を
なるべく簡単に検索できる方法をご教授願えればと思いました。

656 :名無しさん@そうだ選挙にいこう:2010/09/15(水) 09:54:31
フィルタのテキストフィルタで末尾がH
じゃ駄目なん?

657 :569,653:2010/09/15(水) 15:12:43
>564,655

>643さんの式を使った例をいつものアプロダにupしました。
ttp://upload.jpn.ph/upload/img/u66866.png

検査値の末尾に"H"or"L"が付加される項目がいくつあっても、作業列をそれぞれ割り当てればいいです。

説明図の説明
上段:まずは個々の項目にそれぞれ作業列を割り当てて計算式を設定、最後にひとつ作業列「作業列のOR」を設け、
   計算式を設定(図でいえばJ2セルの式を参考に)すれば、オートフィルタで「作業列のOR」の項目がTRUE
   になっているデータを抽出できます。
中段:「作業列のOR」の項目の部分をTRUE/FALSEの代わりに"検査値異常!"と表示させたものです。
下段:「作業列のOR」の列は用いず、条件付書式の機能を利用して、先頭の項目である氏名欄を塗りつぶししたり、
   個々の異常値となっている(末尾にアルファベット)セルを塗りつぶして見つけやすくした例です。
   書式を設定するセルは検査値が入っているセルですが、式で参照しているところは作業列のセルです。
   条件付書式は一人目だけに設定し、書式のコピペ機能(ツールバーのハケみたいなの)を利用して残りを
   一度に設定できます。

658 :名無しさん@そうだ選挙にいこう:2010/09/15(水) 19:26:01
一定時間ごとに実行されるマクロを作ろうと思って色々調べました。
その結果、あるサイトで以下のようなソースコードを見つけました。
とりあえず、これを動かして参考にして、自分なりにやってみようと思い、これをそのまま、シート1のマクロにコピペして、
「スタート」マクロを実行しました。しかし、うまくいきません。
「マクロ"Book1!現在時刻"が見つかりません。」というエラーが出るのです。
現在時刻という名前のマクロはあるのに、なぜでしょうか?
すみません、何か分かる方教えてください<(_ _)>
Excel2003です。OSはwindowsXPです。

----------------------------------------------------------
Private flgStop As Boolean

Sub スタート()
flgStop = False
現在時刻
End Sub

Sub 現在時刻()
If flgStop Then End
Application.OnTime Now() + TimeValue("00:00:01"), "現在時刻"
Range("A1").Value = Format(Now, "hh:mm:ss")
End Sub

Sub ストップ()
flgStop = True
End Sub

659 :名無しさん@そうだ選挙にいこう:2010/09/15(水) 19:49:35
現在時刻をスタートの前に書かないとだめなんじゃなかったっけか

660 :658:2010/09/15(水) 20:11:12
>>659
さっそくありがとうございます。

おっしゃるとおりに、順番を入れ替えてみました。
しかし、やはり同様のエラーが出ます。
私も色々試しているのですが、わかりません。

うーん・・・。

661 :名無しさん@そうだ選挙にいこう:2010/09/15(水) 20:21:20
>658
そのマクロは、標準モジュールに書いてください。理由はわかりませんが、当方も同じ環境なので試してみました。
シートに書いたら>658と同じエラー、標準モジュールに書いたらOKでした。(1秒毎に時刻が書き換わる)
止めるためには [Alt]+[F11] でVBE画面を出してから メニューの 実行−中断Ctrl+Break です。


662 :661:2010/09/15(水) 20:29:03
>658,660
理由がわかったような気がします。[Alt]+[F8]でマクロ一覧を出したとき、
シート1に書いたマクロであれば Sheet1.スタート などのように、シート名.が頭に付きます。
標準モジュールに書いたマクロであれば、ダイレクトに スタート となります。

Application.OnTime Now() + TimeValue("00:00:01"), "現在時刻" の意味するところは、
現在時刻から1秒後に マクロ"現在時刻" を実行しなさい なので、見つからなかった、ということです。

ためしに、標準モジュールのマクロ名を変えるか、カット&ペーストでシート1に戻して、
Application.OnTime Now() + TimeValue("00:00:01"), "Sheet1.現在時刻"
に変更して試してみてください。(当方は試してません)

663 :名無しさん@そうだ選挙にいこう:2010/09/15(水) 21:03:50
>>661,662

なるほど、全くおっしゃるとおりのようです。
お陰さまで全て解決しました。
非常に助かりました。

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


664 :564:2010/09/16(木) 01:23:00
こんばんわ。
今日はレスをくれた方々が教えてくれた方法を試す時間がとれませんでした。
また明日来ますね。
いつも親切に教えてくれてありがとう。

665 :名無しさん@そうだ選挙にいこう:2010/09/16(木) 17:09:47
エクセルでスーパーマリオブラザーズが遊べるそうです
http://headlines.yahoo.co.jp/hl?a=20100915-00000310-giz-ent


エクセルでスーパーマリオブラザーズが遊べるそうです(動画)(追記あり)
http://www.gizmodo.jp/2010/09/post_7648.html

666 :名無しさん@そうだ選挙にいこう:2010/09/16(木) 18:10:31
15000行200列くらいのデータの表示形式を”数値”に一括変換したいのですが、
マクロを動かすと落ちてしまいます。
forループでセルすべてに
NumberFormatLocal = "00000 "
としているのですが、処理に無理があるのでしょうか?
PCはXPでメモリは3.5GBほどあります。

667 :名無しさん@そうだ選挙にいこう:2010/09/16(木) 18:18:03
まずは、手作業で表示形式を変更できるかどうか試してみましたか?
手作業の場合は、対象範囲(A1:BZ15000ぐらい?)を選択してからセルの書式設定を
呼び出す手順になるかと思いますが、この方法ではどうでしたか?

同じ事をマクロで(for〜Nextループを使わず)範囲を一括指定してみたらどうですか?

668 :複乳:2010/09/16(木) 19:27:21
>>666
Sub Macro2()
Cells.NumberFormatLocal = "00000"
End Sub
ではどうでしょう

669 :名無しさん@そうだ選挙にいこう:2010/09/16(木) 22:53:14
>>666
もうちょっと詳しく
ていうか、その落ちるコードをコピペして
たぶん単純ミスでメモリを無駄遣してると思う

670 :名無しさん@そうだ選挙にいこう:2010/09/17(金) 00:25:45
ちょっと質問いいですか
MICROSOFT OFFICE購入していないのですが、
ただでエクセルEXCELやるには何か方法ありませんか?

671 :名無しさん@そうだ選挙にいこう:2010/09/17(金) 01:06:10
>>670
体験版を使う
期限が切れたら消して入れ直す

よく似た代用品でもいいのならOOo使う

672 :564:2010/09/17(金) 01:55:00
>>656
それってフィルタオプションの「●●で終わる」ってやつですか??
>>657
これ、面白いですねぇ。
試しに上段の例を参考に、作業列を2つつくってやってみましたが、ほしい情報が早く拾えていい感じでした。
下段の方法が大変気に入りましたので、探し方としてはこれがいいかなぁ。
まだ下段の方法はやってみてないので、明日また勉強がてら試してみますね!

673 :666:2010/09/17(金) 14:25:44
みなさん、ありがとうございます!

>>667
手作業で一括変換できました・・・。
まず試してみるべきでしたね。すみません。

>>668
そのコードでできました!
でも、実は簡略化の為に全セル一括としたのですが、
20列に1列だけ日付があるのです。
それをForで処理すると落ちてしまいます・・・。

>>669
仰る通りだと思います。
初心者なので、どこかに間違いがあると思います。
次のレスにコードをのせます。

674 :666:2010/09/17(金) 14:44:21
1行目にはデータ項目が入っています。
2行目以降が数値データですが、20列に1列だけ日付データがあります。
日付は、2列目、22列目、42列目・・・です。

---- 以下、コード ------

Sub test()
Dim i As Long, j As Integer
Dim MaxRow As Long, MaxCol As Integer

'最終行番、最終列番を取得
MaxRow = Cells(Rows.Count, 2).End(xlUp).Row
MaxCol = Cells(1, Columns.Count).End(xlToLeft).Column

'数値へ変換
Cells(i, j).NumberFormatLocal = "0000 "

'日付へ変換
For j = 2 To MaxCol Step 20
For i = 2 To MaxRow
Cells(i, j).NumberFormatLocal = "yyyy.mm.dd "
Next i
Next j

End Sub

---- ここまで ------

よろしくお願いします。

675 :名無しさん@そうだ選挙にいこう:2010/09/17(金) 14:57:09
>>674
変換の部分をこうすれば落ちなくなるはず
ついでに画面の書き換えを抑止すれば爆速になる

For j = 2 To MaxCol Step 20
  Range(Cells(2, j), Cells(MaxRow, j)).NumberFormatLocal = "yyyy.mm.dd "
Next j

676 :666:2010/09/17(金) 15:19:25
>>675
できました!!!
なるほど、こんなにシンプルに書けるのですね。
画面更新の抑止も大変勉強になりました。
本当にありがとうございました。

677 :名無しさん@そうだ選挙にいこう:2010/09/18(土) 22:06:56
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 「別のファイル」「参照」

マクロについて教えてください。

別のファイル(ブック)のセルを参照する場合、どのように指定したらいいでしょうか。

別のファイルをアクティブウインドウにする方法は、↓の方法でできるのですが、
Windows("ブック名.xls").Activate

そのファイルをアクティブにせず、そのファイルの任意のセルのデータを
参照したいのです。
例えばAというファイルで動かしているマクロで、Aというファイルをアクティブにしたまま
ファイルBのセル(1、1)の数値をファイルAのセルに入れる、といったことがしたいです。
どうやって、セルを指定すればいいでしょうか?

678 :名無しさん@そうだ選挙にいこう:2010/09/18(土) 22:34:45
Range("a1") = Workbooks("book1").Worksheets("sheet1").Range("a1").Value

こういうこと?

679 :677:2010/09/18(土) 23:55:24
>>678
おおお、そういうことです!
どうもありがとうございます。

ただ・・・今ちょっと教えられたことを元に色々やってるのですが、なぜか思ったとおりに動きません。
>>678に書かれた文をまるまるコピペだとうまく行くのですが・・・。ちょっと変えるとエラーがでます。謎です。検証中です。

とりあえず、どうもありがとうございました。

680 :677:2010/09/19(日) 00:11:03

>>678の通り記述してもエラーが出て動かない時があったのですが、その謎がとけました。

book1というファイルで以下のマクロ(>>678の文そのまま)を実行すると何も問題ありません。
Range("a1") = Workbooks("book1").Worksheets("sheet1").Range("a1").Value

ところが、このbook1を名前をつけて保存します。ファイル名は例えば「jikken」とします。
で、ファイル名が変わったので、マクロの記述も以下のように書き換えます。
Range("a1") = Workbooks("jikken").Worksheets("sheet1").Range("a1").Value
                 ↑↑ここが変更された箇所。

これなら、当然エラーがなく動くはずです。ファイル名にあわせてマクロの記述も変えているからです。しかし、こうなったとたん、エラーが出ます。
これが謎でした。
そこで、以下のように書き換えました。
Range("a1") = Workbooks("jikken.xls").Worksheets("sheet1").Range("a1").Value
                     ↑↑ここが変更された箇所。

つまり、拡張子も記述したのです。
こうするとエラーが出ず、正常に動きます。
これが全く謎なのです。

最初は、拡張子なしでも、エラーが出ないのに、ファイル名を変えてを保存し、新たにそのファイルでマクロを実行したとたん、
なぜか拡張子なしだとエラーが出ます。
これは全く謎です。

もっとも、拡張子をつければ問題なく動くので、一応自己解決でこれ以上粘着するつもりもないのですが、
しかし、名前をつけて保存すると、今まで動いていたものが、動かなくなるというのも不思議ですね。


681 :名無しさん@そうだ選挙にいこう:2010/09/19(日) 02:17:57
【1 OSの種類         .】 WindowsXP SP2
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 できれば否
【5 検索キーワード     】 IF関数・LEFT関数・RIGHT関数・文字列操作

6なら6、
15なら1+5=6、
38だったら3+8=11→1+1=2というように足して一桁にしたいのですが、
=IF(IF(F35>10,LEFT(F35)+RIGHT(F35),LEFT(F35)+RIGHT(F35)),IF(F35<=10,LEFT(F35)))
と入力したところ数値によりエラーが出てしまいます。どこがおかしいのでしょうか?
よろしくおねがいします。

682 :名無しさん@そうだ選挙にいこう:2010/09/19(日) 03:10:53
=IF(F3>10,LEFT(F3)+RIGHT(F3),LEFT(F3))

683 :名無しさん@そうだ選挙にいこう:2010/09/19(日) 06:25:49
教えてください
エクセルで使用します
『日付』というボタンを作りたいです
そのボタンをクリックしたら、本日の日付、もしくは前後1週間の日付をプルダウンで選べるようにしたいのです
マクロというのを使うみたいですが、そのボタンの作り方が分かりません
教えてくださいm(__)m

684 :名無しさん@そうだ選挙にいこう:2010/09/19(日) 07:19:03
>>683
難しいことを考えなくても、作業列をどっかにつくって、=today()-1,とか、=today()+1とかを作っておいて
それを参照するようにすればいいんじゃね?

685 :名無しさん@そうだ選挙にいこう:2010/09/19(日) 07:49:03
>>682-683
最大2文字なら
=IF(F35>10,LEFT(F35,1)+RIGHT(F35,1),F3)じゃないの?

686 :名無しさん@そうだ選挙にいこう:2010/09/19(日) 07:51:08
すまん、,1は要らないみたいだな


687 :名無しさん@そうだ選挙にいこう:2010/09/19(日) 07:57:48
>>681
何桁が最大化知らないけど、
=SUMPRODUCT(MID(F35&REPT(0,10),ROW(A1:A10),1)*1)
こんな感じで出来るよ

688 :名無しさん@そうだ選挙にいこう:2010/09/19(日) 07:59:57
2桁が最大なら

=MID(F35&"0",1,1)*1+MID(F35&"0",2,1)*1
こんな感じ

689 :名無しさん@そうだ選挙にいこう:2010/09/19(日) 08:28:16
>>684
試してみます
ありがとうございましたm(__)m
また分からない時はおしえてください

690 :名無しさん@そうだ選挙にいこう:2010/09/19(日) 11:13:00
>>680
http://officetanaka.net/excel/vba/file/file03.htm
拡張子の設定次第

691 :名無しさん@そうだ選挙にいこう:2010/09/19(日) 14:55:19
【1 OSの種類         .】 Windows7 64bit
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel 再計算 コマンド

シートに大量の計算式があり、(1000行X80列)
マクロで複数回計算させると、ステータスバーに「コマンド   再計算」
と残りF9を押しても再計算が消えません。

原因と対処方法があればお願いします。


692 :名無しさん@そうだ選挙にいこう:2010/09/19(日) 18:59:24
>>691
どういう式が入ってるの?
VLOOKUPか?

693 :複乳:2010/09/19(日) 19:57:16
>>691
まず、バグの可能性がある
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1023070080
ttp://support.microsoft.com/kb/243495/en-us
>どうやら、65536個以上のセル参照があると、ステータスバーの"Calculate"(日本語版Excelでは「再計算」)の表示が消えなくなるそうです。

SPを入れると直るかもしれない場合もある。
ttp://support.microsoft.com/kb/248179/ja
セルでカスタム関数を使用している。
および ほかのセルへの参照を渡すカスタム関数のパラメータを入力した。
および 参照するセルに、=TODAY()、=RAND() などの常に結果の異なる関数がある。
および カスタム関数で、その参照を使用して定義名を作成した。

他は、新しいブックを作ってそこにシートを全部コピーする
ブックは長く使うと、内部的にゴミが溜まるので新規ブックにコピーすれば解消される可能性があるかもしれない

他の対処方法は数式をまとめるなどして、セル参照を何とか減らす。シートを分割する、セルに数式を入れずに計算はすべてVBAにする
かなぁ。2010にすると改善されているかも知れない

694 :名無しさん@そうだ選挙にいこう:2010/09/19(日) 20:01:07
複乳じゃないか!

695 :691:2010/09/19(日) 22:44:39
>692
LOOKUPは今回使いませんでしたが、LOOKUP関数をたくさん使うと同様の現象は起きます。
>693
今回のシートでは平均値を出すだけのものなので、関数はIF、AND、OR,SUMIF,SUMを使いました。
初期設定では一行目にしか数式を入れておらず、アクセスから取り入れたデータの数によってマクロが必要数ぶんの数式をコピペして
増やすようにしてました。その最大値が1000行です。
計算終了後は初期設定の一行目しか計算式の入っていない状態になります。

そして、データ用シートは計算式の入ったシートと別であり、計算式は別シートであるデータ用シートをたくさん参照することになります。
一番負担が掛かりそうな数式は、
=IF($B3="","",SUM(データ!A$2:A3)/$B3)
という数式であり、仮に1000まであるデータを取り入れると、
=IF($B1001="","",SUM(導入!X$2:X1001)/$B1001)と変化します。


計算結果は「結果」というシートに保存されるようになっており、その結果シートをシートごと削除すると
「再計算」の表示が消えます。

696 :複乳:2010/09/19(日) 23:01:56
>>694 やぁ
>>695 80列で1000行、一つのセルに1つ以上の参照が入っていれば>>693の>65536個以上のセル参照
に該当すると思う。
私ならシートを見直すか全てVBAで計算するかな。

697 :名無しさん@そうだ選挙にいこう:2010/09/19(日) 23:04:50
複乳じゃないか!

698 :名無しさん@そうだ選挙にいこう:2010/09/20(月) 07:25:36
>>695
おまえ計算の仕方が間違ってるよ。
>=IF($B3="","",SUM(データ!A$2:A3)/$B3)
SUM(データ!A$2:A3)の累計の計算部分は作業列で計算させなきゃ駄目だ。
たとえばCC2に=データ!A2、CC3以下は=C2+データ!A3
これを80列分右にコピーしてから
=IF($B3="","",CC3/$B3)
と80列分入れれば計算はずっと軽くなる。
あとANDもよく考えた方がいいな。
IFのネストの方が軽い。

699 :名無しさん@そうだ選挙にいこう:2010/09/20(月) 07:41:43
すまん他違えた。
>たとえばCC2に=データ!A2、CC3以下は=C2+データ!A3
たとえばCC2に=データ!A2、CC3以下は=CC2+データ!A3に訂正

700 :名無しさん@そうだ選挙にいこう:2010/09/20(月) 09:39:20
いまだに累計に=A$1:A1とかやってる人いるの?

701 :複乳:2010/09/20(月) 09:44:12
>>700
やってます。いい方法あるなら教えてください!

702 :名無しさん@そうだ選挙にいこう:2010/09/20(月) 09:57:52
>>701
>>698が書いてるじゃん。
一つ上のそれまでの累計と左のA列の値を足すだけだろ?
なんで常に先頭から合計する必要ある?

703 :複乳:2010/09/20(月) 10:10:00
>>702
ああごめん。やってなかった。

704 :名無しさん@そうだ選挙にいこう:2010/09/20(月) 11:09:05
複乳じゃないか!

705 :名無しさん@そうだ選挙にいこう:2010/09/20(月) 11:31:56
複乳って何?
副乳なら俺にもあるが。

706 :名無しさん@そうだ選挙にいこう:2010/09/20(月) 11:48:11
>>702
行削除するとそこから後ろは#REF!になるんじゃね?

707 :名無しさん@そうだ選挙にいこう:2010/09/20(月) 18:23:48
【1 OSの種類         .】 Windowsxpt
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい (初心者)
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel ページ毎 合計
品番 品名 場所 合計
aaa りんご 京都 20
bbb みかん 大阪 30
ccc すいか 大阪 40

        合計 90
        総計 90

こういう単純な表で、単純に合計を計算するだけの話なのですが、
行が多いため何ページかにわたり、さらに印刷する必要がある為、ページ毎に小計表示が必要です。
さらに最終ページで総合計が必要なのですが、印刷する際、
A4だったりA3だったりするのでページ毎の行数(最終行)が固定ではない為、
VBAで最終行を自動判定して、かつ小計行もいれて、最終ページで小計行、総計行を表示したい。
(できれば表から1行空けて小計行、最終ページは表から1行開けて小計行、総計行としたいです)


よろしくお願いします。


708 :名無しさん@そうだ選挙にいこう:2010/09/20(月) 20:52:31
>>706
つ名前定義
OFFSETやINDIRECTははいまいちだな。


709 :名無しさん@そうだ選挙にいこう:2010/09/20(月) 21:13:47
>>707
vbaよりこっちの方がいい方法に思える
http://www.eurus.dti.ne.jp/~yoneyama/Excel/ex-q-a/q_print.html

710 :複乳:2010/09/20(月) 21:47:05
>>704 よぉ
>>707
ttp://www1.axfc.net/uploader/Img/so/94977.jpg
集計機能(メニューのデータの中にある)とページ設定(メニューのファイル)と
改ページ(メニューの表示にある)を組み合わせる
多分目的のものができるんじゃないかな


711 :名無しさん@そうだ選挙にいこう:2010/09/20(月) 21:58:47
複乳・・・お前、俺みたいに字が汚いな・・・

712 :名無しさん@そうだ選挙にいこう:2010/09/20(月) 22:00:05
複乳じゃないか!

713 :名無しさん@そうだ選挙にいこう:2010/09/20(月) 22:37:03
【1 OSの種類 .】 Windows XP SP3
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか 】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 条件付書式

ttp://uproda.2ch-library.com/293836PSy/lib293836.jpg
このようなシートで、
ある行でB列の数字が"3の倍数"の時、その行のC列とD列のセルを薄いピンク色にしたいと思います。

例えば3行目ではB3が21であり"3の倍数"であるので、
C3:D3の Bosanski 倫理学 が薄いピンク色になります。

このような判定を条件付書式でやろうと思ったのですが、
どう指定すればよろしいでしょうか??


714 :名無しさん@そうだ選挙にいこう:2010/09/20(月) 22:50:17
>>713
C2に
[数式が]を選択して
=AND(MOD($B2,3)=0,$B2<>"")
と入れてパターンを設定。
C2を[コピー]→他の設定したいセルに[形式を選択して貼りつけ]で[書式]を選択

715 :713:2010/09/20(月) 22:55:41
>>714
ありがとうございます。
できました!

716 :名無しさん@そうだ選挙にいこう:2010/09/20(月) 23:01:02
すみません、
<>""
とはどういう意味(効果)なのでしょうか?


717 :名無しさん@そうだ選挙にいこう:2010/09/20(月) 23:24:32
空っぽで無い場合

718 :名無しさん@そうだ選挙にいこう:2010/09/20(月) 23:25:15
なるほど、ノットイコールって意味ですね。
ありがとうございました。


719 :名無しさん@そうだ選挙にいこう:2010/09/20(月) 23:28:23
【1 OSの種類 .】 Windows XP SP3
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか 】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 条件付書式


ttp://uproda.2ch-library.com/293869Lbr/lib293869.jpg
上の様に、
B1:C26に科目が書かれています。
(E列は後半の説明の為なので実際にはありません。)

1〜26行について、B列とC列が両方とも空白の場合は無視して、少なくとも一方が埋まっている(空白でない)場合は1つとカウントするという条件で、その合計をB29のセルに取得したいと思います。

例えばこの例では21個となります。
E列列の情報を使わずに、B1:C26だけを見て、このように取得するにはどうすればよいでしょうか。

よろしくお願いいたします。


720 :名無しさん@そうだ選挙にいこう:2010/09/20(月) 23:30:11
>>709,>>710
なるほど、集計を使えば良かったのか。
お二人とも有り難うございました。




ただ表から1行空けるというのは、この処理では難しいっぽいですね。 


721 :名無しさん@そうだ選挙にいこう:2010/09/21(火) 00:05:10
>719
=26-SUMPRODUCT((B1:B26="")*(C1:C26=""))
で、どうですか? 最初の26は、集計範囲全体の行数です。

722 :719 :2010/09/21(火) 00:30:02
>>721
ありがとうございます。
できました!!
助かりました!


723 :名無しさん@そうだ選挙にいこう:2010/09/21(火) 10:49:34
>719
SUMPRODUCTをOR条件で使う方法
=SUMPRODUCT(SIGN((B1:B26<>"")+(C1:C26<>"")))

単純に+でつなぐだけだと、両方にデータがあるとき2を加算してしまうので、SIGN関数を使って1にする。
(「エクセル関数1000技+α」アスキー・ドット編集部著 を参考にしました)



724 :名無しさん@そうだ選挙にいこう:2010/09/21(火) 19:31:52
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel コンボボックス ユーザーフォーム IF文

コンボボックス1に「1」とあったらコンボボックス2にあ,い,う,え,お
コンボボックス1に「2」とあったらコンボボックス2にか,き,く,け,こ
と入れたいのですがIF文使ってもうまくできません・・・
どうすればいいでしょうか

725 :名無しさん@そうだ選挙にいこう:2010/09/21(火) 19:53:35
>>719
SUMPRODUCT嫌いの俺様が通りますよ。
=SUM((B1:B26&C1:C26<>"")*1)
配列数式

726 :名無しさん@そうだ選挙にいこう:2010/09/21(火) 20:14:39
>>724
とりあえずコードを張りなよ。うまくできませんだけじゃ、アドバイスのしようがない。


727 :名無しさん@そうだ選挙にいこう:2010/09/21(火) 20:16:13
>>724
違うと思うけど、参考に
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1033280455

728 :名無しさん@そうだ選挙にいこう:2010/09/21(火) 20:33:56
Private Sub  ここわかりません・・・ ()
ComboBox2.Clear
If ComboBox1.Text = "1" Then
With ComboBox2
.AddItem "あ"
.AddItem "い"
.AddItem "う"
.AddItem "え"
.AddItem "お"
End With
End If
If ComboBox1.AddItem = "2" Then
With ComboBox2
.AddItem "か"
.AddItem "き"
.AddItem "く"
.AddItem "け"
.AddItem "こ"
End With
End If
End Sub

729 :名無しさん@そうだ選挙にいこう:2010/09/21(火) 20:35:00
textかadditemかも分かりません・・・
無知ですみません

730 :名無しさん@そうだ選挙にいこう:2010/09/21(火) 20:35:55
さらにレスしてすみませんがユーザーフォームです

731 :名無しさん@そうだ選挙にいこう:2010/09/21(火) 20:38:16
>>724
よく使われるのは、コンボボックス1の値をそのままコンボボックス2のリスト範囲の名前
にするっていう方法。

A1にコンボボックス1の値が入ってるとすると、コンボボックス2はINDIRECT(A1)

732 :複乳:2010/09/21(火) 21:09:11
雑魚どもwwwww意味わかんねーのにレスしてんじゃねーよwwwwwwwwwwww
>>728
こうだ!ComboBox1.ValueかComboBox1=1でいいんだよ
Private Sub aa()
ComboBox2.Clear
If ComboBox1.Value = "1" Then
With ComboBox2
.AddItem "あ"
.AddItem "い"
.AddItem "う"
.AddItem "え"
.AddItem "お"
End With
End If
If ComboBox1 = "2" Then
With ComboBox2
.AddItem "か"
.AddItem "き"
.AddItem "く"
.AddItem "け"
.AddItem "こ"
End With
End If
End Sub

733 :複乳:2010/09/21(火) 21:15:39
wwwwwwwwwwww完w全w勝w利wwwwwwwwwwwwwwwww


734 :複乳:2010/09/21(火) 21:17:12
すまん。嫌なことがあったんだ
誰か煽ってくれよ。つまんねーよ
>>711 小1の頃から言われ続けて、20年以上治らない
>>712 よぉ

735 :名無しさん@そうだ選挙にいこう:2010/09/21(火) 21:32:38
複乳じゃないか!

736 :名無しさん@そうだ選挙にいこう:2010/09/21(火) 21:32:46
>>732
できました
ありがとうございます

737 :複乳:2010/09/21(火) 21:35:44
なんでこんなカスみたいな回答で終わりなんだよ・・
>>735 よぉ。このそっけなさが近所の野良猫みたいで最高だな

738 :名無しさん@そうだ選挙にいこう:2010/09/21(火) 21:41:45
>>728 ユーザーフォームならChangeイベント位使えよ
Private Sub ComboBox1_Change()
Me.ComboBox2.Clear
Select Case Me.ComboBox1.Value
Case 1
With Me.ComboBox2
.AddItem "あ"
.AddItem "い"
.AddItem "う"
.AddItem "え"
.AddItem "お"
End With
Case 2
With Me.ComboBox2
.AddItem "か"
.AddItem "き"
.AddItem "く"
.AddItem "け"
.AddItem "こ"
End With
Case Else
Me.ComboBox2.Clear
End Select
End Sub

739 :名無しさん@そうだ選挙にいこう:2010/09/21(火) 21:52:16
複乳じゃないか!

740 :複乳:2010/09/21(火) 22:00:43
>>739
やったね!”

741 :名無しさん@そうだ選挙にいこう:2010/09/21(火) 22:05:45
複乳じゃないか!

742 :名無しさん@そうだ選挙にいこう:2010/09/21(火) 22:46:41
>738
おまえんのはこれと同じじゃねーか?

Private Sub ComboBox1_Change()
Me.ComboBox2.Clear
Select Case Me.ComboBox1.Value
Case 1
Me.ComboBox2.List = Split("あ い う え お")
Case 2
Me.ComboBox2.List = Split("か き く け こ")
Case Else
Me.ComboBox2.Clear
End Select
End Sub


743 :621:2010/09/22(水) 15:39:52
621というかつまり>>417なのですが
ググったり改ざんしたりして頑張っているのですがそろそろ限界なので助けてください

実は>>417でやりたかった部分まではなんとか(しかもフォルダ単位で)できているのですが
読み込みたいテキストファイルが複数それも異なったフォルダに入っているので
親フォルダを選択することでサブフォルダ内のテキストファイル全てを読み込んで実行できるように
改良お願いできないでしょうか?
とりあえず現在は下記のようになっています

Sub Text2Text()
Dim TargetFile As String, n As Long, buf As String, i As Long, cf_txt As String
Dim MAXrow As Long, OutputFile As String, OUTn As Long, temp As String
Dim objShell As New Shell32.Shell, objFolder As Shell32.Folder3

Set objFolder = objShell.BrowseForFolder(0, txtフォルダを指定, 0)

'txtファイルがあればファイル名を取得
cf_txt = Dir(objFolder.Self.Path & "\*" & ".txt")

If cf_txt = "" Then
MsgBox "txtファイルはありません。"
Exit Sub
End If

cf_txt = Dir(objFolder.Self.Path & "\*" & ".txt")
j = 1
While cf_txt <> ""

TargetFile = objFolder.Self.Path & "\" & cf_txt
n = FreeFile
buf = Space(FileLen(TargetFile))
Open TargetFile For Binary As #n

744 :名無しさん@そうだ選挙にいこう:2010/09/22(水) 15:41:10
Get #n, , buf
Close #n

With New DataObject
.SetText buf
.PutInClipboard
End With

ActiveSheet.Paste Destination:=Range("B2")
MAXrow = Range("B4000").End(xlUp).Row

OutputFile = Replace(TargetFile, ".txt", "2.txt")
OUTn = FreeFile
Open OutputFile For Output As #OUTn
temp = ""
For i = 1 To MAXrow
temp = temp & Cells(i, 3) & Chr(13)
Next i
Print #OUTn, temp
Close #OUTn
Columns("B:B").Select
Selection.ClearContents

cf_txt = Dir
j = j + 1

Wend

Set objFolder = Nothing
Set objShell = Nothing

End Sub

745 :複乳:2010/09/22(水) 16:06:19
>>743
頻度にもよるけど、マクロだと逆にしんどい気がする
ttp://www.vector.co.jp/vpack/filearea/win/util/text/
こういうソフト使ったほうが早いんじゃないかな

746 :名無しさん@そうだ選挙にいこう:2010/09/22(水) 16:26:41
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル 画像 印刷すると変形 プレビューで見ると変更 など

検索キーワードに書いたとおりなのですが、作業中の画像やオートシェイプは良いのですが
プレビューで見たり印刷すると変形します。(と、相談されましたが再現はしませんでした)
上記キーワードで検索すると、教えてgooなどで質問している事例はあったのですが
解決には至っていませんでした。
実際に見ていないので、どれくらい変形するかを掛けなくて申し訳ないのですが
解決した方いらっしゃいましたら情報ください!
よろしくお願いいたします。

747 :名無しさん@そうだ選挙にいこう:2010/09/22(水) 16:35:15
複乳じゃないか!

748 :名無しさん@そうだ選挙にいこう:2010/09/22(水) 16:40:04
>746
直接、「印刷したら変形してて困ったという本人」に質問してもらうのが一番では?

変形するという画像が ラスタ(jpg画像や画面イメージなど) なのか ベクトル(オートシェイプの類)
なのかもわからないし、変形というのが縦方向に伸びる・縮む(プロポーションが変わる)のかも
わかりません。

749 :名無しさん@そうだ選挙にいこう:2010/09/22(水) 16:48:01
>>748
ありがとうございます。
そうですね。私がどれだけやってみても再現はしなかったので
詳しい状況をまとめてもらいます。

750 :746:2010/09/22(水) 16:48:49
すみません。>>749は746でした

751 :複乳:2010/09/22(水) 16:48:59
>>746
俺も昔なった。バージョンやページ設定などでなるっぽい。
プレビューする直前に保存し、プレビューしたものは破棄していくぐらいしか思いつかない

752 :名無しさん@そうだ選挙にいこう:2010/09/22(水) 16:53:56
複乳じゃないか!

753 :746:2010/09/22(水) 16:55:06
>>751
つまりバグの可能性って事ですか?

754 :複乳:2010/09/22(水) 17:18:31
>>753
un

755 :名無しさん@そうだ選挙にいこう:2010/09/22(水) 17:21:31
複乳じゃないか!

756 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 01:16:10
>>745
B列に貼り付けてC列を取得するという
このB列→C列の計算がとても特別なものなのでそういったアプリでは不可能です
実際にそのエクセルファイルは80Mを超えているやっと完成させたシロモノでその計算部分がすべてなのです
あとはサブフォルダの取得だけなので何卒よろしくお願いします
こちらでもいろいろググったりして調べていますが
再帰処理というのかサブフォルダの取得は例が少なくなかなか苦労しています
(あまりアレンジの効かないものばかりで・・・)

757 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 01:46:59
皆VBA分かって凄いなぁと思いますが、勉強するきっかけはなんだったのでしょうか?
そして効率よく勉強する方法をおしえてください

758 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 05:40:10
>>757
関数オンリーでやっていて、結果が出るのに1時間とかかかってみろ。
しかもどこかセルをいじるたびに再計算とか。
ファイルは肥大化するし、誰かに計算式を消されたりしたら探すのも大変。
そんなのがVBAだと数秒で終わったりする。
中には時間がつぶせていいと思うやつもいるかもしれないが、
貧乏性の俺には無理。とっとと次の仕事にかかりたいよ。
いや、もちろんその間だってほかの仕事をしているわけだが、
その結果を得ないと次の仕事ができない類のときは困る。

759 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 08:25:29
>>757
元データがあって、店ごとのファイルを毎月送らなければいけない。
これはさすがにvbaでしょ、ってとこ。


760 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 14:26:47
>>757
楽になる方法を模索しているうちにたどり着いたのさ

761 :複乳:2010/09/23(木) 14:47:23
>>757
日常業務をできるところまで全自動にしていけば、勝手に覚えるよ
本当はオブジェクト指向とか知っておいた方がいいんだろうけど、まぁ無くてもなんとかなる

762 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 15:01:01
>>757
毎日同じことの繰り返しでめんどくさいなあと思って
ぐぐりながらょっとずつ作ってった

何か具体的な目標がないといきなり覚えるのは難しいかも

763 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 15:15:49
複乳じゃないか!

764 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 19:09:49
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 小数点・excel
起動した直後で何も設定していないのに、12→0.12のように、二桁下げた数字で表示されてしまいます。セルの書式設定をする前の話なので原因が良く分かりません。
どうすればいいのか教えてくださいお願いします。

765 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 20:04:35
オプションの小数点位置を自動的に挿入するをオフに

766 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 20:05:57
>>764
バージョン書けよ。それによって結構違うんだよ(´・ω・`)
ツール→オプションの「小数点位置を固定する」のチェックを外せばOK
http://www.relief.jp/itnote/archives/002174.php

767 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 21:30:44
excel2007です
VBAは使えませんが、回答は可です

A1セルにマウスカーソルを当てると、B1セルの文字が太字になる
ということをしたいのですが、どうすればいいですか?

768 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 21:31:31
>>767
無理

769 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 21:34:49
>>768
ありがとうございます。

A1セルを選択時に、B1セルの文字が太字になる
という場合も無理でしょうか

770 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 21:43:21
>>769
太字になってなりっぱなしでいいの?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim r As Range
For Each r In Target
If Not Intersect(r, Range("a1")) Is Nothing Then
r.Offset(0, 1).Font.Bold = True
End If
Next r
End Sub


771 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 21:58:12
>>770
ありがとうございます。
別のセル選択時には、元に戻したいです

772 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 22:00:05
OnMouceOverイベントをつかえばいんじゃねーの VBA for Excel にあるのかどうかしらんけど

773 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 22:06:06
>>771
よく考えたらこれでよかった
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim r As Range
If Intersect(Target, Range("a1")) Is Nothing Then
Range("b1").Font.Bold = False
Else
Range("b1").Font.Bold = True
End If
End Sub

774 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 22:09:01
>>772
フォームとかはあるんだけど、ワークシートは無理だとオモ

775 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 22:15:27
>>773
できました!
ありがとうございます

776 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 22:15:53
書式設定の表示形式で、カンマ単位の可変省略を表現できますか? (環境はXPのExcel2000です)
たとえば

値1なら、1
値1,000なら、1K
値4,444なら、4.44K
値1,000,000なら、1M
値5,555,555なら、5.56M

といった具合で、テラ単位まで表示できれば完成です

自力でいろいろ試してみた所、[>1000000]や[>1000]等を複数使えば表現出来そうだと思うのですが、
K単位の場合、M単位の場合、T単位の場合と、条件式を複数書く記述法がわかりません

表示形式の式は,で区切られた4つの式がそれぞれ前からプラス、マイナス、ゼロ、文字列用だと解釈しているのですが、
とするとプラス値に対する複数の条件付き表示形式はどのように表現すればいいのか?と困っております
(この条件付き表示形式の詳細がヘルプにあるようでしたらお教え下さい、見つけられませんでした…)

777 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 22:21:51
>>776
書式設定は場合分けでも3つまでしか設定できないし、そもそも無理だとオモ

別セルに表示させる方向で考えてください

778 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 22:40:31
>>776
代わりに指数表現にして「##0.00E+00」ってどう?

779 :複乳:2010/09/23(木) 23:02:54
>>776
表示形式は無理だねぇ
ifとtext関数を組み合わせれば隣のセルに表示可能

B1=INT((IF(A1<1000,A1)+IF(AND(A1>=1000,A1<1000000),A1/1000)+IF(AND(A1>=1000000,A1<1000000000),A1/1000000)+
IF(AND(A1>=1000000000,A1<1000000000000),A1/1000000000)+IF(AND(A1>=1000000000000,A1<1000000000000000),
A1/1000000000000))*100)/100
C1=IF(AND(A1>=1000,A1<1000000),"K","")&IF(AND(A1>=1000000,A1<1000000000),"M","")&IF(AND(A1>=1000000000,A1<1000000000000),"G","")&IF(AND(A1>=1000000000000,A1<1000000000000000),"T","")
D1=B1&C1
ただこれだと値5,555,555なら、5.56Mが5.55Mと切り捨てになる。我慢しろ

780 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 23:06:51
複乳じゃないか!


781 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 23:07:23
>>779
他にやり方ないのかなー

つーのも俺も昔はこういうの作ったけどさ
こういう数式って実質自分以外にはメンテ不可能になっちゃうんだよね

いずれ引き継ぐ後任からしたら仕事の合間にたかが表示形式のタメにこんな長いの読んでられねーもの
よしんば読んだとして、完璧に作り直すのってゼロから作るよりめんどくせーし

782 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 23:16:02
これこそユーザー定義関数使えばいいのに

783 :複乳:2010/09/23(木) 23:43:33
アドインはこれが使えそうな感じ。試してないけど
http://www.candox.co.jp/products/software/engunit/index.shtml

784 :名無しさん@そうだ選挙にいこう:2010/09/23(木) 23:45:08
複乳じゃないか!


785 :名無しさん@そうだ選挙にいこう:2010/09/24(金) 00:09:15
>>776
=IF(LEN(A1)<4,A1,IF(LEN(A1)<7,CONCATENATE(ROUND(A1,-1)/1000,"k"),IF(LEN(A1)<10,CONCATENATE(ROUND(A1,-4)/1000000,"M"),IF(LEN(A1)<13,CONCATENATE(ROUND(A1,-7)/1000000000,"G"),CONCATENATE(ROUND(A1,-10)/1000000000000,"T")))))

786 :776:2010/09/24(金) 00:41:15
レスありがとうございます
2つまでは動作するけど、3つにすると動作しなくて何が原因かわからず悩んでました

複乳さんほか、VBAおよびワークシート関数による解説ありがとうございました
書式で実現出来れば値もそのまま使えて扱いやすいし処理も軽いしメリット大だと思ったんですが、
やっぱその方法しかないんですねぇ

皆さんのレスと手元の実験を重ねていってやっと理解できて来ました
条件付きが含まれる場合は、他とは違う別の特殊な解釈をするんですね

「条件付きの場合は項目は最大3つまで、
 条件は前から順に評価される、
 条件自体は最大2つまで、
 2条件にもれたものは強制的に3つ目になる、
 3つ以上の項目は許容してくれない(エラーになり弾かれる)」…で合ってますか?

M単位までなら以下の例1で出来ましたが、T単位以上の例2は条件が3つ以上だから無理ぽなのですね

例1:[青][>=1000000]#,##0.0,,"M";[赤][>=1000]#,##0.0,"K";[緑]G/標準
例2:[紫][>=1000000000]#,##0.0,,,"T";[青][>=1000000]#,##0.0,,"M";[赤][>=1000]#,##0.0,"K";[緑]G/標準

…中途半端でがっかりだなぁw

表示形式はかなり多機能ですがあまりに難解なので今まで深入りを避けてましたw
何が出来て何が出来ないのか、すべて理解しようとすると本当に鬼門ですね
しかも表現できない事がわかってさらに骨折り損w

皆様ありがとうございました

787 :776:2010/09/24(金) 02:15:30
>>786
あ、ギガとテラ間違えてましたw すいません

788 :名無しさん@そうだ選挙にいこう:2010/09/24(金) 03:28:03
>>786
Excel2000は軽くて使いやすいけど制限も多いからなー
Excel2003までは条件が3つ以下だったけど、Excel2007や2010だと条件はもっとたくさん書けるよ

789 :776:2010/09/24(金) 07:48:22
>>788
おっ、2007や2010ならかけるんですねぇ いいなぁ
とはいっても互換性の問題が出ますししばらく使えないですねぇ
(家で作ったものが会社で使えないってのも困るし)

にしても2003までは状況変わらずですか
XP(2002でしたっけ?)か2003あたりを入手しようかと思ってましたが、うーん

790 :名無しさん@そうだ選挙にいこう:2010/09/25(土) 06:11:57
>>788
それは条件付き書式のことだよね?(´・ω・`)

791 :名無しさん@そうだ選挙にいこう:2010/09/25(土) 11:47:33
Excel2003です。

シート保護をするとスペルチェックができなくなるのですが
シート保護したまま、スペルチェックする方法はないでしょうか?
オートコレクトは使いません。

よろしくお願いします

792 :名無しさん@そうだ選挙にいこう:2010/09/25(土) 16:22:26
>>791
ThisWorkbookに以下のマクロを書く

Private WithEvents ev1 As Office.CommandBarButton
Private WithEvents ev2 As Office.CommandBarButton
Private Sub Workbook_Activate()
Set ev1 = Application.CommandBars("Standard").FindControl(ID:=2)
Set ev2 = Application.CommandBars("Worksheet Menu Bar").FindControl(ID:=2, Recursive:=True)
ev1.OnAction = "ThisWorkbook.spellcheck842885369"
ev2.OnAction = "ThisWorkbook.spellcheck842885369"
End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
If Not ev1 Is Nothing Then ev1.OnAction = ""
If Not ev2 Is Nothing Then ev2.OnAction = ""
Set ev1 = Nothing
Set ev2 = Nothing
End Sub
Sub spellcheck842885369()
If ActiveSheet.ProtectContents Then
ActiveSheet.Unprotect
ActiveSheet.CheckSpelling
ActiveSheet.Protect '使用状況によっては引数の設定が必要である
Else
ActiveSheet.CheckSpelling
End If
End Sub

793 :名無しさん@そうだ選挙にいこう:2010/09/25(土) 20:20:25
教えてください
1981年
1983年
1983年
1983年

2010年

とあった場合に
別の新規ファイルを作成してそのSheet1をそれぞれのカウントを出すというマクロを作成したいのですが
この間の処理は手動では一切しないです

例えば上記で言うと
新規ファイルのSheet1に
1981年 1
1983年 3

2010年 1
見たいな感じです

具体的な方法があれば教えてください

794 :名無しさん@そうだ選挙にいこう:2010/09/25(土) 20:22:39
>>793
ピボットテーブルでマクロの記録を取れば?(´・ω・`)

795 :名無しさん@そうだ選挙にいこう:2010/09/25(土) 20:38:00
>>680ですが、よそで聞きます。
お騒がせしました。


796 :795=680:2010/09/25(土) 20:41:43
・・・・と思ったら、リロードしてなかっただけで、>>690さんにすでにレスを頂いておりました。

>>690様どうもありがとうございました。
それで解決しました。


797 :776:2010/09/25(土) 22:25:40
>>790 あらぁ、そうなんですか。ガッカリ。
当時のスペックからの性能向上を考えれば10個くらいまで許容しても良さげなのに
あぁ、セル数増やしたから逆戻りなのかな?


798 :名無しさん@そうだ選挙にいこう:2010/09/26(日) 06:25:10
初歩的な質問ですいません。

Excel97のデータをExcel2003で読み込むことは可能ですか?

799 :名無しさん@そうだ選挙にいこう:2010/09/26(日) 07:02:54
>>798
読み込むことは出来る
けどVBAでかなり複雑な事をしてると
それがうまく動かない可能性はある

ワークシートの単純なデータやグラフだけなら2010でも大丈夫だろ

800 :名無しさん@そうだ選挙にいこう:2010/09/26(日) 18:25:46
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel 表の挿入 編集

Excelのシートの中に、幅や行列数、データの編集が可能で、
かつドラッグなどで移動できる別表を挿入する方法はあるんでしょうか

今まではカメラ機能を使用して、編集都度置き換えしておりましたが、
上記のような柔軟性の高いオブジェクトってあるのかなあとふと疑問に思いました

801 :名無しさん@そうだ選挙にいこう:2010/09/26(日) 18:48:24
>>800
無い

別表とか余白に表を作ってカメラでリンク貼り付けしてたんでしょ?
たいした手間でもないと思うんだが、今までのやり方ではダメなの?

802 :名無しさん@そうだ選挙にいこう:2010/09/26(日) 18:58:46
>800
エクセルの上では無理なので、Wordに大きいワークシートオブジェクトと小さいワークシートオブジェクトを
重ねて配置したらどうですか?
小さい方(上に置く方)はオブジェクトの書式設定で配置=前面にしたら自由に配置できるようになりますよ。


803 :複乳:2010/09/26(日) 20:19:02
>>800
新しいウィンドウを開く、じゃだめかな


804 :名無しさん@そうだ選挙にいこう:2010/09/26(日) 20:22:38
複乳じゃないか!


805 :800:2010/09/26(日) 20:46:00
>>801-803

Excel上ではやはり無理でしたか…
回答していただいてどうもありがとうございました


806 :791:2010/09/27(月) 09:14:06
>>792
ありがとう。難しそうですね。ちょっと試してみます。
VBのThisWorkbookのところですよね。がんばります。

807 :名無しさん@そうだ選挙にいこう:2010/09/27(月) 10:01:41
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 カメラ機能 カメラツール

2007でカメラツールを使って作成したシートですが
2010で開くとカメラツールで選択した範囲が実際選択したのと違うところが表示されます。
保存形式などに問題があるのでしょうか?

808 :791:2010/09/27(月) 10:05:27
>>792
やってみました。パスワードが空白の場合はうまくできたのですが
設定している場合は、たぶん ActiveSheet.Unprotect ここで
パスワード入力画面が表示されました。
ここを自動的に解除するにはどうしたらいいでしょうか?

パスワード入力画面をオートマクロで登録してみてマクロの内容を
見てみましたが、>>792で頂いた記載と同じでした。

よかったら教えてください!!


809 :名無しさん@そうだ選挙にいこう:2010/09/27(月) 13:19:31
>>808
パスワードがaaaの場合
ActiveSheet.Unprotect Password:="aaa"

まずはF1押してヘルプを見ろ、その方が早いぞ

810 :808:2010/09/27(月) 15:16:06
>>809
ありがとうございます。

ActiveSheet.Unprotect Password:="aaa"

ActiveSheet.Protect:="aaa"

の追加でできました! ありがとうございました。



811 :名無しさん@そうだ選挙にいこう:2010/09/27(月) 20:42:16
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

inputboxを出して、パスワードを入れて合致したらマクロを
動作させるのをつくりたいんですが、inputboxに文字を入れると
そのままの文字が出てしまいます。
*****みたいに、入力した文字を*にする方法を教えてください。

812 :名無しさん@そうだ選挙にいこう:2010/09/27(月) 20:54:51
>>811
マスクをかけたいときはユーザフォームを作成するのが常套手段だがどうしてもいうのなら

ttp://cswmoon.blog12.fc2.com/blog-entry-490.html

もしくは「excel inputbox マスク」あたりでググる。

813 :名無しさん@そうだ選挙にいこう:2010/09/27(月) 21:47:09
EXCEL2003です。

ファイルを開こうとすると、次のメッセージが表示されます。
どうすれば良いのでしょうか?

「'xxxxx.xls'にアクセスできません。ファイルが破損しているか、
 応答しないサーバーにあるか、読み取り専用に設定されています。」


814 :名無しさん@そうだ選挙にいこう:2010/09/27(月) 21:53:55
>>813
読み書きできるようにしたいという意味なら:
ファイルが破損している場合は直る可能性は低いので諦める。
応答しないサーバーにある場合はアクセスできるようにする。
読み取り専用に設定されている場合はファイルの設定を変更する。

815 :813:2010/09/27(月) 22:24:03
>>814
レスありがとうございます。

「読み取り専用」に設定されていたら、なぜ開けないのでしょうか?
どう設定変更すれば良いのでしょうか?

開いたファイルを保存できないのなら理解できるのですが・・・

816 :横から失礼:2010/09/27(月) 22:55:29
>813
状況をもっと詳しく説明した方が回答をもらいやすいと思います。
Q1 813のメッセージが表示されるだけで、開くことができない ということですか?
Q2 当該ファイルを別のPCにコピーして、コピー先PCのエクセルでは開けますか?
Q3 813のメッセージが表示されるのは特定のブックだけですか?他のブックはどうですか?
Q4 問題のファイルはローカル(当該PCのハードディスク等に保存)ですか、サーバー上にありますか?

817 :名無しさん@そうだ選挙にいこう:2010/09/27(月) 22:59:09
>>815
プロパティの「読み取り専用」のチェックを外す

でも。そういうことならファイル単体でなくディスクやフォルダに書き込みができなくなっているのかもしれません
とりあえずデスクトップにコピーしてみてはいかかでしょう?

818 :811:2010/09/27(月) 23:09:05
>>812
ありがとうございます。
読んだけど、よく分りませんでした・・・(^^;
ユーザーフォームを勉強してきます。

819 :811:2010/09/27(月) 23:10:53
>>813
ファイルが破損している可能性あり。
インターネットエクスプローラで開けるかもです。
私も経験しました。

820 :名無しさん@そうだ選挙にいこう:2010/09/27(月) 23:25:43
大変遅れましたが>>681です。みなさんありがとうございました。
これからやってみます。

821 :名無しさん@そうだ選挙にいこう:2010/09/27(月) 23:32:45
>>820 今更レスが返ってきた事にびっくりだ…

822 :複乳:2010/09/27(月) 23:41:28
>>815
上記以外だと
http://www.red.oit-net.jp/tatsuya/vb/Open.htm#Open
Lock Read 他のプロセスから、このファイルを読むことはできません。
ファイルがこんな漢字の状態になっててそんなメッセージが出てるかもしれない。多分無いだろうけど
後はアクセス権の問題か、ファイルの破損

823 :名無しさん@そうだ選挙にいこう:2010/09/27(月) 23:46:41
複乳じゃないか!


824 :813:2010/09/28(火) 08:37:55
レスありがとうございます。
>>816
>Q1 813のメッセージが表示されるだけで、開くことができない ということですか?
  開けません。

>Q2 当該ファイルを別のPCにコピーして、コピー先PCのエクセルでは開けますか?
 別のPCで行っても同じメッセージがでます。

>Q3 813のメッセージが表示されるのは特定のブックだけですか?他のブックはどうですか?
 特定のブックだけです。

>Q4 問題のファイルはローカル(当該PCのハードディスク等に保存)ですか、サーバー上にありますか?
 外付けディスクに入っているファイルです。

>>817
 デスクトップにコピーしても同じでした。

>>819
 IEでは開けませんでした。

>>822
 アクセス権の問題って、どういうことでしょうか?
 対策はないのでしょうか?

よろしくお願いいたします。



825 :名無しさん@そうだ選挙にいこう:2010/09/28(火) 08:52:44
単に壊れてるだけだと思いますけどね
バックアップから戻したほうが早いですよ

OSが不明ですがXPなら、読み取り専用になってるかどうかは、ファイルを選択してAlt+Enter
「全般」タブの「読み取り専用」にチェックが入っていたら外す
アクセス権はこれだけではないですがめんどいのでパス。Excel関係ないし


826 :複乳:2010/09/28(火) 09:04:30
>>824
設定方法 ttp://office.microsoft.com/ja-jp/excel-help/HA001092927.aspx
解除 ttp://questionbox.jp.msn.com/qa1454749.html
無理ならOOoを使う、バージョンの低いエクセルで開いてみる、破損の可能性があるなら
ttp://office.microsoft.com/ja-jp/excel-help/HA010097017.aspx
で修復してみる
思いつく方法はこれぐらい

827 :名無しさん@そうだ選挙にいこう:2010/09/28(火) 09:16:07
複乳じゃないか!


828 :名無しさん@そうだ選挙にいこう:2010/09/28(火) 14:06:19
Excel2010のバージョン情報ってどこで見られますか?

829 :名無しさん@そうだ選挙にいこう:2010/09/28(火) 15:03:23
>>828
ファイル→ヘルプ

830 :828:2010/09/28(火) 18:59:32
>>829
どうもありがとう。

831 :名無しさん@そうだ選挙にいこう:2010/09/28(火) 19:00:19
…そんなトコにあるのかw

832 :名無しさん@そうだ選挙にいこう:2010/09/29(水) 03:43:13
A列のデータで
たとえば
あああ/いいい/ううう
あああ
いいい

見たいな感じであった場合
/で分割して分けられたデータを2つ目をD列、3つ目をG列に移動させたいのですが
可能でしょうか?
もちろん上記みたいにデータで/がなければ何もしないです。

A列にある文字を単純に右に移動、B列、C列に移動させるだけならシートの区切りで可能ですが
セルを飛び越えて移動させたいので
分かれば教えてください
ちなみにB列、C列、E列、F列にはデータがある状態です

833 :名無しさん@そうだ選挙にいこう:2010/09/29(水) 08:03:17
>>832
区切り文字は最大2個って決まってるのか?
もしそうならB列、C列、E列、F列を横にいったん2列分移動させればいいだろ?
そのままでやるならVBAだな。


834 :名無しさん@そうだ選挙にいこう:2010/09/29(水) 08:04:22
そのままやりたいのでVBAで教えてください

835 :名無しさん@そうだ選挙にいこう:2010/09/29(水) 08:16:53
Sub HAGE()
Dim c As Range, sp, i As Long
For Each c In Range("a1").CurrentRegion.Resize(, 1)
sp = Split(c.Value, "/")
If IsArray(sp) Then
For i = 0 To UBound(sp)
c.Offset(, i * 3).Value = sp(i)
Next
End If
Next
End Sub


836 :名無しさん@そうだ選挙にいこう:2010/09/29(水) 08:23:19
上をお行儀よく書くなら"/"と3は定数にする。

837 :名無しさん@そうだ選挙にいこう:2010/09/29(水) 11:51:06
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 EXCEL フォーム・EXCEL 値をフォームに設定 など


フォームを作成して、そこで入力した値をEXCELの表(データベース)に記入されていくという使い方は調べて、なんとなく出来そうに感じたのですが、
逆にEXCELで設定されてる表(データベース)から、キーをもとにフォームに値を表示するということは可能ですか?

表(データベース)に一度登録したモノを修正するとき等で、必要と感じているのですが・・・。

838 :複乳:2010/09/29(水) 12:32:57
>>837
textboxを3つ、ボタンを1つ配置
textbox1に数値を入れてボタンを押すと、その行のAB列がtextbox2と3に表示される
ボタンの代わりにトグル辺りだと使い勝手は良くなると思う
あとは↓のように一つにまとめるとかもいいんじゃないか
TextBox2.Text = Cells(gyo, 1).Value & "/" & Cells(gyo, 2).Value

Private Sub CommandButton1_Click()
gyo = TextBox1.Text
TextBox2.Text = Cells(gyo, 1).Value
TextBox3.Text = Cells(gyo, 2).Value
End Sub


839 :名無しさん@そうだ選挙にいこう:2010/09/29(水) 13:12:54
>>838
素早い回答ありがとうございます。
早速試してみます!

また、続けて質問で申し訳ないですが。
上と同様にフォームに値を表示させたい時、キーではなく、項目(例えば名前)で該当項目が数件別窓に表示され、
そこから選択してフォームに値を表示させることは可能でしょうか?


840 :複乳:2010/09/29(水) 13:57:00
>>839
最初から言ってほしいにゃん
textbox2とコンボボックスが必要です
http://www1.axfc.net/uploader/Img/so/95921.jpg
http://www1.axfc.net/uploader/Img/so/95922.jpg
Private Sub UserForm_Initialize()
'フォーム開いたときにA列を追加
gyo = Range("A65535").End(xlUp).Row
For i = 1 To gyo
UserForm1.ComboBox1.AddItem Cells(i, 1)
Next

End Sub

Private Sub ComboBox1_Change()
gyo = Range("A65535").End(xlUp).Row
For i = 1 To gyo

If Cells(i, 1) = ComboBox1.Text Then
tmp = tmp & Cells(i, 2).Value & "/" & Cells(i, 3).Value & vbLf
End If
Next

If Len(tmp) > 0 Then
tmp = Left(tmp, Len(tmp) - 1)
End If
TextBox2.Text = tmp

End Sub

841 :複乳:2010/09/29(水) 13:59:36
コンボボックスの内容を蚊えるとBC列がtexobox2に表示される
表示項目を変えたいときは
UserForm1.ComboBox1.AddItem Cells(i, 1)
の部分をテキトーに触ってくれ


842 :名無しさん@そうだ選挙にいこう:2010/09/29(水) 21:34:26
ここでいいのか微妙なんですが教えてください
VBAでマクロを実行すると
新規Excelファイル起動させて、シートを左から連番で8個作りたいのですが
Sheet1、Sheet2、Sheet3、Sheet4、Sheet5、Sheet6、Sheet7、Sheet8
上記の感じです

ただしPCの設定によってはデフォルトのシート数が3の人もいれば5の人もいますでの
単純にSheet.addではバラバラになってしまいます。

考えられるのは一旦全部Sheet1以外を削除してaddでシートを作成する方法があるのですが
これだと新規で作成するとシート名が削除する前のMAXの数字の次の番号になってしまいます
Sheet1,Sheet9…
見たいな感じです

これを回避させて
Sheet1,Sheet2,Sheet3,Sheet4…
実現させるためにうまいやり方とかあれば教えてください。

843 :複乳:2010/09/29(水) 21:45:16
>>842
Sub Macro1()
unko = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 8
Workbooks.Add
Application.SheetsInNewWorkbook = unko
End Sub

844 :名無しさん@そうだ選挙にいこう:2010/09/29(水) 21:49:02
>>842
Sub test()
Dim i As Long
i = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 8

Workbooks.Add
Application.SheetsInNewWorkbook = i
End Sub

一応最初の枚数に戻した

845 :名無しさん@そうだ選挙にいこう:2010/09/29(水) 21:49:45
あ、複乳と完全に被ったw ごめんよ。リロードしてなかった。

846 :名無しさん@そうだ選挙にいこう:2010/09/29(水) 22:36:12
あえてみんなと違うことをやるぜ
デフォルトシート数が9以上だと破綻するけどな

Sub シート8枚()
  Workbooks.Add
  For i = Worksheets.Count To 7
    Worksheets.Add after:=Worksheets(i)
  Next
End Sub

847 :名無しさん@そうだ選挙にいこう:2010/09/29(水) 23:42:21
>>846
私もやるとしたらworksheet.countするな。
worksheet.count <= 8 だったらその処理するようにすれば?

848 :名無しさん@そうだ選挙にいこう:2010/09/30(木) 00:14:07
はまったので教えてください

B1:B10000の中で"1980"のカウントを取り
該当する行の中でA列に日という文字が存在しているカウントを取りたいのですがが

COUNTIF(B1:B10000,"1980")
COUNTIF(A1:A10000,"*日*")
この組み合わせだと思うのですが…
どうしてもうまくいません

849 :名無しさん@そうだ選挙にいこう:2010/09/30(木) 01:39:02
>848
=SUM((B1:B10000=1980)*(NOT(ISERROR(FIND("日",A1:A10000))))*1) と入力したところで
[Shift]と[Ctrl]を押しながら[Enter]
詳しくは 配列数式 でぐぐってみてください
(参考文献 エクセル関数1000技+α)

850 :849:2010/09/30(木) 01:50:26
*1 は不要でした。
=SUM((B1:B10000=1980)*(NOT(ISERROR(FIND("日",A1:A10000))))) で[Shift]と[Ctrl]を押しながら[Enter]
もしくは
=SUMPRODUCT((B1:B10000=1980)*(NOT(ISERROR(FIND("日",A1:A10000))))) で[Enter]
でもいいです。

851 :名無しさん@そうだ選挙にいこう:2010/09/30(木) 02:14:36
(K2:BG5000)まで関数がビッシリ入っている状態なんですが、関数だけ消して、セルに表示されている値のみ残すというのは可能でしょうか。
もし可能でしたらやり方を教えていただけないでしょうか。

よろしくお願いします

852 :名無しさん@そうだ選挙にいこう:2010/09/30(木) 02:36:30
>851
1 K2:BG5000 を選択
2 [Ctrl]+[C]でコピー
3 K2セルを右クリック
4 形式を選択して貼り付け を選択
5 値 のラジオボタンをクリックして[OK]

必ず、バックアップをとってから試してみてくださいね

853 :名無しさん@そうだ選挙にいこう:2010/09/30(木) 05:31:26
>>852
できました!!!ありがとうございました!!!!

854 :名無しさん@そうだ選挙にいこう:2010/09/30(木) 12:16:41
>>839です。
お礼が遅れてしまい、申し訳ございません。

ありがとうございました。
また何かありましたら、そのときは宜しくお願い致します。

855 :名無しさん@そうだ選挙にいこう:2010/09/30(木) 12:34:00
すみません、教えてください。
excelで計算してたら、-2.22699E-07とかの表示になって、
ちゃんとした数字が出ません。
うまく表示させる方法は無いでしょうか?



856 :855:2010/09/30(木) 12:52:30
ちょっと調べてみたんですが、
これはすごく小さい値ということなのかな?
すごく小さいからゼロと考えても問題ないかな?

857 :名無しさん@そうだ選挙にいこう:2010/09/30(木) 13:19:27
>>855
どんな計算している?もしかして演算誤差がでてるかも

858 :名無しさん@そうだ選挙にいこう:2010/09/30(木) 13:31:53
>>857
-0.637とかを=NORMSDIST($C$11)みたいに関数で計算してます。

859 :名無しさん@そうだ選挙にいこう:2010/09/30(木) 13:36:53
>>855
それは指数表示だお。値は-0.000000222699だお。
EXCELはすごく大きい値か、すごく小さい値だと自動的に指数表示になるお。
手動でセルの書式設定の表示形式を数値にするといいお。

ちなみにEの後ろは倍率だと思えばいいお。
-7なら10のマイナス7乗だお。つまり-2.22699の0.0000001倍という意味だお。

860 :名無しさん@そうだ選挙にいこう:2010/09/30(木) 13:42:50
>>859
ありがとうございます!
意味がわかりましたべき乗すればいいんですね。

861 :名無しさん@そうだ選挙にいこう:2010/09/30(木) 13:45:49
=ROUNDDOWNとかで丸めといたら

862 :名無しさん@そうだ選挙にいこう:2010/10/01(金) 23:02:59
9/30と入れて「09/30」と表示されるようにするにはどうすればいいですか?
表示形式のユーザー定義で「00/00」とやりましたがダメでした☆

863 :名無しさん@そうだ選挙にいこう:2010/10/01(金) 23:10:37
>862
yy/mm では? 日付のデータを入れるの?それとも数値2桁/数値2桁ということ?

864 :名無しさん@そうだ選挙にいこう:2010/10/01(金) 23:12:52
>>862
>>863はたぶんmm/dd を言いたいんではないかな〜



865 :名無しさん@そうだ選挙にいこう:2010/10/01(金) 23:32:54
>>862
っ ヘルプ



基本中の基本過ぎてggrksとも言いたくない

866 :863:2010/10/01(金) 23:36:32
>864
そうでしたorz

867 :564:2010/10/02(土) 00:12:06
こんばんわ。>>564と申します。

仕事の手が空いた時間に、仕事で実際に使用する表を見ながら
>>564で質問して回答いただいた件のマクロを少しずつ作成しておりました。
そして本日、時間がかかりましたが何とか完成しまして、
コースごとの集計がすばやく見やすくできるようになり
これからはとても仕事がはかどりそうです。

ここで回答をしてくれた方々に再度お礼を申し上げたく書き込みにきました。
とくに569さんには本当にお世話になりました。
みなさんどうもありがとうございました!!

868 :名無しさん@そうだ選挙にいこう:2010/10/02(土) 06:40:27
862ですが数値2桁です。日付なら簡単なんですが。

869 :名無しさん@そうだ選挙にいこう:2010/10/02(土) 07:19:50
>>868
00"/"00

として0930または930と入力

870 :名無しさん@そうだ選挙にいこう:2010/10/02(土) 09:25:24
00!/00

871 :569,653:2010/10/02(土) 10:28:49
>564,867
無事、完成してなによりです。
元データの項目の並びやコース判定方法などに変更があっても大丈夫ですよね!

できれば、564さんの仕事を将来引き継ぐことになる方のためにも、システム作成資料を
整備しておかれることをお勧めします。

872 :名無しさん@そうだ選挙にいこう:2010/10/02(土) 11:37:47
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2003 and 2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 EXCEL symbol フォント変更

EXCELのシートやグラフの軸タイトルに [μ] とか [Ω]とかのギリシャ文字を
全角で記入してあります。
ギリシャ文字をsymbolに変更する必要があるため現在は、半角[m]と記入した後に
フォントをsymbolに変更という流れで行っています。
VBAですでに記入してある全角ギリシャ文字をsymbolフォントに変更する方法は無いでしょうか?

873 :564:2010/10/02(土) 12:19:14
>>871
そうですね。
コース判定方法は皆に周知たほうがいいですし、
作成資料の整備をすることで、あらためて自分の勉強にもなるので
仕事の合間をみて作りたいと思います。

569さんには、文章で非常に詳しく説明していただいただけでなく
画像もうpしていただき、この画像が文章を理解するのに
ものすごく役にたちました。
文を読みつつ画像を見つつで、説明していただいたことを
実際のビジュアルで確認できたことで、初心者のわたくしでも
なんとか完成にこぎつけることが出来ました。
ありがとうございました!

874 :名無しさん@そうだ選挙にいこう:2010/10/02(土) 14:18:41
【1 OSの種類         .】 Windows200
【2 Excelのバージョン   】 Excel200
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 グラフ 積み上げ ラベル

データタイトル   値
食事(80)      80
睡眠(360)      360
入浴(50)      50

このようなデータがあり、これを積み上げの縦棒グラフにしたいです。

しかし、これをグラフウィザードを使って作り、「ラベルを表示する」にすると、

「食事(80)」などが表示されるのではなく、
「1」という値が表示され、凡例にのみ、「食事(80)」などが表示されます。

グラフのラベルとして「食事(80)」などを表示したいのですが、
どうすればいいでしょうか。

ちなみに、データ数が多く、手入力で入れていくということは
かなり難しい状況です。

875 :名無しさん@そうだ選挙にいこう:2010/10/02(土) 14:51:45
>>874
Excel200ではどうか知らないが2010では無問題。

876 :名無しさん@そうだ選挙にいこう:2010/10/02(土) 14:57:00
>>875
ごめんなさい excel2000でした。
2000では無理なんでしょうか?

877 :名無しさん@そうだ選挙にいこう:2010/10/02(土) 15:01:44
連続書き込みごめんなさい。
excel 2007ではできるでしょうか?

878 :名無しさん@そうだ選挙にいこう:2010/10/02(土) 19:02:25
>>872
対象セルを選択してから実行
Sub ConvertAll()
  If TypeName(Selection) <> "Range" Then Exit Sub
  Dim Target As Range
  Set Target = Selection

  Dim R As Range
  For Each R In Target
    Conv R
  Next
End Sub

Private Sub Conv(TargetCell As Range)
  Dim Greeks As String
  Greeks = "αβγδεζηθικλμνξοπρστυφχψωΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ"
  Dim Alphabets As String
  Alphabets = "abgdezhqiklmnxoprstufcywABGDEZHQIKLMNXOPRSTUFCYW"
  Dim Position As Long
  Dim i As Long
  
  With TargetCell
    For i = 1 To Len(.Text)
      Position = InStr(Greeks, .Characters(i, 1).Text)
      If Position > 0 Then
        .Characters(i, 1).Text = Mid(Alphabets, Position, 1)
        .Font.Name = "Symbol"
      End If
    Next
  End With
End Sub


879 :名無しさん@そうだ選挙にいこう:2010/10/02(土) 23:14:44
>>878
すげー

880 :名無しさん@そうだ選挙にいこう:2010/10/02(土) 23:35:58
>>872
ちなみにそれはフォントじゃなく文字コードだ。混同しちゃいけない。

881 :872:2010/10/02(土) 23:42:40
>>878
ありがとうございました!
無事に変換ができました。

あ、後グラフの軸の文字の変換用のも作っていただけると
ありがたいのですが・・・

882 :名無しさん@そうだ選挙にいこう:2010/10/03(日) 10:23:51
A1に「B1がC列n行にあるならばB列nの値を出力する」
という数式は何を使えばいいのでしょうか?

883 :名無しさん@そうだ選挙にいこう:2010/10/03(日) 12:01:12
LOOKUP

884 :名無しさん@そうだ選挙にいこう:2010/10/03(日) 13:18:59
>>882
INDEXとMATCH
>>883
LOOKUPじゃ無理
近似値検索だし、そもそもC列がソートされてるとはどこにも書かれてない。

885 :名無しさん@そうだ選挙にいこう:2010/10/03(日) 16:31:01
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2003 and 2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 EXCEL 氏名 伏せ字更

氏名を伏せ字に変換したいのですが何か良い方法ありますか?

例)鈴木 一郎 →鈴○一○ 様

今は手作業で一々変換しているのですが一括して変換できると大変助かります。
よろしくお願いします。

886 :名無しさん@そうだ選挙にいこう:2010/10/03(日) 16:39:37
右からn字目、左からm字目を"○"に変えるんならかんたん

887 :名無しさん@そうだ選挙にいこう:2010/10/03(日) 17:45:20
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

 A   B   C   D
1   値段 値段 -850 ←SUM(D2:D20) 
2○ 1000  850 -150 ←IF(A2="○",C2-B2,IF(A2="×",B2-C2))
3× 1200  900  300 ←IF(A3="○",C3-B3,IF(A3="×",B3-C3))
4○ 1000   0 -1000 ←IF(A4="○",C4-B4,IF(A4="×",B4-C4))

C4の値が未確定(0)の場合、D4のセルには-1000と表示されてしいます。
その結果、D1の合計が150ではなく、-850となってしまうのですが、C3が
未確定の場合にD4が0になるようにするにはどうしたらいいでしょうか?
IF関数の条件分岐など検索しながら色々試したのですが解りません・・・。
初歩的な質問で恥ずかしいのですが、よろしくお願い致します。

888 :名無しさん@そうだ選挙にいこう:2010/10/03(日) 17:46:51
すみません、間違えました。
>C3が未確定の場合に
>C4が未確定の場合に

889 :名無しさん@そうだ選挙にいこう:2010/10/03(日) 17:49:53
>>886
d
確かにそうすれば良かったですね。
頭悪くてごめんw

890 :名無しさん@そうだ選挙にいこう:2010/10/03(日) 18:02:40
>>887
D2=IF(COUNTBLANK(B2)=1,0,IF(A2="○",C2-B2,IF(A2="×",B2-C2)))

891 :名無しさん@そうだ選挙にいこう:2010/10/03(日) 18:44:24
qq

892 :名無しさん@そうだ選挙にいこう:2010/10/03(日) 20:27:32
ピボットフェチへ

Microsoft PowerPivot for Microsoft Excel 2010
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=e081c894-e4ab-42df-8c87-4b99c1f3c49b&displayLang=ja

893 :名無しさん@そうだ選挙にいこう:2010/10/03(日) 20:28:30
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 ドロップダウン リスト 複数 連動 可変

シート1
   A    B      C
1 区分   品名     規格
2 防虫   フマ     A-11
3 防虫   フマ     B-22
4 消毒   ゴミ袋    大
5 消毒   ゴミ袋    中
6 その他  ポカリ    1.5L
7 その他  アクエリ   1.5L

シート2
   A    B      C
1 区分   品名     規格
2 

上のような感じでデータがあって、
シート2の2行目にはシート1の内容と同じデータがドロップダウンで
選択できるようにしたいです。
普通のドロップダウンリストではなく、
一つ左のセルの値に応じて変化する連動ドロップダウンリストを作成するには
どうすればよろしいでしょうか。(重複データは除く)
2個の連動ドロップダウンリストの作成方法なら何となく分かったのですが、
3個の連動ドロップダウンリストになるだけでお手上げです。
よろしくお願い致します。

894 :887:2010/10/03(日) 20:52:48
>>890
レス遅れてすみません、ありがとうございます。
アドバイス通りにやってみたのですが、どうしてもD4が0になりません。
折角レスを頂いたのに申し訳ないです。
もう一度確認の為にやってみます。
よろしくお願い致します。

895 :名無しさん@そうだ選挙にいこう:2010/10/03(日) 21:00:41
>>893
2個も3個も同じこと キーをAとBの連結文字列にすればいい

896 :名無しさん@そうだ選挙にいこう:2010/10/03(日) 21:34:27
>>887
=IF(OR(COUNTBLANK(C2),C2=0),0,IF(A2="○",C2-B2,IF(A2="×",B2-C2)))
未確定は0でも空欄でも対応した数式。

897 :名無しさん@そうだ選挙にいこう:2010/10/03(日) 21:40:15
>>896
ISBLANKじゃいかんの? なんかこっちのほうが軽そうな気がするんだけど。

898 :名無しさん@そうだ選挙にいこう:2010/10/03(日) 21:57:39
良いと思います。つか>>890さんのをちょっといじったのが>>896なので。

ちなみにかっこ悪いけど↓でも結果は同じ。
=IF(OR(""=C2,0=C2),0,IF(A2="○",C2-B2,IF(A2="×",B2-C2)))

899 :名無しさん@そうだ選挙にいこう:2010/10/03(日) 22:54:23
>>898
あ、別の人なのね。

>>887
IFをネストしている理由は? ○と×の処理しかないみたいだけど。

900 :887:2010/10/03(日) 23:39:04
>>896さん>>897さん>>898さん
0で返すことができました!ありがとうございます!

>>899さん
ありがとうございます。
すみません、関数初心者なものですからネットで調べて何とか自分が理解できて、
自分が必要とする関数を選び、これまで惰性で使ってきたのですが、ちょっと具合
が悪くなりまして今回こちらの掲示板で質問させて頂いた次第です。
本当にありがとうございました。

901 :名無しさん@そうだ選挙にいこう:2010/10/04(月) 00:01:50
複乳、出てこい!

902 :爆乳:2010/10/04(月) 00:43:59
呼んだ?

903 :名無しさん@そうだ選挙にいこう:2010/10/04(月) 00:50:36
複乳じゃないか!

904 :名無しさん@そうだ選挙にいこう:2010/10/04(月) 00:52:23
と思ったら爆乳か

905 :893:2010/10/04(月) 01:08:46
>>895
縦横可変ドロップダウンリストの作成は出来たのですが、
今回のような変速的なドロップダウンリストの作成を行なおうと思うと、
どのように行えばいいのか全く検討もつきません。
もう少し詳しく教えてくれるありがたいです。
よろしくお願い致します。

906 :復乳:2010/10/04(月) 01:17:21
呼びました?

907 :名無しさん@そうだ選挙にいこう:2010/10/04(月) 01:22:41
また新手のスクリプトが出来たのか?w

908 :名無しさん@そうだ選挙にいこう:2010/10/04(月) 01:25:32
>>906
それは復乳

909 :名無しさん@そうだ選挙にいこう:2010/10/04(月) 01:26:20
おれは微乳が好きだがな

910 :複乳:2010/10/04(月) 10:22:06
>>893
sheet2ってとこに記述
コードの内容は、sheet2のAB列に入力するとシート1から引っ張ってきたリストをBC列に設定するというもの
Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Column >= 1) And (Target.Column <= 2) Then

Dim name, gyo, listx
name = Target.Value
gyo = Sheets("sheet1").Range("A65535").End(xlUp).Row
For i = 1 To gyo
If Sheets("sheet1").Cells(i, Target.Column) = name Then
listx = listx & Sheets("sheet1").Cells(i, Target.Column + 1).Value & ","
End If
Next
Target.Offset(0, 1).Validation.Delete
Target.Offset(0, 1).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=listx
End If
End Sub

911 :名無しさん@そうだ選挙にいこう:2010/10/04(月) 10:47:54
複乳じゃないか!

912 :名無しさん@そうだ選挙にいこう:2010/10/04(月) 10:49:22
複乳は女ですか?

913 :名無しさん@そうだ選挙にいこう:2010/10/04(月) 12:25:05
>>883
しばらく格闘してlookupでなんとかできました
遅れましたがありがとうございました

914 :名無しさん@そうだ選挙にいこう:2010/10/05(火) 01:41:22
複乳出てこ〜い

915 :福乳:2010/10/05(火) 02:46:00
読んだ?

916 :名無しさん@そうだ選挙にいこう:2010/10/05(火) 02:54:12
んにゃ

917 :名無しさん@そうだ選挙にいこう:2010/10/05(火) 08:12:29
うざい。
他でやれよ。

918 :微乳:2010/10/05(火) 16:46:29
何をやれと?

919 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 05:46:50
Excel2010なんですが、左下の三角を右クリックすると
シートの一覧が出て、選択出来ますが
このシートのリストを、常時どこかに表示させておく事は出来ませんか?
頻繁に多数のシートを切り替えるので、その都度左下を右クリックするのが手間です。

920 :牛乳:2010/10/06(水) 06:09:49
でどこに行けと?

921 :豆乳:2010/10/06(水) 07:54:20
>>920牧場へ帰れ

922 :牛乳:2010/10/06(水) 07:59:53
>>921
農場へ帰れ

923 :明治:2010/10/06(水) 08:44:40
>>920-922
箱詰めだ!さっさと戻って来い!

924 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 09:16:19
>>919
ctrl+pageup/pagedownじゃだめ?

925 :巨乳:2010/10/06(水) 10:28:33
世の男ともは、ぁたぃにメロメロ

926 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 11:10:42
残り100切ってるんだからやめれ。

927 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 13:21:55
罫線だけをコピーするにはどうしたらいいですか?
「形式を選択して貼り付け」には悲しいかな「罫線を除くすべて」のコピーしかない。
Excel2003です。

928 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 14:04:20
>>927
VBA使わないと無理

929 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 19:51:02
>>919
できない。あとは別のシートにシートへのリンクを貼るとかして、常時表示させておくとか

930 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 20:31:51
>>927
すべてをコピー&ペーストして右クリック→数式と値のクリア で、罫線のみ残る。
その作業工程をマクロで登録しておけばctrl+□で同じ罫線のコピーをいくつも
貼ることができますがいかがでしょうか。

931 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 22:11:52
【1 OSの種類         .】 WindowsXP SP2
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 できれば否
【5 検索キーワード     】

SUM関数を使っていてエラーが出てしまいます。このような場合はどのような原因が考えられるのでしょうか?
他にはVLOOKUP関数、INDEX関数を使っています。

932 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 22:23:42
>>931
どんなエラーが起きてるか書いてくれ

933 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 22:23:48
>931
SUM関数で参照している要素の中に エラー となるものが含まれているんじゃないのかな?

934 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 22:26:13
複乳、出番だぞ

935 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 22:29:27
=IF(K31>10,LEFT(K31)+RIGHT(K31),LEFT(F22)+RIGHT(F22))
でというようにして出した数値を足していくとエラーが出ます。4列です。

936 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 22:40:04
>931,935
K31とF22が数字だとエラーにはなりません。K31やF22は数字にならない場合があるのでは?
931では >他にはVLOOKUP関数、INDEX関数を使っています って書いてるけど、関係あるの?


937 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 22:42:05
VLOOKUP関数とVLOOKUP関数はエラーの出る数値には関係ありませんが
同じシートですので原因かと思いまして。

938 :936:2010/10/06(水) 22:46:20
>931,937 ↓の人ですか?

 681 名前: 名無しさん@そうだ選挙にいこう 投稿日: 2010/09/19(日) 02:17:57
 【1 OSの種類         .】 WindowsXP SP2
 【2 Excelのバージョン   】 Excel2003
 【3 VBAが使えるか    .】 いいえ
 【4 VBAでの回答の可否】 できれば否
 【5 検索キーワード     】 IF関数・LEFT関数・RIGHT関数・文字列操作
 
 6なら6、
 15なら1+5=6、
 38だったら3+8=11→1+1=2というように足して一桁にしたいのですが、
 =IF(IF(F35>10,LEFT(F35)+RIGHT(F35),LEFT(F35)+RIGHT(F35)),IF(F35<=10,LEFT(F35)))
 と入力したところ数値によりエラーが出てしまいます。どこがおかしいのでしょうか?
 よろしくおねがいします。


939 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 22:53:06
>>938
そうです。どうして解ったんですか?

940 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 22:54:32
どの数値でエラーがでるか書けばいいのに

941 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 22:54:34
どうしても足して二桁になる事があるのでいろいろいじったのですが解らずじまいでした。

942 :936:2010/10/06(水) 22:56:15
>931,937
LEFT(K31)+RIGHT(K31) などという特徴のある式を見れば2週間ほど前のこと、すぐ思い出しますよ。

ところで、
問題の計算式のセルの近くに、=K31 と =F22 の式を書いてみればわかると思う。どちらかが #VALUE! になってるか、
F22の値がマイナスのはず。

943 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 22:56:59
誤 〜 LEFT(F35)+RIGHT(F35) 〜
正 〜 LEFT(F35,1)+RIGHT(F35,1) 〜

それよりも

=INT(F35/10)+MOD(F35,10)

ってすればIFとか必要なくなって式もずっと短い

944 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 23:00:09
あ、第二パラメータを省略すると1になるのか
知らんかった

945 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 23:02:00
2桁しかないんだったら

=SUMPRODUCT(MID(TEXT(SUMPRODUCT(MID(TEXT(A1,"00"),{1,2},1)*1),"00"),{1,2},1)*1)

これで一発。あ〜眠い

946 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 23:02:26
2桁までだったら・・・の間違い

947 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 23:05:54
力業でやってみた
もうちょっと式は整理できそうな気がするが
=INT((INT(F35/10)+MOD(F35,10))/10)+MOD((INT(F35/10)+MOD(F35,10)),10)

948 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 23:15:23
=SUM(A2:H2,J2:Q2)で37、これを

>>943
=INT(F35/10)+MOD(F35,10)

> =INT(F35/10)+MOD(F35,10)
SUMPRODUCT(MID(TEXT(SUMPRODUCT(MID(TEXT(A1,"00"),{1,2},1)*1),"00"),{1,2},1)*1)
で10となり、

=INT((INT(F35/10)+MOD(F35,10))/10)+MOD((INT(F35/10)+MOD(F35,10)),10)
だと3になります。

37→3+7→10→1+0→1にしたいのですが・・・

949 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 23:22:01
>>948
SUMPRODUCT(MID(TEXT(SUMPRODUCT(MID(TEXT(A1,"00"),{1,2},1)*1),"00"),{1,2},1)*1)
のA1部分にSUM(A2:H2,J2:Q2)を置き換えて・・・

950 :936:2010/10/06(水) 23:23:55
>948
=IF(F35>9,LEFT(F35,1)+RIGHT(F35,1),F35) でいいのでは?
F35が2桁になるのは10からなので >9 でいいし、1桁の場合はF35そのものでいいわけで。



951 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 23:27:05
こういうのでセンスの無さがあらわになるな
長ったらしい式より作業セルに分ける方がスマートだよ

952 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 23:39:44
>>948
ちゃんとコピペしたか?まさか見ながら打ち込んでないだろうな。>>947の式で37はちゃんと1になる

953 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 23:41:01
>>950
99→9+9=18→1+8=9が答えにならなきゃいけないんだよ
足し算は0回、1回、2回のケースがある

954 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 23:43:27
LEFT(F35,1)+RIGHT(F35,1)って理解して使うのならいいけど、
そうでないのならやめたほうがいいよ。
これから先VBを使うつもりならなおさら。

955 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 23:47:00
951さんのいうように、1回で1桁にならなければ、さらに別のセルに同じような式を書けば確実に1桁になる。


956 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 23:52:16
>>952
うまくいきました。コピペした後セルの位置を間違えていました。みなさん有難うございました。

957 :名無しさん@そうだ選挙にいこう:2010/10/06(水) 23:54:10
むりやり1回で一桁にする式
=IF(IF(F35>9,LEFT(F35,1)+RIGHT(F35,1),F35)>9,LEFT(IF(F35>9,LEFT(F35,1)+RIGHT(F35,1),F35),1)+RIGHT(IF(F35>9,LEFT(F35,1)+RIGHT(F35,1),F35),1),F35)

958 :名無しさん@そうだ選挙にいこう:2010/10/07(木) 00:03:01
>>957
せめて>>947より短い式を作ってくれ

959 :名無しさん@そうだ選挙にいこう:2010/10/07(木) 00:07:06
=MOD(F35-1,9)+1 とかとか?

960 :名無しさん@そうだ選挙にいこう:2010/10/07(木) 00:11:35
感心した

961 :名無しさん@そうだ選挙にいこう:2010/10/07(木) 00:14:26
00の時に破綻するな

962 :名無しさん@そうだ選挙にいこう:2010/10/07(木) 00:38:43
こうか
=(MOD(F35-1,9)+1)*(F35>0)

963 :名無しさん@そうだ選挙にいこう:2010/10/07(木) 17:39:54
=IF(F35<10,F35,IF(MOD(F35,9),MOD(F35,9),9))
とか

964 :名無しさん@そうだ選挙にいこう:2010/10/07(木) 18:45:49
ふしぎだな どうして2ケタの整数nmのn+mの値がMOD(F35-1,9)+1で計算できるんだ?
だれか解説しろ

965 :名無しさん@そうだ選挙にいこう:2010/10/07(木) 19:06:27
>>964
インド式計算

966 :名無しさん@そうだ選挙にいこう:2010/10/07(木) 19:14:10
>>962
俺もお前には感心する。
3桁でもいけるじゃねーか。
しかしこういうものどういう用途で使うんだ?

967 :名無しさん@そうだ選挙にいこう:2010/10/07(木) 19:21:14
九去法

968 :名無しさん@そうだ選挙にいこう:2010/10/07(木) 19:25:19
このスレで初めて感心した。いやまじで

969 :名無しさん@そうだ選挙にいこう:2010/10/07(木) 20:21:19
2桁の数字は m×10+n (m、nとも1桁の数字) で表せる
=m×(9+1)+n
=m×9+(m+n)
よって、9で割った余りがm+nになるんだけど、m+nが9の場合(元の数字が9の倍数)は
9で割った余りが0になってしまうし、m+nが10以上になった場合はさらにわけわからん。
自分はここで思考停止してしまった。

3桁の場合も L×100+M×10+N = L×99+M×9+(L+M+N)
       =9×(L×11+M)+(L+M+N)
       となるんだけど、L+M+Nが10以上になる場合があるからその先が見えない。

だれか解説してくれえ    え?スレ違い?


970 :名無しさん@そうだ選挙にいこう:2010/10/07(木) 21:52:28
おもろいね。
>>966
数学的証明は苦手だが、3桁は正しくないはずだよ
(100台の後方からはもう正しくなくなるはず)

-1と9と+1をハードコーディングしてる限り限定的な計算しか出来ない、と思う
実際これが正しく機能するのは10進数2桁の内でも「9進数で表現できる所+1まで」だから
82あたりから結果がおかしくなるはず。

>>969
> m+nが9の場合(元の数字が9の倍数)は9で割った余りが0になってしまう
だから先に-1して、9で割ったあとに+1修正してるんじゃないの?
-1と+1は相関関係のある数字なので-1無視して考えるなら+1も無視、つまり0〜8になって正常じゃない?
(ついでに言えば9も相関関係を持つ)

それに解はMod9を+1したものなので取り得る範囲は
どう間違えても必ず1〜9になる事はわかるっしょ

>>965 マジあいつらの考え方すごいよな

971 :名無しさん@そうだ選挙にいこう:2010/10/07(木) 21:55:20
感心はしたんだが、あまりにも出来すぎていて自演かと疑ってしまった。
んなことねーか

972 :名無しさん@そうだ選挙にいこう:2010/10/07(木) 22:19:29
>970
969の説明を見る限り、2桁だろうが、3桁だろうが、それ以上の桁数であろうが、すべて
9×(中身省略)+(各桁の数字の和)の形になるから、

>-1と9と+1をハードコーディングしてる限り限定的な計算しか出来ない、と思う
>実際これが正しく機能するのは10進数2桁の内でも「9進数で表現できる所+1まで」だから
>82あたりから結果がおかしくなるはず。
は成り立たないと思う。実際、82→8+2=10→1+0=1 (MOD(82-1),9)+1 は1です。

973 :名無しさん@そうだ選挙にいこう:2010/10/07(木) 22:49:16
>>972
970だけど、元の話をよく見てなくて勘違いしてた
82なら0が正解だと思ってたよ、ごめーん
それなら以後のズレがそのまま補正になって正解になるわ

とすると桁がいくらあってもこの式は完璧に解を出せるんだね
やっぱすごいなーw

>>966
検算(パリティチェック)だったり時刻の分とか秒とかの循環数を求める演算に使うのが一般的みたい
主の場合は間違いがないか検算してるんだろうね
ようはAdler32とかCRC32とかMD5みたいなもの

974 :名無しさん@そうだ選挙にいこう:2010/10/07(木) 23:04:20
パソコンだとメモリもディスクも好きなだけ使えるけど、mp3プレーヤーみたいな小型の電子機器は
今でもメモリの容量制限がきついんで、できるだけ短い数式で同じ結果が出るよう
頭をひねりながらプログラムを作ってることが少なくない。
こういう工夫ができる人はこの業界ではとても重宝される。

975 :名無しさん@そうだ選挙にいこう:2010/10/08(金) 08:48:31
つまり・・インド人がITに向いてるってことかよ?

976 :名無しさん@そうだ選挙にいこう:2010/10/08(金) 12:03:41
>>975 インド人は大昔から数学に強いんだよ。
「カレーのイメージしかない」とかバカなこと言うなよ?w
まぁインドのIT急成長は人材育成に長期投資してるおかげだと思うけど。

977 :名無しさん@そうだ選挙にいこう:2010/10/09(土) 13:48:23
そもそもゼロを発明したのがインドのガンジー大統領だからな
文字通り次元が違うというわけだ

978 :名無しさん@そうだ選挙にいこう:2010/10/09(土) 14:27:06
昨日クラリスに冠もらってはしゃいでたな 数学に強いイメージはなかった

979 :名無しさん@そうだ選挙にいこう:2010/10/09(土) 21:15:35
質問があります。よろしくお願いします。
INDEX関数で表示された数値の下三桁表示にしたいんですけど
RIGHT関数をどこにどのように組み込んだらいいか分かりません。

=INDEX(A:A,MATCH((10)^15,A:A,1))

980 :名無しさん@そうだ選挙にいこう:2010/10/09(土) 21:25:26
>>979
=RIGHT(INDEX(A:A,MATCH((10)^15,A:A,1)),3)

981 :名無しさん@そうだ選挙にいこう:2010/10/09(土) 21:36:23
>>980
すみません、勉強になります。
ありがとうございました。

982 :名無しさん@そうだ選挙にいこう:2010/10/09(土) 21:42:58
ゼロは偉大だな。負数もなく自然数しか扱えなかった当初は
「何もないのに数字当てるとかww馬鹿じゃね?w」って叩かれまくったらしいが
現代から考えるとよくそんな発想に至ったと感心するわ

つか俺はゼロとは何であるか?と悩む。「ゼロ除算エラー」を見るたびに。
そもそもゼロって不思議な存在、とてもじゃないがゼロを説明できる奴なんてそこらにいない
大学含めても教育課程ではゼロの説明を「0/0は1です」とか「ただし0を除く」で逃げる。理論が破綻するから。
ダーウィンの理論どころか高等数学さえさっぱり理解不能な俺にはゼロの謎は一生解ける事はないだろうが
そんな俺でも、ゼロなんてものを見つけて使いだした奴は頭が良すぎる、これに一切の異論はない

983 :名無しさん@そうだ選挙にいこう:2010/10/09(土) 21:55:55
>>979 こういうので文字列関数をつかうやつはセンスない
1000で割った余りって考えないと

984 :名無しさん@そうだ選挙にいこう:2010/10/09(土) 22:07:33
うーん?
数値って言われると俺ならVALUE関数を混ぜるかな
割り算よりはね

985 :名無しさん@そうだ選挙にいこう:2010/10/09(土) 22:07:39
>>982 ゼロは偉大だなまで読んだ。これに一切の異論はない

まぁゼロは面白いがここEXCELスレだからなw
ちなみに0/0の本当の解は0であり無限大だ。知ってたか?

>>983
センスとかエレガントと言うやつはナンチャッテ数学馬鹿で即応性ない
実用で考えるとRIGHT関数で覚えてる奴のほうが役に立つ

986 :名無しさん@そうだ選挙にいこう:2010/10/09(土) 22:08:03
>>983
俺もそう思ったのだが、検査値を見て文字列関数を使っているのかなぁと。
MODってlongの範囲じゃなかったっけ?

987 :名無しさん@そうだ選挙にいこう:2010/10/09(土) 22:24:08
=MOD(1.3,0.2) とかでも使えるよ

整数だと15桁かな?

988 :名無しさん@そうだ選挙にいこう:2010/10/10(日) 00:25:38
下3けたにRIGHT使うやつは勝*君レベルのアホ

989 :名無しさん@そうだ選挙にいこう:2010/10/10(日) 00:44:13
>>986
それはMod演算子

990 :名無しさん@そうだ選挙にいこう:2010/10/10(日) 00:48:51
>>988
誰のことかなんとなく分るが書いちゃいかん
本人とは限らん

991 :名無しさん@そうだ選挙にいこう:2010/10/10(日) 00:49:19
よっぽど速度が必要ならそりゃ算術演算使うべきだけど、俺も大抵の人はRIGHT使えばいいと思う
自分で書けるかどうかってレベルにどっちが早く近づくかと言えば、
数字かどうかに関わらず3文字抜き出せるほうが直感的で汎用的で使いやすいと思うよ

それに算術演算は前提間違えるとダメだから算数弱い人だと「検証」に時間がかかって完成が遅れる
特定の桁切り出しの算術演算はどれも「セオリー」であって型を暗記して応用するもんだし
ここプログラミングのスレじゃないわけで覚える手間のが無駄だと思う

992 :名無しさん@そうだ選挙にいこう:2010/10/10(日) 00:52:48
>>985
本当の解っていうならその先も言いなよ
「答えが一つにならない為、四則演算0/0は回答できない」が本当の正解

993 :名無しさん@そうだ選挙にいこう:2010/10/10(日) 00:59:50
ファイト!
もっとやれw
=MOD(LOOKUP(10^15,A:A),1000)

994 :名無しさん@そうだ選挙にいこう:2010/10/10(日) 01:14:32
>>991
MODなんてRIGHTと同じくらいポピュラーな関数。
>>993
なるほどLOOKUPでも同じだな。

995 :名無しさん@そうだ選挙にいこう:2010/10/10(日) 01:18:15
俺ダメだった、次スレ誰か頼む。
つか残り10切ってんのに加速スンナw

996 :複乳:2010/10/10(日) 01:23:55
呼んだ?

997 :名無しさん@そうだ選挙にいこう:2010/10/10(日) 02:23:55
>>996
お前立ててこい。
俺はID剥奪で立てられん。

998 :名無しさん@そうだ選挙にいこう:2010/10/10(日) 02:32:20
こんなんでよかった?

Excel総合相談所 94
http://hibari.2ch.net/test/read.cgi/bsoft/1286645468/

いま、他のテンプレ書き込んでる最中だけど。

999 :名無しさん@そうだ選挙にいこう:2010/10/10(日) 05:56:21
>>998
ほんと乙、あんがと

1000 :名無しさん@そうだ選挙にいこう:2010/10/10(日) 07:10:36
1000

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

353 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)